4 软件设计
系统单片机程序采用C51 进行编程, 主要完成对DS18B20 的调用中断管理、测量温度值的计算以及单片机与P C 机的串口通信。上位机软件采用V BMSComm 控件制作,由于C51 程序较长,此处只介绍上位机软件编写程序,VB 程序如下:
Pr ivate Sub Form_Load( ) ' . . . . . . . . 初始化设置
MSComm1.CommPort = 1 '……使用Com1 口
MSComm1.Sett ings = "9600,n,8,1" '. 设置通讯参数
MSComm1.InBufferSize = 4 ' 设置接收寄存器等待读取的字符数为4
MSComm1.RThre shold = 0 ' 初始化为不产生OnComm 事件
MSComm1.Por tOpen = True '? .打开串口
MSComm1.InputLen = 4 ' 设置并返回Input 属性从接收缓冲区读取的字符数为4
MSComm1.InputMode = comInputModeText ' 设置接收方式为文本方式
Me.Caption = " 实时温度控制系统" ' 设置标题为" 实时温度控制系统"
End Sub
Pr ivate Sub Command1_Cl ick( ) '.??? .自动读取按钮
Time r1.Enabl e d = True ' . . . . . . . .开启定时器
MSComm 1 . RT h r e s h o l d = 1 ' . . . . . . . . 开启OnComm 事件触发
End Sub
Pr ivate Sub Command2_Cl ick( ) '.??? .清空内容按钮
Time r1.Ena bl ed = Fal se ' . . . . . . . . 关闭定时器
MSComm1.RThre shol d = 0 ' . . . . . . . .停止产生OnComm 事件
Sh a p e 1 . Fi l lCo l or = RGB( 2 5 5 , 2 5 5 , 2 5 5 )
' . . . . . . . . 设置信号指示灯的颜色为白色
Te xt 1. Te x t = " " ' . . . . . . . .清空文本框1 的内容
Te xt 2. Te x t = " " ' . . . . . . . .清空文本框2 的内容
Te xt 3. Te x t = " " ' . . . . . . . .清空文本框3 的内容
End Sub
Pr ivate Sub Command3_Cl ick( ) '.??? .关闭窗口按钮
Unl o a d Me ' . . . . . . . . 卸载窗体
End Sub
Pr ivate Sub MSComm1_OnComm( ) '. . . . .? .事件触发
Dim rec As St ring
Select Case MSComm1.CommEvent
Case comEvReceive
rec = MSComm1. Input
Text3.Te xt = r ec
MyResul t = (Text3.Text < "31")
' . . . . . . . . 判断当前温度是否达到3 1 ℃
I f MyResul t = False Then ' .? . .? .达到31℃
Shape1.Fi l lColor = RGB(255,0 , 0 ) ' . . . . . . . . 信号灯为红色
Te x t 1 . Te x t = " 产生报警"' . . . . . . . . 同时信息提示显示" 产生报警"
El se ' . . . . . . . . 未达到31 ℃
Shape 1.Fi l lColor = RGB(0,1 2 8 , 0 ) ' . . . . . . . . 信号灯为绿色
Te x t 1 . Te x t = " 温度正常"' . . . . . . . . 同时信息提示显示" 温度正常"
End I f
Te xt3.Te xt = " "
Te xt3.Text = re c + "℃"
MSComm1. InBufferCount = 0 ' 清空接收缓冲区
End Select
End Sub
Private Sub Timer1_Timer()
Te x t 2 . Te x t = Now ' . . . . . . . . 设置定时器产生时钟, 显示当前时间
End Sub
5 系统调试
系统实现功能包括,通过下位机(单片机)将DS18B20所测温度值实时传输给上位机(PC 机),通过上位机(PC 机)监控环境温度,并具有报警功能。
1.在上位机软件中点击"自动读取"按钮实现自动读取当前时间, 温度值。当正常温度情况下, 信号指示灯为绿色, 同时信息提示为"温度正常"。
2.当温度达到所设温度极限时(本系统所设温度极限为31℃) ,信号灯变为红色,信息提示为"产生报警",同时硬件部分的蜂鸣器会报警, 如图4 所示为产生报警时上位机显示部分。