显示部分电路采用带有高速串行接口的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是对其中的一个点进行采集的画面,在图中有串口号、波特率、检验位、数据位和停止位等设置,被测量点的当前温湿度一目了然。