显示部分电路采用带有高速串行接口的4位LED控制驱动器ZLG7219实现,接口采用同步串行外设接口SPI,编程简单而且节省I/O口。温度和湿度显示各用4位,通过改变连接电源与ISET端口的电阻值,可以调节数码管的显示亮度。
与上位机的数据通信部分采用接口芯片MAX232实现的RS-232的通信方式。
为提高系统的可靠性,由MAX813LEUA组成看门狗电路,以防止程序跑飞而使系统失控。如果在1.6s内PIC16F73不给WDI输入端发送触发信号,说明程序跑飞,MAX813LEUA将发出复位信号,使系统复位重新进行。
温湿度测量系统软件的设计
在单片机内部写有数据的采集和显示等程序,能使当前的温湿度值实时显示在现场,另外,该温湿度值通过RS-232总线接口送至PC,运行VB程序使温湿度值在监控界面上显示。单片机软件的流程如图3所示。
图3 软件流程图
为实现温湿度测量,使用VB编写了上位机显示画面,能实时显示出当前现场每个点位的温湿度值,下面是对温湿度进行转化的部分程序:
Select Case
MSComm1.CommEvent
Case comEvReceive
Label11.Visible = True
Label12.Visible = True
buffer = MSComm1.Input
arr = buffer
For i = 1 To 11
w_1(i) = arr(i - 1)
Text1.Text = Text1.Text +
“ ” + w_1(i)
Next i
Humidity = Str$((Val(w_1(4)) * 256 + Val(w_1(5))) / 100)
Temperature = Str$(((Val(w_1(6)) * 256 + Val(w_1(7))) - 27315) / 100)
Label2.Caption = Humidity
Label10.Caption = Temperature
End Select
图4是对其中的一个点进行采集的画面,在图中有串口号、波特率、检验位、数据位和停止位等设置,被测量点的当前温湿度一目了然。