新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机和PC机的实时温度控制系统设计

基于单片机和PC机的实时温度控制系统设计

作者:时间:2012-05-25来源:网络收藏

报警电路采用蜂鸣器作为报警器件,如图2所示,只需很少的器件,就能实现与蜂鸣器的连接。当与蜂鸣器所连的I/O口输出低电平时,蜂鸣器则能发出声音,系统设计中,当温度超过31℃时,蜂鸣器则发出声音,实现报警功能。

3.2 接口设计

单片机要和实现串口通信,需要进行电平转换,因为单片机使用的是TTL电平,而串口使用的是RS232电平。运用MAXIM公司生产的MAX232芯片实现TTL电平和RS232电平转换,如图3所示,通过其第11脚和第12脚分别与单片机的第11脚和第10脚连接,通过第13脚,第14脚分别与PC机串口的第2脚,第3脚进行连接,就能实现单片机和PC机的电平转换、连接、和通信。单片机与PC机接口电路原理图如图3所示。

基于单片机和PC机的实时温度控制系统设计
图3 单片机与PC机串口通信接口电路

4 软件设计

系统单片机程序采用C51进行编程,主要完成对DS18B20的调用中断管理、测量温度值的计算以及单片机与PC机的串口通信。上位机软件采用VBMSComm控件制作,由于C51程序较长,此处只介绍上位机软件编写程序,VB程序如下:

Private Sub Form_Load( ) ' . . . . . . . . 初始化设置
MSComm1.CommPort = 1 '……使用Com1口
MSComm1.Settings = "9600,n,8,1" '. 设置通讯参数
MSComm1.InBufferSize = 4 ' 设置接收寄存器等待读取的字符数为4
MSComm1.RThre shold = 0 ' 初始化为不产生OnComm事件
MSComm1.PortOpen = True ' .打开串口
MSComm1.InputLen = 4 ' 设置并返回Input属性从接收缓冲区读取的字符数为4
MSComm1.InputMode = comInputModeText ' 设置接收方式为文本方式
Me.Caption = " 实时" ' 设置标题为" 实时"
End Sub
Private Sub Command1_Click( ) '. .自动读取按钮
Timer1.Enabled = True ' . . . . . . . .开启定时器
MSComm 1 . RThreshold = 1 ' . . . . . . . . 开启OnComm事件触发
End Sub
Private Sub Command2_Click( ) '. .清空内容按钮
Timer1.Enabled = False ' . . . . . . . . 关闭定时器
MSComm1.RThre shold = 0 ' . . . . . . . .停止产生OnComm事件
Shape1 . FillColor = RGB(255,255,255)
' . . . . . . . . 设置信号指示灯的颜色为白色
Text1. Text = " " ' . . . . . . . .清空文本框1的内容
Text2. Text = " " ' . . . . . . . .清空文本框2的内容
Text3. Text = " " ' . . . . . . . .清空文本框3的内容
End Sub
Private Sub Command3_Click( ) '. .关闭窗口按钮
Unload Me ' . . . . . . . . 卸载窗体
End Sub
Private Sub MSComm1_OnComm( ) '. . . . . .事件触发
Dim rec As String
Select Case MSComm1.CommEvent
Case comEvReceive
rec = MSComm1. Input
Text3.Text = rec
MyResult = (Text3.Text "31")
' . . . . . . . . 判断当前温度是否达到31℃
If MyResult = False Then ' . . . .达到31℃
Shape1.FillColor = RGB(255,0 ,0 ) ' . . . . . . . . 信号灯为红色
Text1 . Text = " 产生报警"' . . . . . . . . 同时信息提示显示" 产生报警"
Else ' . . . . . . . . 未达到31℃
Shape1.FillColor = RGB(0,128,0 ) ' . . . . . . . . 信号灯为绿色
Text1 . Text = " 温度正常"' . . . . . . . . 同时信息提示显示" 温度正常"
End If
Text3.Te xt = " "
Text3.Text = rec + "℃"
MSComm1. InBufferCount = 0 ' 清空接收缓冲区
End Select
End Sub
Private Sub Timer1_Timer()
Text2 . Text = Now ' . . . . . . . . 设置定时器产生时钟,显示当前时间
End Sub

5 系统调试

系统实现功能包括,通过下位机(单片机)将DS18B20所测温度值实时传输给上位机(PC机),通过上位机(PC机)监控环境温度,并具有报警功能。

1.在上位机软件中点击"自动读取"按钮实现自动读取当前时间,温度值。当正常温度情况下,信号指示灯为绿色,同时信息提示为"温度正常"。

2.当温度达到所设温度极限时(本系统所设温度极限为31℃) ,信号灯变为红色,信息提示为"产生报警",同时硬件部分的蜂鸣器会报警,如图4所示为产生报警时上位机显示部分。

基于单片机和PC机的实时温度控制系统设计
图4 产生报警时上位机显示部分

6 结束语

运用能直接得到数字信号的温度传感器DS18B20采集温度,将温度值通过单片机I/O口传递给单片机进行处理,传输和控制,当温度值达到所设温度极限时产生报警,通过串口数据线实现下位机(单片机)与上位机(PC机)通信,并运用VBMSComm控件制作上位机软件,达到实时显示环境温度和提示信息。系统设计连接简单,实现容易,使用方便。

蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭