严敏
摘 要: 利用温度传感器DS18B20,以AT89C51为主控制器设计了电子温度计,并在Proteus仿真平台中进行系统硬件设计。在Medwin3.0开发环境中采用C语言进行系统程序设计,调试直至成功。再使用全国技能大赛单片机项目的指定设备亚龙YL-236构建电子温度计,进行实际验证。结果表明,与传统测温方法相比,基于DS18B20的电子温度计具有电路简单、测量精度高、系统稳定、抗干扰能力强等优点。
关键词: DS18B20; 单片机; LED数码管; Proteus
中图分类号: TP 212.11 文献标志码: A 文章编号: 1671-2153(2016)03-0083-03
0 引 言
在人们的日常生活中,温度的测量和显示随处可见,如:冰箱、空调、热水器等等,同时在工农业的许多领域也得到广泛的应用[1-3]。传统的测温方法一般采用的是热敏电阻,由于输出的是模拟信号且信号微弱,因此需要先增益放大,再进行A/D转换,电路比较复杂,测量精度不高、抗干扰能力弱[4-5]。本文利用温度传感器DS18B20,以AT89C51为主控制器设计了电子温度计,在Proteus仿真平台进行系统硬件设计。在Medwin3.0开发环境中采用C语言进行系统程序设计,调试直至成功,再使用全国技能大赛单片机项目的指定设备亚龙YL-236构建电子温度计,进行实际验证。
1 硬件设计
1.1 设计总体结构
本设计是以AT89C51为核心控制,采用DS18B20数字温度传感器进行温度的测量。DS18B20输出的是数字信号,单片机的任务是读取数字温度信号,再进行数值变换和量程变换后,送LED数码管动态扫描显示,当温度超出设定温度范围时,LED灯点亮并发出报警。系统电路如图1所示。
1.2 DS18B20温度采集模块
DS18B20是Dallas半导体公司生产的数字化温度传感器,具有抗干扰性高、价格便宜、体积小、精度高、布线简单等特点,它采用一线总线方式,即一根数据线实现数据的双向传输。DS18B20测量温度范围为-55~+125 ℃,测量分辨率为0.0625 ℃。用户可以在程序中设定9~12位的分辨率和报警温度,它们存储在EEPROM中,掉电也不丢失。在电路设计时,将引脚VDD接5V电源,引脚GND接电源地,引脚DQ接4.7 kΩ的上拉电阻到单片机的I/O口即可。
2 软件设计
软件程序主要完成温度的读取、转换及显示功能,采用模块化设计思路,包括系统初始化程序、LED数码管显示子程序、中断服务子程序、延时子程序、温度测量子程序等。程序流程如图2所示。
2.1 DS18B20温度测量子程序设计
由于DS18B20采用一线总线方式,因此,必须有严格的初始化时序、读时序、写时序,才能确保温度信息传输的准确性和完整性。测量温度时,单片机先初始化DS18B20,单片机作为主设备,DS18B20作为从设备。首先由单片机发出复位脉冲,即不低于480 μs的低电平,然后释放总线做好接收准备,DS18B20检测到总线的上升沿,等待15~60 μs,发出60~240 μs的应答脉冲,通知单片机已经接在总线上,如图3所示。接着,单片机对DS18B20进行ROM操作命令和RAM操作命令,得到RAM中的2字节16位的温度数据(低位在前,高位在后),再进行数值变换和量程变换,最终得到实际温度。这16位的温度数据中前5位是符号位,当为0时,表示测得的温度高于零度,这时,16位温度数据直接乘以0.0625得到实际温度;当为1时,则表示温度低于零度,须先将其取反加1再乘以0.0625。如:+25.0625 ℃的数字输出是0191H,-25.0625℃的数字输出是FE6FH。其部分代码设计如下所示:
2.2 LED数码管显示子程序设计
在编程时,LED数码管要显示哪个数字或字符,只须写入相应地字段码,利用循环扫描的方式,分时轮流选通各个LED数码管,当扫描速度达到一定程度时,由于人眼的视觉暂留效应就分辨不出来了,感觉是所有LED数码管同时点亮。其部分代码设计如下所示:
3 仿真实验
硬件电路接好后,启动MedWin3.0单片机集成开发环境,采用C51语言编写系统程序,编译并排除错误,直至无误,生产.hex十六进制文件,加载到单片机芯片中,系统的仿真结果如图4所示。由图4可以看出,测得温度为零上18.2 ℃。图4中,数码管第一位为符号位(零上温度不显示,零下温度显示-),第二、三、四位显示测量温度值,第五位显示小数值,第六位显示C(摄氏)。
再使用亚龙YL-236设备,温度传感器模块的输出(OUT)口接单片机的P3.0,LED数码管的D0~D7,CS1,CS2,WR分别接单片机的P0,P2.7,P2.6,P3.6口,这里LED数码管的显示采用数据总线方式(图略),结果数码管同样显示18.2 ℃。
4 结束语
从以上仿真和实验结果可以看出:以单片机AT89C51作为控制器,利用DS18B20数字传感器测量温度,可以实现-55~+125 ℃的测量,与传统测温方法相比,基于DS18B20的电子温度计因电路设计简单、测量精度高、成本低廉、系统稳定、抗干扰能力强等优点广泛应用于工农业和日常生活中。
参考文献:
[1] 卢进军. 基于AT89C51 的数据采集系统设计[J]. 河南科学,2014(8):74-77.
[2] 王云飞. DS18B20温度传感器的应用设计 [J]. 电子世界,2014(12):255.
[3] 宋全,谢颂华,王超,等. 基于单片机和DS18B20的温度采集和分析系统[J]. 电子科技,2015(9):100-103.
[4] 国庆锋. 基于单片机温度采集系统的开发与应用[J]. 黑龙江科技信息,2015(31):36.
[5] 石建平. 基于PROTEUS的单片机温度采集系统设计与仿真[J]. 电子测试 ,2013(21):70-72.
Abstract: This paper use the temperature sensor DS18B20 to design the electronic thermometer with the AT89C51 as the controller. The hardware design of the system is carried out in the Proteus simulation platform. In the Medwin3.0 development environment using C language system program design, debug until successful. Then use the national skills competition SCM project specified equipment of YL-236 to verify. The electronic thermometer based on DS18B20 has such advantages as simple circuit、high measurement accuracy、system stability、strong anti?鄄interference ability, compared with the traditional method of measuring temperature.
Keywords: DS18B20; single?鄄chip microcomputer; LED digital tube; Proteus
(责任编辑:徐兴华)