单片机
返回首页

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

2012-05-25 来源:自动化技术与应用

1 引言

温度是日常生活中非常重要的物理量,其测量包括接触式和非接触式两种,前者需要感温元件与被测物体接触,会产生滞后现象,后者则是通过接收被测介质发出的辐射来实现的。实时温度控制系统运用数字温度传感器DS18B20采集温度,单片机作为主控芯片来对温度值进行处理,控制和传输,通过蜂鸣器实现报警功能,运用VB编程制作上位机管理软件。整个系统设计结构简单,连接方便,易于管理,可以应用于人不宜或者不易接触的地方,达到自动读取环境温度,并具有报警功能,节省人力和物力。

2 系统基本原理

系统结构框图如图1所示,数字温度传感器DS18B20将待测介质温度值传递给单片机,单片机对温度值进行处理,当温度超出所设范围(本系统所设温度极限为31℃)则通过报警电路实现报警。通过RS232串口实现PC机与单片机的通信,单片机将采集到的温度值传递给PC机。

基于单片机和PC机的实时温度控制系统设计
     图1 系统结构框图

通过使用Visual Basic中的通信控件MSComm(Microsoft Communication Control),可以在Windows环境下轻松实现串口数据交换,MSComm是Microsoft提供的简化Windows下串行通信编程的ActiveX控件,通过对此控件的属性和事件进行编程,可以方便地发送和接收数据。利用MSComm控件制作上位机软件,可以实时显示环境温度值和提示信息。

3 硬件设计

3.1 单片机控制设计

本设计采用STC公司的STC89C52单片机作为主要控制芯片,此单片机具有4组8位I/O口(DIP-40封装),3个16位定时/计数器,8个中断源,8KB Flash程序存储器,512Byte片内RAM数据存储器,一个全双工串行通信接口。STC单片机性价比高,功能多,抗干扰能力很强,串口编程很方便,保密性很强。

基于单片机和PC机的实时温度控制系统设计
     图2 单片机控制电路idan;lai电路

采用数字温度传感器DS18B20测量环境温度,DS18B20是美国Dallas公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可以直接将温度值转换为串行数字信号供处理器处理,特别适合多点温度测控系统,每片DS18B20都有惟一的产品号并可存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个DS18B20芯片。从DS18B20读出或写入DS18B20信息仅需要一根端口线,其读写及温度变换功率来源于数据总线,该总线本身也可以将所挂接的DS18B20供电,而无需额外电源。DS18B20能提供9位温度读数,它无需任何外围器件即可方便地构成温度检测系统。如图2所示,只需将DS18B20的第4脚(DQ)和单片机的一个I/O口(P2.2)相连,另外还需接一个上拉电阻即可。单片机通过其I/O口获得温度值,很方便地进行处理, 传输和控制。

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

3.2 单片机与PC机接口设计

单片机要和PC机实现串口通信,需要进行电平转换,因为单片机使用的是TTL电平,而PC机串口使用的是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控件制作上位机软件,达到实时显示环境温度和提示信息。系统设计连接简单,实现容易,使用方便。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 用NE555制作定时器

    相关电子头条文章