|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' o. M$ [; [0 ^$ w: @4 L摘要:针对 PC机与单片机的通信问题,分别从软硬件方面阐述了PC机与多单片机之间
3 g% J O+ d: q* x通信的设计思想,提出了用Delphi高级语言在PC机与多台单片机之间通信的新方法.经运行证 [4 d8 l8 a! ~; \/ ?& h6 e* i& B
明,此方法在中小型控制系统中具有较强的应用价值.6 X9 H' @1 m C' m$ D% W5 q0 ^
关键词: Delphi; PC;异步串行通信;单片机
9 d$ N5 _9 H+ v& u) ]# u
* ]( w7 `9 @$ b4 g$ e+ [* g随着现代信息技术的发展以及计算机网络的广泛使用,计算机通信技术已经日臻成熟,串行通信作5 r+ L" m2 ~" B6 o3 K
为一种灵活、方便、可靠的通信方式,仍不失为有效的通信手段,被广泛应用于工业控制中川"在工业生产6 [; ^+ e! l6 j2 I% k
实践中.用PC机对工程实现实时监控,通常要PC机能在用户界面上具有数据采集.数据处理以及挖% q: w2 X# }6 e) s+ R9 z
制信号的产生与传输等功能4!.在这种特定的环境下,PC机要与过程控制的实时信号相联系.就要求能实3 q' v4 [6 Z% p- A% z
现对PC机的串行端n直接操作.Borland公司推出的Delphi是-种功能强大的高级编程语言,其具有- y* o4 a$ [! N+ A, a+ e e
可视化面向对象的特性,特别适于在Windows环境下图形界面和用户程序的编制14.51.本文基于Windows
6 M# Z5 f }# |. X( u操作系统用Delphi实现PC机与下层多台单片机之间的串口通信,并已经在实践中得到验证. T8 q) |5 u4 y! e1 l7 l- g
0 ~4 }) \9 g. x" y
1通信原理
P- `- v4 b. j4 g; E: u当PC与多台单片机通信时,PC机为主机,单片机为从机,主要发送信息可被各个从机接收.而从机7 U! u* O' E3 E
! @, M% ]2 o1 ?' D$ c5 F
只能对主机发送信息,从机间不能相互直接通信,主机先选某-从机地址发送给从机,接着才发送数据和命
( y9 B% h+ }4 b. T* ]令.各从机接收到地址,将地址和本机的地址相比较,若不相符,则维持原来状态;若相符,则读后面的数( x9 c+ r) I9 b9 h
据,并进行相应的服务程序.主机对从机发送过来的数据进行存储、计算、打印等,并可以查询检测从机的
9 C. J2 M' o+ j状态.
: N) J6 m" [1 }! C! J3 K用Delphi开发串行口通信软件一股有两种方法:-是利用Windows的通信APT4|函数;另一种是利用
" l" V* S3 j& q" iMicrosoft的MSCommlSI控件.用API函数编写通信程序较为复杂,需要掌握大量的通信知识.而利用' e& s6 o$ t6 J- a0 R4 w3 j
MSComm控制则相对简单,该控件具有与串行口通信密切相关的属性及事件,能实现对串行口的各种
& ]$ U" F8 Z1 _! w& m& K操作./ k; _; J% U% ^9 j
在Delphi中无法直接使用MSComm控件,MSComm控件是一个VB中的0CX控件,首先将其添加
6 c' H+ i6 G& {! z& X& x7 z到Delphi中,选择菜单“Component"的"Import ActiveX Control", 在“ActiveX Control" 选项内选择
) l1 v6 m. U% h/ I+ i"MicrosoftCommControl”,点击“Instal1"安装,安装之后“ActiveX"组件板中出现了MSComm图标,即可
V! K- Z. `- b0 y- ~使用.Input和output在Delphi中的Object Inspector 中MSComm控件是不可见的,但它仍然存在,这两
8 d- s1 z% q, g# d- T2 g5 {个属性的类型是OleVariant(万能变量,Delphi中的变量类型)。
. K; ] q9 e, N, U- v
* g* C$ ]! e7 v, I/ z- V0 Q8 f, H2硬件实现: y1 K+ a* z- r$ b
, D" r0 e+ _. A) I, D8 `! y/ i$ Z* q
5 S; b0 b g0 F& d1 \ |
|