2012-05-28 68 views
2

我一直在寻找一些关于微控制器编程的信息,但是我发现的信息无论是在我头上还是似乎都不存在。我正在寻找更容易消化的东西!我对编程相对比较陌生,来自SQL DBA背景,并且决定我学习一些编程基础知识,然后自学Delphi,比通过我公司疯狂的设计变更记录系统实现一些变更更快! 经过几年的Delphi编程,我可以应付写入数据库应用程序而没有太多麻烦,我希望能够在一个层面上移动。 我们在我们的PCB上使用PIC微控制器;主要是PIC18F系列。 PICS上的软件是用C语言编写的,但有一些参数值由Delphi应用程序写入,该应用程序使用ActiveX控件与PIC进行接口连接。 基本上,SQL数据库保存参数信息,Delphi客户端应用程序检索这些值,并将它们传递给执行PIC上所有低级别内容的ActiveX控件。例如,内部EEPROM将具有地图,并且在任何特定地址内将存储值以开启或关闭某些东西或保持整数值等。我已经掌握了具有可读取ICD2器件的MPLAB工具包并将值写入内部EEPROM,并了解如何使用MPLAB软件更改这些十六进制值。 我的希望不是学习嵌入式单片机编程;相反,我可以编写一个Delphi应用程序来执行类似于MPLAB软件的操作。例如,读取和写入EEPROM中某些存储器地址的值。 如果任何人都可以指向任何库或组件的正确方向,可能已经存在桥接简单的Delphi表单应用程序和编写低级别PIC EEPROM之间的差距,那么我会非常乐意。我怀疑这种简单的界面存在,但我想我会问。总结一下,我希望能够拥有一个简单的表单应用程序,包含用户键入或从下拉框中选择的一些编辑框,参数值,单击按钮并将这些参数值分配给特定的EEPROM存储器地址。感谢您的阅读,并会收到任何意见。德尔福微控制器编程

问候

KD

+0

您打算如何通过将高层系统(PC)的接口设置为如此低级别的接口来实现? (直接写入EEPROM地址。)通常的技术是将这些细节提取出来,并提供适合实际功能的高级界面(打开LED,关闭LED等)。 –

+0

icd 2使用usb,而usb hid模式在[link]中讨论http://stackoverflow.com/questions/6271421/using-hidcontroller-on-delphi-2010 [/ link]。 – Hendra

+0

顺便说一下,你说'... PICS上的软件是用C编写的,但是有一些参数值是由一个Delphi应用程序写入的,该应用程序使用一个ActiveX控件与PIC进行交互。如果是这种情况,可以重新使用activex控件(即组件 - >从Delphi iDE导入ActiveX组件),并在Delphi应用程序中使用它。我猜低层次的通信内容已经处理了activex控件? – Hendra

回答

0

德尔福输出Win32和Win64的本地应用程序,你可以写软件,它可以与某些设备进行交互,如果PCB具有串行通信或I2C可以编写软件,在德尔福它将互动与物理设备。

但是,如果你想自己编程设备,编写在这些设备上运行的软件,你不能用Delphi来完成。我建议你购买Arduino,这对于微控制器编程初学者来说是一个非常好的选择。

+0

PS - 只有Delphi XE2(和未来版本)支持64位编译。 –

2

更新2015年答:

为什么不Raspberry Pi with FreePascal and Lazarus?截至目前,这些板卡的价格从5美元到25美元不等,开发工具也是免费的。

原2012答案: 如果你喜欢用Pascal中,你会发现免费帕斯卡尔在小型嵌入式系统是有用的,但最小,我相信你会发现它可以编译上是一个基于Linux的ARM嵌入式系统。事实上,你使用双方pascal是不太可能帮助你完成任何重大事情。

如果你想要一路走下最小的PIC微控制器,你会发现它几乎总是你将要使用的C的变体。坦率地说,在这个层面上,差异并不大。如果你可以写Pascal,你可以在一天内学习足够的C,以便与微控制器一起使用。

不要害怕使用大多数微控制器支持的本地语言。我个人最喜欢的是以前来自Z-World的Rabbit微控制器,现在来自digi--我认为我为第一块电路板和开发工具包支付了大约100美元。我想通过有线以太网或无线(Wifi)接口使用TCP/IP来连接这样的应用程序,这很容易。但如果你真的想要你可以使用RS-232或RS-485串行链路。 (RS-485的优点是可以连接长达5英里)。如果我使用的是串行链路,那么如果我只是想发回一些数字数据,我可能会在两侧实现类似Modbus的功能,如果我正在做一些面向文本的事情,我想我会在嵌入式控制器上编写一个迷你HTTP Web服务器,而且现在大多数电路板都带有足够的HTTP服务器演示程序,以便让这种简单的工作变得简单。

+0

ModBus使用9位数据。德尔福可以处理吗?是否有(免费)VCL组件是必需的?还是9位串口的驱动程序? – Mawg

+1

你的另一个问题是关于东西,绝对不是MODBUS。 HTTP://计算器。com/questions/14212660/how-to-access-my-9-data-bit-serial-port-on-a-pc –

+1

读到你的另一个问题,我相信你会更好找到一个外部硬件,从极端ODDBALL EIA = 485/MDB“9位”模式转换。只有疯狂的供应商才能使用这种疯狂的安排,才会知道从哪里得到如此疯狂的硬件。决定使用9位模式作为自动售货机通信系统的MDB工程师应该遭到枪击和冒犯,并且让他的名字受到谴责。 –

0

如果您有PIC微控制器的源代码,那么您可以在C中实现代码以从Serial,USB或硬件中提供的其他某个接口读取数据,并将其写入eeprom。这种方式很容易在任何高级语言如delphi,C++等编写应用程序。

或者你可以使用mikroeletronika的mikropascal编译器编写你的PIC应用程序,它非常好,我已经使用了很长时间时间,但正如你所看到的,你必须实现一些机制来从界面读取数据并写入你的eeprom,正如我之前提到的那样。

该编译器附带一大堆图书馆,可与许多设备配合使用。你应该看看它,它不是免费的,但价格很低,在他们的网站上你可以找到样品和样板来测试它。

0

如果你想要一个简单的接口写入PIC EEPROM,一个选择就是使用ICD命令行工具。不幸的是,它不适用于ICD2,但PICkit 2和3(价格便宜),ICD3和RealICE具有命令行实用程序,使您可以写入EEPROM(谷歌pk2cmd)。在Delphi中,您可以将一组非常简单的命令行调用包装到pk2cmd中。

2

我是MikroElectronika的忠实粉丝,他们用PIC16系列MCU的Pascal工具取得了巨大的成功(触摸屏界面,ZigBee,...)。 http://www.mikroe.com/

+0

不错,但Pic或AVR pascal编译器的价格是250美元。太糟糕了,没有PIC和AVR的开源Pascal。当然,与德尔福相比,这很便宜,但实际上相比于250美元的盒子来说,它实际上相当昂贵。 –

+0

“下载并试用软件 - 免费!软件配备了功能齐全的演示许可证,输出代码大小为2K的程序字,可以满足简单的应用需求。”诚然,我确实最终购买了他们的完整开发板之一,因为我的早期应用程序之一(zigbee无线竞赛计时系统)需要超过2k大小的免费版本。 –

+1

这些天,我想我会买5美元的美国树莓派Pi板之一,并使用FreePascal。 –