唐秀梅
摘要:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。单片机在日用电子产品中的应用越来越广泛,温度则是人们日常生活中常常需要测量和控制的一个量。传统的测温元件有热电偶和热电阻,而它们测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,电路复杂,软件调试复杂,制作成本高。
关键词:数字体温计 设计
(一)数字温度计特点
随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点。
(二)数字温度计设计原理
体温计的原理,体温计是一种水银温度计。它的上部是一根玻璃管,下端是一个玻璃泡。在泡里和管的下端装有纯净的水银,管上标有温度的刻度。由于人体温度最高不超过42℃,最低不低于35℃,所以体温表的刻度是35℃到42℃,每个小格代表0.1℃。
该数字温度计利用DS18B20集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器ADC0804转换成单片机能够处理的数字信号,然后送到单片机AT89C51中进行处理变换,最后将温度值显示在D4、D3、D2、D1共4位七段码LED显示器上。
第二 硬件实现
(一)系统选择
DALLAS单线数字温度传感器DS18B20简介:新的“一线器件”体积更小、适用电压更宽、更经济,Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特且经济的特点,使用户可轻松地组建传感器网络。DS18B20、DS1822“一线总线”数字化温度传感器,支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
(二)模块电路详细设计
1、电源
本系统以CPU为中心的供电,我们采用线性稳压电路,通过变压器T对220V交流电压进行降压,降压到7V左右,然后进整流、滤波后,有8V的直流电压。最后通过LM7805进行稳压,给整个系统提供一个5V的直流压。
2、温度传感器DS18B20
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
光刻ROM中的64位序列號是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
3、显示电路
显示用数码管显示电路,将采集到的数据直接送到数码管上显示,达到实时显示的效果。用P1口作为段码输出,用P0.3、P0.4、P0.5、P0.6,作为位码输出。此数码管采用共阳极四位一体,温度显示可以为四位,主要是便于电路升级。
4、按键
键盘处理,用单片机的P0.1、P0.2实现,当按下按键,该端口为0,用单片机检测该端口的值就能叛断有无按键按下,当P0.1按下时,就实现温度加1℃,当P0.2按下时,就实现温度减1℃功能。
第四章 软件设计
(一)七段码LED温度显示电路
由发光二极管组成的七段码LED显示器用于显示各种数字和字符。该数字温度计的温度显示由4位七段码LED显示器组成,单片机以并行通信方式从P1.0~P1.7口输出段码和控制信号,通过7447TTL BCD译码器译码,用4个共阳极LED动态显示温度的各个数位。
(一)主程序框图
在主程序中,系统上电自动复位以后首先设置堆栈,然后启动ADC0804,开始转换AD590测温电路输入的电信号,待数据转换结束后读入到累加器A,然后进行十进制数据转换调整,输出给显示电路。
第四章 系统测试
系统调试以程序为主。硬件调试首先检查电路的焊接是否正确,然后用万用表测试或通电检测。软件调试以编程序并进行硬件的正确性检验。由于AD590与单片机采用串行数据传送,因此,对AD590进行读/写编程时必须严格地保证读/写时序,否则将无法读取测量结果。本程序采用单片机C语言编写,用Keil C51编译器编程调试。软件调试到能显示温度值,而且在有温度变化时(例如用手去接触),显示温度能改变就基本完成本设计。
参考文献:
[1]康华光.电子技术基础.北京:高等教育出版社,1999
[2]河小艇.电子系统设计.杭州:浙江大学出版社,2001