单片机和PC机在实时温度控制系统设计
设计了一种利用单片机和PC 机来实现的实时温度控制系统,包括硬件设计和软件设计。系统采用STC89C52 单片机作为主芯片,DS18B20 数字温度传感器作为温度采集器件,运用蜂鸣器作为报警器,VB6.0 制作上位机软件,通过串口实现单片机与PC 机的通信。系统能实时监控环境温度,并具有报警功能,具有一定的实用性。
1 引言
温度是日常生活中非常重要的物理量, 其测量包括接触式和非接触式两种,前者需要感温元件与被测物体接触, 会产生滞后现象, 后者则是通过接收被测介质发出的辐射来实现的。实时温度控制系统运用数字温度传感器DS18B20 采集温度,单片机作为主控芯片来对温度值进行处理, 控制和传输, 通过蜂鸣器实现报警功能,运用VB 编程制作上位机管理软件。整个系统设计结构简单,连接方便,易于管理,可以应用于人不宜或者不易接触的地方, 达到自动读取环境温度, 并具有报警功能,节省人力和物力。
2 系统基本原理
系统结构框图如图1 所示, 数字温度传感器DS18B20 将待测介质温度值传递给单片机,单片机对温度值进行处理,当温度超出所设范围(本系统所设温度极限为31℃)则通过报警电路实现报警。通过RS232 串口实现PC 机与单片机的通信,单片机将采集到的温度值传递给PC 机。
通过使用Vi sual Bas ic 中的通信控件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 单片机性价比高,功能多,抗干扰能力很强, 串口编程很方便, 保密性很强。
采用数字温度传感器DS 1 8B2 0 测量环境温度,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 所示。
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 = comInputMod
- DSP和PBL3717A构成的步进电机的控制系统(04-01)
- 基于DSP的新型弹载控制计算机(04-05)
- 基于TMS320VC5509A的语音识别与控制系统(06-17)
- 基于DSP的智能刹车控制系统研究(07-29)
- 基于DSP的逆变电源控制系统设计(08-11)
- 基于DSP的混合悬浮控制系统的硬件设计(01-13)