

图2 添加Registered ActiveX Controls
Fig.2 Add Registered ActiveX Controls
图3 添加MSComm控件
Fig.3 Add MSComm control
3) 在列表中选择Microsoft Communications Control (version6.0),形状为带有红色底座的黄色电话机,如图3。单击Insert按钮,确认后,会出现一个Confirm Classes对话框,其中列出了该控件的类名(CMSComm)、头文件名(MSComm.h)、执行文件名(MSComm.cpp)。关闭此对话框,在程序主界面的控件列表中,可以看到该通信控件 已被加入,拖动该控件就可以将其放入程序中。
在使用MSComm控件时,1个MSComm控件只能同时对应1个串口。如果应用程序需要访问和控件多个串口,那么必须使用多个MSComm控件。
3 基于Visual C++串口通信的编程
3.1 系统设计整体方案
本设计采用无线感应器模块对现场外界温度、湿度、电压等数据进行采集,根据数字芯片特性进而直接输出数字信号,再经过RS232标准串口直接与计算机连接,分别设置好上位机和下位机串口号,遵循双方约定的串口通信协议实现数据准确传输,达到所采集数据实时显示效果。
3.1.2 下位机程序设计方案
设计单片机通信程序时,必须充分发挥单片机的效率。由于单片机多应用于实时性较强的控制场合,因此,将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间。基于上述考虑及本设计的目的只在于显示串口传输的数据,本设计单片机通信程序时,只考虑下位机发送子程序。
主程序首先完成串行口的初始化、设置串口的工作方式、串口波特率/数据位、校验位等。
发送子程序,只有当发送缓冲区内有数据要发送才调用。发送的数据遵守通讯协议的数据帧格式:首先发送起始标志, 然后发送需要传输的数据,最后发送校验和以及结束标志位。
3.1.3 上位机程序设计方案
上位机程序设计采用VC ++ 6.0开发平台来实现。应用MSComm控件,可以非常方便地创建串行通信应用程序。
1) 设置通信对象、通信端口号以及配置通信格式(如数据位长度、校验方式等) 和其他相关属性;
作为一种物理通信的途径和设备,RS232和目前风靡的另一种串行接口――USB所提供的功能是一致的。不过RS-232C显然已经开始被后起之秀USB赶超,因为USB的传输速率已经远远超过了RS-232C。
尽管如此,RS-232C仍然具有非常广泛的应用,在相对长的一段时间里,难以被USB等接口取代。RS-232C接口(又称EIA RS-232C),全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"。
3.2.2 端口间连接
RS-232C定义为数据通信设备(DCE)和数据终端设备(DTE)之间的互连,实现上,到现在为止,究竟一个设备属于DCE还是属于DTE已经没有明显的界限,PC即可作为DCE,又可作为DTE。
两串口互连连接方法主要有二种:
一种方法是数据的发送和接收由软件控制,不进行硬件握手,其连接方法如图3-2(最常用DB9连接示意)和表6(DB9、DB25三线连接表),真正需要互相连接的是RXD、TXD和GND;
图5 无硬件握手时两串口连接
Fig.5 Two serial port connection without hardware handshaking
表6 DB9、DB25三线连接
Table 6 DB9 and DB25 three lines connection
9针-9针 5针-25针 29针-25针
2 3 3 2 2 2
3 2 2 3 3 3转贴于 酷文网-论文下载中心 http://www.coolwen.net