超声波液位计测量方式研究与探讨 二十四
4.2.3通讯子程序
设计中实现了超声波液位计的远程通讯功能,将单片机获得的液位数据传送到上位机,以便于工作人员的监控和操作,并可将历史数据存储在PC机内,尤其适用于室外测量或恶劣环境下的测量,由此使得系统的应用范围更广。本系统采用的是RS232C串行通讯,通讯距离最远可达15m。
通讯子程序主要完成单片机向PC机发送数据的功能。单片机采用查询方式完成与上位机的通讯,发送数据前,先发送一个字节的请求码0FFH,接到上位机的应答后,向上位机发送欲发送的数据个数,然后发送数据。上位机接收完数据后,向单片机发送确认码,如果接收到的数据个数不对,则重新发送:若正确,则终IE通讯。
在串行通讯中,收发双方对发送和接收的数据速率有一定的约定。通过软件对单片机串行13编程可设定4种工作模式。其中模式0和模式2的波特率是固定的,模式1和模式3的波特率是可变的。本设计中串行口采用模式1通信。
由于本设计中所用的AT89S52单片机中,增加了一个16位定时器/计数器T2,所以这里采用定时器T2来产生通讯时所需的波特率。T2有4种工作模式:自动重装载、捕获、波特率发生器、可编程时钟输出模式。T2的工作通过软件对T2CON寄存器进行设置来控制。
设计中设定波特率为1200bps,由于定时器T2的初始值只能为整数,所以会不可避免的产生波特率误差。为了保证通信的可靠性,波特率相对误差不能超过2.5%。而采用11.0592MHz的晶振可有效避免波特率误差,获得精确的波特率。
PC机的通信程序的编写选用VB6.0。VB(Visual Basic)具有良好的图形用户接口,并支持面向对象的程序设计。本文利用VB提供的Mscomn通信控件来完成PC机和51单片机系统通信软件的编制。Mscomn通信控件提供了一系列标准通信属性和方法,使用它可以建立起应用程序与串行端口的连接。
Mscomn通信控件是微软提供的扩展控件,用于支持VB程序对串口的访问,隐藏了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查法和事件驱动通讯的机制,事件驱动通讯是交互方式处理串口事务的一种非效的方法,特别适合Windows程序的编写。
详情请浏览公司网站的产品中心 http://www.dlysys.com/ 超声波液位计