基于51单片机及DS18B20温度传感器的数字温度计设计

发布时间 : 星期一 文章基于51单片机及DS18B20温度传感器的数字温度计设计更新完毕开始阅读

2 系统总体方案及硬件设计

2.1 系统总体方案 2.1.1系统总体设计框图

由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。

温度计电路设计总体设计框图如图2-1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实现,键盘用来设定报警上下限温度。

图2-1 温度计电路总体设计框图

2.1.2各模块简介

1.控制模块

AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程的Flash,使得AT89S52为众多嵌入式控制使用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

2.显示模块

显示电路采用4位共阴LED数码管,从P0口输出段码,P2口的高四位为位选端。用动态扫描的方式进行显示,这样能有效节省I/O口。

3.温度传感器模块

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,和传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过

简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.0~5.5v;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20采用3脚TO-92封装或8脚SO或μSOP封装,其其封装形式如图2-2所示。

图2-2 DS18B20的封装形式

DS18B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。高速暂存RAM的结构为8字节的存储器,结构如图2-3所示。

图2-3 DS18B20的高速暂存RAM的结构

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值,该字节各位的定义如表2-1所示。

表2-1:配置寄存器

D7 D6 D5 D4 D3 D2 D1 D0 TM R1 R0 1 1 1 1 1 配置寄存器的低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,“R1R0”为“00”是9位,“01”是10位,“10”是11位,“11”是12位。当DS18B20分辨率越高时,所需要的温度数据转换时间越长。因此,在实际使用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。输出的二进制数的高5位是符号位,最后4位是温度小数点位,中间7位是温度整数位。表2-2是一部分温度值对应的二进制温度数据。

表2-2 DS18B20输出的温度值 温度值 +125℃ +85℃ +25.0625℃ +10.125℃ +0.5℃ 0℃ -0.5℃ -10.125℃ -25.0625℃ -55℃ 二进制输出 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 十六进制输出 07D0h 0550h 0191h 00A2h 0008h 0000h FFF8h FF5Eh FF6Fh FC90h DS18B20完成温度转换后,就把测得的温度值和RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字

2.2 系统硬件设计

5.报警模块介绍

4.调节模块介绍

2.2.1 单片机电路设计

组成。原理图如图2-4所示。

低电平。程序设计为低电平触发。

2.2.2 DS18B20温度传感器电路设计

的CRC值作比较,以判断主机收到的ROM数据是否正确。

二极管组成的。报警时蜂鸣器间歇性报警,发光二极管闪烁。

图2-4 单片机最小系统原理图

DS18B20温度传感器是单总线器件和单片机的接口电路采用电源供电方。

管脚相当于悬空,默认下为高电平,当按键按下时相当于把单片机的管脚直接接地,此时为

节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20

电源供电方式如图2-7,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

调节模块是由四个按键接地后直接接单片机的I/O口完成的。当按键没有按下时单片机

报警模块是由一个PNP型的三极管9012驱动的5V蜂鸣器,和一个加一限流电阻的发光

单片机最小系统是由晶振电路,上电复位、按键复位电路,ISP下载接口和电源指示灯

联系合同范文客服:xxxxx#qq.com(#替换为@)