|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
: V7 p0 R6 B y* B2 ^' D# a6 t
摘要:针对 PC机与单片机的通信问题,分别从软硬件方面阐述了PC机与多单片机之间
$ F5 L+ c7 X0 @, M8 w0 V( ]通信的设计思想,提出了用Delphi高级语言在PC机与多台单片机之间通信的新方法.经运行证6 u! `3 p8 K" N9 x" Y; B1 c. X- v
明,此方法在中小型控制系统中具有较强的应用价值.
& a/ [4 n+ I8 m5 H$ k+ Q: b关键词: Delphi; PC;异步串行通信;单片机
. B B" J, `2 P9 G5 X: C* `2 c7 z+ i( |, B/ M* L
随着现代信息技术的发展以及计算机网络的广泛使用,计算机通信技术已经日臻成熟,串行通信作( g. j5 S3 ^) @4 B4 f! f% i
为一种灵活、方便、可靠的通信方式,仍不失为有效的通信手段,被广泛应用于工业控制中川"在工业生产
- ?; Y7 C& N4 Y- {. B实践中.用PC机对工程实现实时监控,通常要PC机能在用户界面上具有数据采集.数据处理以及挖5 C- ~/ ^* k9 ~, \7 L3 I
制信号的产生与传输等功能4!.在这种特定的环境下,PC机要与过程控制的实时信号相联系.就要求能实
/ X' j; ?0 k6 v7 A& B现对PC机的串行端n直接操作.Borland公司推出的Delphi是-种功能强大的高级编程语言,其具有
* B4 r9 T& V2 k* c# l可视化面向对象的特性,特别适于在Windows环境下图形界面和用户程序的编制14.51.本文基于Windows
9 u# i4 A" L d9 z m操作系统用Delphi实现PC机与下层多台单片机之间的串口通信,并已经在实践中得到验证.
: L8 _. K1 \9 ]# K& S& Y) [( u% V" Y5 ~# R+ Y
1通信原理
3 f2 G3 G( M* P, o: {当PC与多台单片机通信时,PC机为主机,单片机为从机,主要发送信息可被各个从机接收.而从机
/ X! J4 E) X6 M, F0 D0 p( n0 I L, \" n. n
只能对主机发送信息,从机间不能相互直接通信,主机先选某-从机地址发送给从机,接着才发送数据和命- U5 b) |# D, m) B( p2 E
令.各从机接收到地址,将地址和本机的地址相比较,若不相符,则维持原来状态;若相符,则读后面的数7 d/ p! ~8 |! S- ^, s# ]
据,并进行相应的服务程序.主机对从机发送过来的数据进行存储、计算、打印等,并可以查询检测从机的
- r* l0 Y( R- {8 Q. M' Z状态. n% s" b" ^+ n1 m# x5 U$ ~. [; l
用Delphi开发串行口通信软件一股有两种方法:-是利用Windows的通信APT4|函数;另一种是利用
, V% K8 V, N1 J: g/ oMicrosoft的MSCommlSI控件.用API函数编写通信程序较为复杂,需要掌握大量的通信知识.而利用: w. y) W6 z, u" I
MSComm控制则相对简单,该控件具有与串行口通信密切相关的属性及事件,能实现对串行口的各种
$ b5 I8 Q3 {% ^" I2 x% I1 ]) B! T5 s操作." K0 W8 m- m/ _8 k$ [
在Delphi中无法直接使用MSComm控件,MSComm控件是一个VB中的0CX控件,首先将其添加
+ B: I: D- U6 U i到Delphi中,选择菜单“Component"的"Import ActiveX Control", 在“ActiveX Control" 选项内选择% _) h* u+ e& m$ k; v* p
"MicrosoftCommControl”,点击“Instal1"安装,安装之后“ActiveX"组件板中出现了MSComm图标,即可7 ~' g$ M. T' E1 d, h4 d
使用.Input和output在Delphi中的Object Inspector 中MSComm控件是不可见的,但它仍然存在,这两
" X) j3 {3 ^! |# Y个属性的类型是OleVariant(万能变量,Delphi中的变量类型)。0 O" W4 E5 B. f% p
5 o% }) @; r5 g0 g# J& @4 @2硬件实现
3 ^, C' F) {3 M" @ `! [
- i0 w( B* J$ d& H! A
+ o# i9 F3 F6 v1 s
7 Q$ u& ^; H1 `5 ~' m6 p |
|