原创 用Delphi实现与单片机的串行通信

2009-9-20 08:33 1389 5 5 分类: MCU/ 嵌入式
作者:    时间:2007-04-17    来源:www.edires.net 
 
       摘 要:介绍了基于windows操作系统,用delphi实现工业控制计算机与下位单片机之间的串口通信。该通讯技术已在笔者开发的人工智能仪表上获得成功应用。

1 前 言


计算机网络通讯与信息技术的高速发展,使得计算机通信技术在工业控制中发挥着重要的作用。串行通信作为一种灵活方便可靠的通信方式,在工业控制中已被大量采用。在许多工业生产中,用计算机对生产过程实行实时监控,对下位单片机采集来的数据进行实时数据处理,以及控制信号的产生与传输等功能。在这种工业生产的特定环境下,计算机要与过程控制的实时信号相联系,因此要求计算机能实现对串行端口的直接操作。本文根据智能仪表的通讯要求,基于windows操作系统用delphi实现了计算机与下位智能仪表单片机之间的串口通信。


2 设计思想


delphi 是一种功能强大的高级编程语言,它具有可视化、面向对象的特性,特别适于在windows环境下图形界面和用户程序的编制。智能仪表以8051单片机为核心,实现对工业过程参数的检测、控制,并可与上位工控机实现数据通讯。通讯内容包括控制参数和过程参数,如采样时间、设定值、pid控制参数、实际检测值等。该通讯程序的界面如下图所示:


20070416175050_50512.gif



图1 程序可视化界面图


2.1 该串口通讯程序的总体设计思路


(1)通过该软件可以进行串口参数的各种配置,以与下位单片机形成统一的通讯协议。


(2)通过该软件可以远程进行对下位单片机的各种参数进行设置。


(3)通过该软件可以实时显示下位机的数据采集值,可以调用存盘的记录值。


2.2 程序的设计过程


单片机通讯程序框图:


20070416175050_14120.gif



计算机通讯程序的框图:


20070416175050_71544.gif



该程序中的通讯控件采用了small-pig team的spcomm communications免费通讯控件。在软件启动时就控制默认串行端口com2,如果系统使用其它端口时可在系统启动后在菜单上的“串口设置”选项进行包括“端口”、“波特率”、“数据位”、“校验位”、“终止位”的满足用户的配置。


20070416175050_57778.gif



笔者将“pid参数设置”,“调节对象采样参数”,“输入信号种类”,“设备号设置”分为四个窗口发送。首先向单片机广播设备号,然后向选中的单片机发送要设置的参数并且实时读取单片机送来的采样数据。


20070416175050_79878.gif



图2 向单片机广播设备号


20070416175050_18508.gif



图3 设置被选单片机信号种类


20070416175050_36886.gif



图4 设置被选单片机比例度、积分时间、微分时间


由于单片机容量的关系,单片机仅发送和接收二进制数,发送整数用一个字节表示;浮点数用三个字节表示,第二、三字节表示浮点数的大小,第一个字节的第一位表示正负数,第二位表示小数点移动位数,如果是正数,就右移,如果是负数就左移第一字节后六位表示的位数。笔者在计算机上进行了数制转换,程序见后。


20070416175050_16688.gif



图5 设置被选单片机温度、液位、压力、流量采样周期


在进行实时数据显示时,笔者采用了delphi的多线程来实现。


20070416175050_94220.gif



图6 采样结果曲线


 


3 应用程序


数制转换部分程序及数据接收部分程序如下:该程序在实际运行中通过。


程序在此省略,欢迎读者或用户与作者直接联系。


 


参考文献:


[1] 张威,卢庆龄.delphi 编程与技巧[m].北京:科学出版社.1999.


[2] 李华,等.mcs-51 系列单片机实用接口技术[m].北京:北京航空航天大学出版社.1990.


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条