摘 要:文章提出了一种基于STC89C52单片机的温度采集系统设计方案,该方案通过STC89C52单片机控制DS18B20温度传感器来采集温度,测量现场利用LED数码管显示实时温度值,并采用RS-232串口作为单片机与计算机的数据通信接口。系统设计完成后,既可以准确测量温度,又解决了通讯距离问题。此方案已在某些领域得到应用。
关键词:单片机;温度采集;串口通讯;STC89C52
1 概述
温度采集是包含温度信号检测、信号处理、数据通信等相结合的综合应用技术。在现代工业控制中是指将温度的模拟量信号通过传感器做适当变换后,再经过信号调理、数据量化、数据编码等步骤将之转换为数字信号,并通过数据通讯传给PC机进行进一步处理的过程。
2 系统构成
2.1 系统硬件电路构成
温度采集系统以单片机为核心,集温度的采集、信号处理、数据显示、无线传输、串口通讯为一体。硬件组成包括单片机STC89C52、温度传感器DS18B20、PC机组成。其原理框图见图1。
此系统仅利用一片单片机,通过采集温度传感器的测量数据,经单片机处理后通过LED显示屏显示当前实时温度,并将数据通过RS232串口通讯送至计算机,再通过计算机对收到的数据进行进一步处理。
2.2 单片机组成
单片机采用STC89C52 单片机,该单片机完全兼容MCS-51 系列单片机的所有功能,支持在线下载,自带2K的存储器,是单片机中最典型的产品,具有功耗低、性能高等特点,它是采用CHMOS工艺的8位单片机。单片机内部有FLASH程序存储器,可通过在线方式对其编程调试,极大的方便了开发人员。
2.3 温度传感器组成
温度传感器直接采用数字式温度传感器DS18B20,是美国国家半导体公司推出的一种数字化单总线器件,与传统的PTC、NTC等热敏电阻相比,它能够直接测出温度,属于可直接适配微处理器的智能温度传感器。传感器可通过单总线向DS18B20 供电,无需外接电源。这种接线方式可使系统结构趋于简单,方便开发者轻松组建传感器结构。输出采用经扩展后的16 位数字量方式串行输出,提高了系统的抗干扰性。因此,DS18B20 特别适合于恶劣环境的现场温度测量。其内部结构见图2。
温度传感器DS18B20主要利用高温度系数晶振产生的振荡频率随温度变化而明显这个原理来测量温度。其测量原理为首先通过低温度系数的晶振产生固定频率的脉冲信号,并将脉冲信号送至减法计数器1,而将高温度系数晶振所产生的信号送至减法计数器2。当计数门打开时,系统对低温度系数振荡器产生的时钟脉冲进行计数,计数门的开启时间由高温度系数振荡器来决定,其测温原理见图3。
2.4 数码显示组成
LED数码显示组成采用一组4位共阳极数码管组成,数码管正向压降约为1.5~2V,额定电流10mA。
2.5 串口通讯组成
2.5.1 接收数据
当REN位置置1时,即代表CPU允许接收数据,外界数据通过引脚RXD输入,最低位进入移位器,当一帧数据接收完毕后数据并行送至SBUF缓冲器,同时将RI置位,并向CPU发出中断请求,当CPU收到请求并响应中断后,RI位清除。重复此过程。
2.5.2 发送数据
CPU发送数据时,首先将数据并行写入SBUF发送缓冲器中,同时将数据由TXD引脚串行发送,一帧数据发送完毕后,缓冲器清空,系统将发送中断标志位TI置位,并向CPU发出中断请求。当CPU收到请求并响应中断后,TI位清除。重复此过程。
3 程序设计
3.1 单片机程序设计
3.1.1 初始化DS18B2程序设计
当主机向DS18B20发复位脉冲时,主机释放总线并检测DS18B20是否響应,如响应结束,则总线将再次拉高,延时300ms后结束初始化过程,如未检测到响应,则重新启动初始化流程,直至响应结束。
3.1.2 主程序设计
DS18B20初始化之后,搜索ROM,读取在线DS18B20的序列号,确认DS18B20实际存在后,跳过ROM,进行温度转换,循环往复。
3.2 上位机程序设计
为在上位机实现采集数据的显示及存储,基于VB语言实现数据通信功能。在串口通讯方面,通过VB自带的MSComm控件,对其属性及事件进行相应的编程既可轻松实现。数据库设计则通过ACCESS建立。
4 结束语
经试验验证及现场实际应用,此系统能对温度数据进行长时间连续采集,并可以将数据传送至上位机,方便进行进一步的处理,达到了预期的结果,可为其它类似问题的解决提供参考。
参考文献
[1]沙占友.由DS1820 组成的单线数字温度计原理与应用[J].电测与仪表,1999.
[2]范逸之.Visual Basic与RS232串口通讯控制[M].中国青年出版社.
作者简介:陈中启(1964-),男,汉族,江苏省如皋市人,大学本科,高级讲师,毕业于苏州大学物理教育专业,现就职于江苏航空职业技术学院,研究方向:电子电工职业技术教育、工业自动化控制。