基于单片机的数字温度计设计1.docx
《基于单片机的数字温度计设计1.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计设计1.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机的数字温度计设计1
目录
摘要2
Abstract2
绪论3
第1章任务与要求3
1.1传感器3
1.2任务与要求3
1.2.1本设计课题的目的和意义3
1.2.2设计任务及指标4
第2章智能温度传感器与单片机9
2.1智能温度传感器的产品分类9
2.2智能温度传感器典型产品的技术指标9
2.3单片机AT89C2051的简介10
2.4单片机AT89C2051的引脚图11
第3章DS18B20数字温度计11
3.1DS18B20温度传感器的性能特点11
3.2DS18B20温度传感器的内部结构框图及设置11
3.3DS18B20温度传感器与单片机的接口电路14
第4章数字温度计的设计15
4.1总体设计方案15
4.2方案的总体设计框图15
4.2.1主控制器15
4.2.2显示电路17
4.2.3温度传感器17
4.2.3DS18B20温度传感器与单片机的接口电路17
4.3系统整体硬件电路18
4.3.1主板电路18
4.3.2显示电路18
4.4系统软件算法分析19
4.4.1主程序19
4.4.2读出温度子程序20
4.4.3温度转换命令字程序21
4.4.4计算温度子程序21
4.4.5显示数据刷新子程序21
第5章硬件22
5.1系统硬件主要构成22
5.2调试及性能分析22
总结22
参考文献23
附录23
摘要
温度作为一个常用的物理量在我们的气场生活中起着十分重要的作用,所以对温度计的设计也十分必要。
在此介绍一种智能数字温度计,这种温度计有许多优点,并且它的应用范围非常广泛。
它的主要元件是:
控制器—AT89C2051、温度传感器—DS18B20、数码管—LED,所以这种温度计不仅设计起来简单并且轻便、便宜,总体来说这种温度计的性价比是很高的。
它的主要原理是利用DS18B20可以很好的转换温度值,并且直接显示温度值,它的性能优于传统的感温元件并且省去了A\D、和模拟开关的设计。
此外AT89C2051体积小并且还可以直接驱动LED,这样大大化简了设计的难度并且降低了成本。
【关键词】智能数字温度计温度
Abstract
Thetemperaturetookacommonlyusedphysicalquantityisplayingtheextremelyvitalroleinoursgasfieldlife,thereforeextremelyisalsoessentialtothethermometerdesign.Inthisintroducedonekindofintelligentnumeralthermometer,thiskindofthermometerhasmanymerits,anditsapplicationscopeisextremelywidespread.Itskeyelementis:
Controller-AT89C2051,temperaturesensor-DS18B20,nixietube-LED,notonlythereforethiskindofthermometerdesignssimpleandisfacile,ischeap,generallyspeakingthiskindofthermometerperformance-to-priceratioisveryhigh.ItsmainprincipleisusesDS18B20tobepossibletheverygoodtransformationtemperaturevalue,anddemonstratesthetemperaturevaluedirectly,anditsperformancesurpassedtraditionalthebulbtoomitA\D,andtheanalogswitchdesign.Andinadditionat89C2051volumesmallalsomaydirectdriveLED,andsimplifiedthedesigndifficultytoreducethecostlikethisgreatly.
[Keyword]IntelligenceNumeralThermometerTemperature
前言
单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。
单片机的潜力越来越被人们所重视。
特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。
而现在的单片机在农业上页有了很多的应用。
温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。
测量温度的基本方法是使用温度计直接读取温度。
最常见到得测量温度的工具是各种各样的温度计,例如:
水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。
它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。
利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。
第一章设计的要求及任务
1.1传感器
传感器是将感受到的外界信息,按照一定的规律转换成所需的有用信息的装置,它获取的信息可以是各种物理量、化学量和生物量,而转换后的信息也有各种形式。
例如:
光、温度、声、委位移、压力等物理量,可以通过传感器相互转化。
但是通常是将非电量或电量转换成易于处理和传输的电量,有些传感器的这种转换是可逆的,即输入量为电量而输出量为机械量或热工艺量等。
1.2任务与要求
1.2.1本设计课题的目的和意义
这次毕业设计的课题是数字温度测量系统的设计,首先通过调研收集数据进行产品开发,通过分析进行实时优化。
通过本次毕业设计使学生了解和掌握工程设计所应遵循的步骤和程序,毕业设计结束时,参与设计的同学应具有以下的能力:
(一)综合应用的能力。
(二)市场调研能力。
(三)应用参考文献的能力。
(四)电路设计能力。
(六)分析问题的能力。
(七)创新能力。
1.2.2设计任务及指标
1:
设计任务:
利用单片机和数字温度传感器,实现一个能精确测量并显示温度的实际应用系统,为低成本的数字温度测量系统设计提出一种新的解决方案。
并需说明设计方案的构思依据、设计思路、系统原理、设计过程及系统工作流程图。
2:
技术指标:
①系统稳定性高;
②使用四位数码管显示温度值;
③测量精度达0.1℃;
④要求系统具备复位功能;
第2章智能温度传感器与单片机
2.1智能温度传感器的产品分类
智能温度传感器采用了数字化技术,能以数据形式输出被测温度值。
其测温误差小、分辨率高、抗干扰能力强、能远程传输数据、用户可设定上、下限,具有越限自动报警功能并且带串行总线接口,适配各种微控制器。
按照串行总线划分有单线总线(1—Wire)、二线总线(含SMBUS、I2C总线)三线总线(含SPI总线)几种类型。
典型产品有DS18B20(单线总线)、LM75(I2C总线)和LM75(SPI总线)。
多通道智能温度传感器除具有内置温度传感器之外,还专门增加了若干个远程测温通道,通过在总线上接多片同种型号的芯片,很容易将通道扩展到几十路,这就为研制多路温度测控系统创造了便利条件。
多通道智能温度传感器的典型产品有MAX1668、AD7417、AD7817、MAX1805和LM83。
2.2智能温度传感器典型产品的技术指标
智能温度传感器典型产品的技术指标,详见表2—1
表2-1智能温度传感器典型产品的技术指标
2.3单片机AT89C2051的简介
单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携式产品的设计使用,系统可用二节电池供电.AT89C2051提供如下的标准功能:
2KB闪速存贮器,128B内部RAM,15根I/O口引线,两个16位定时器/计数器,一个五向量两极中断结构,一个全双工串行口,一个精密模拟比较器以及片内振荡器和时钟电路。
此外,AT89C2051采用可降到0频率的静态逻辑操作设计,并支持两种可选的软件节电工作方式,即空闲方式和掉电方式。
在空闲方式下,CPU停止工作,但允许内部RAM、定时器、计数器、串行口和中断系统继续工作。
在掉电方式下,保存RAM的内容,但振荡器停止工作,并禁止所有其部件工作,直到下一个复位。
AT89C51的结构框与AT89C51类似。
现将AT89C51的主要特性归纳如下:
·和MCS—51产品兼容。
·2KB可重编程闪速存储器。
·耐久性:
1000次写/擦除周期。
·2.7—6V的工作范围。
·全静态操作:
0Hz—24MHz。
·128字节内部RAM。
2.4单片机AT89C2051的引脚图
图2-2单片机AT89C2051引脚图
第3章DS18B20数字温度计
3.1DS18B20温度传感器的性能特点
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
3.2DS18B20温度传感器的内部结构框图及设置
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图4-1所示。
图3-1DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图4-2所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3-2 DS18B20字节定义
由表3-1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表4-2是一部分温度值对应的二进制温度数据。
表3-1DS18B20温度转换时间表
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
表3-2 一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
图3-3DS18B20与单片机的接口电路
3.3DS18B20温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图4-3所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
第4章数字温度计的设计
4.1总体设计方案
在单片机电路设计中,使用传感器,是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
4.2方案的总体设计框图
温度计电路设计总体设计方框图如5-1所示,控制器采用单片机AT89C2051,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
图4-1 总体设计方框图
4.2.1主控制器
在第三章中已经提到单片机AT89C2051,在此详细介绍一下各引脚的功能及其有优点。
单片机AT89C2051具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
AT89C2051的引脚
AT89C2051采用引脚双列直插式封装,现将各引脚的功过能说明如下。
·Vcc(20):
电源电压端。
·GND(10):
地端。
·RST
(1):
复位输入端。
当RST引脚出现两个机器周期的高电平时,单片机复位。
复位后,AT89C2051内部专用寄存器及I/O口的处置与8051的情况一样,而内部的状态保持不变。
·XTAL1(5):
振荡器反相放大器的输入和内部时钟发生器的输入端。
·XTAL1(4):
振荡器反相放大器的输出端。
·P1口:
P1口是一个8位双向I/O口。
P1.2-P1.3引脚内部接有上拉电阻。
P1.0和P1.1分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。
P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P1口的锁存器写入“1”时,P1口可作为输入端。
当引脚P1.2--P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(II1)。
P1口还在闪速编程和程序校验期间接受代码数据。
·P3口:
P3口的P3.0-P3.5和P3.7是带有内部上拉电阻的七个双向I/O引脚。
P3.6用于固定输入片内比较器的输入信号并且它作为一通用I/O引脚而不能访问。
P3口缓冲器可吸收20mA电流。
当P3口锁存器写入“1”时,它们被上拉电阻拉高并可作为输入端。
用作输入时,被外部拉低的P3口引脚将由于上拉电阻而流出电流(Ii1)。
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
P3口还用于实现AT89C2051的一些特殊功能,这些特殊功能定义如下:
口线特殊功能
P3.0RXD(串行口输入端)
P3.1TXD(串行口输出端)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
下面就目前国内全胜较多的两种单片机,讨论一下2051的性能价格比
1、与80C31系统相比较
如果需要构成一个80C31的最小系统的话,除了CPU之外,至少需要一片27C64,而系统的有效引脚和89C2051基本相同。
从元器件的成本,电路板的面积和加密性来看,使用89C2051都是合算的。
2、 与PIC单片机比较
目前,国内小型的单片机全胜较多的有PIC系列,89C2051与PIC相对应芯片比较有如下特点:
89C2051的价格高于PIC的OTP型号,但大大低于PIC的EPROM型,89C2051片内不含Watch Dog,这是89C2051的不足之处,中断系统堆栈结构、串等通讯笔定时器系统都大大强于PIC系统。
由于PIC芯片中无标准串等口,所以在单片机的联网应用上面,PIC不太适合。
与PIC相比2051更适合于较复杂的应用场合,适合一些软件需要多次修改的应用。
3、在应用方面
就目前中国市场的情况来看,89C2051有很大的市场。
其原因有下列几点:
(1)2051采用的是MCS51的核心,十分容易为广大用户所接受;
(2)2051内部基本保持了80C31的硬件I/O功能;
(3)2051的Flash存贮器技术,可重复擦/写1000次以上,容易解闷调试手段;
(4)更适合小批量系统的应用,容易实现软件的升级。
89C2051适合于家用电器控制,分布式测控网络,I/O量不足不是很大的应用系统。
4.2.2显示电路
显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。
4.2.3温度传感器
DS18B20的测温原理如图4-2所示.图中低温度系数晶振的振荡频率受温度的影响很小,用于产生的信号作为减法计数器1;高温度系数晶振随温度变化其振荡频率明显变,所以产生的信号作为减法计数器2的脉冲输入。
图中还隐含着计数门,当计数门打开时,DS18B20对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器决定,每次测量前,首先将—55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,减法计数器1和温度寄存器被预置在—55℃所对应的一个基数值。
图4-2DS18B20测温原理图
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。
图2—8中的斜率累加器用于温度补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
4.2.3DS18B20温度传感器与单片机的接口电路
图4-3:
DS18B20的测温电路与单片机的连接电路
4.3系统整体硬件电路
4.3.1主板电路
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图4-1所示。
图5-1中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。
图4-4单片机主板电路
图4-4中的电路是上电之后单片机的外部连接电路,使用比较方便。
4.3.2显示电路
图4-5硬件原理图
图4-6硬件原理图
4.4统软件算法分析
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
4.4.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图4-7所示。