数字温度计的设计 精品.docx
《数字温度计的设计 精品.docx》由会员分享,可在线阅读,更多相关《数字温度计的设计 精品.docx(31页珍藏版)》请在冰豆网上搜索。
数字温度计的设计精品
学科分类号:
0809
湖南人文科技学院
本科生毕业论文
题目:
数显式电子温度计的设计
TheDesignofCountsExplicitThermotron
学生姓名:
卢明学号:
08417320
系部:
物理与信息工程系
专业年级:
信息科学与技术08级电子
指导教师:
李铭华
职称:
副教授
辅导教师:
黄雪莲李双桂
湖南人文科技学院教务处制
湖南人文科技学院本科毕业论文诚信声明
本人郑重声明:
所呈交的本科毕业论文,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的设计做出重要贡献的个人和集体均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
作者签名:
二○年月日
目录
摘要1
Abstract1
1引言2
1.1选题的根据2
1.2研究内容2
1.3拟达到目标2
第2章数字温度计总体详细设计3
2.1数字温度计设计方案论证3
2.1.1方案一:
热敏电阻3
2.1.2方案二:
温度传感器DS18B203
2.1.3方案三:
控制内核不用单片机,用DSP4
第3章数字温度计详细设计4
3.1主控制器AT89C20514
3.1.1AT89C2051的主要性能4
3.1.2引脚说明5
3.2温度传感器DS18B206
3.2.1DS18B20的测温原理10
3.2.2温度数据的计算处理方法11
3.3DS18B20与单片机的接口电路12
第四章硬件电路的设计13
4.1电路仿真图13
第五章系统的程序设计13
5.1主程序14
5.2读出温度子程序14
5.3温度转换命令子程序14
5.4计算温度子程序15
5.5显示数据刷新子程序15
参考文献16
致谢17
附录一18
附录二20
数显式电子温度计的设计
摘要:
数显式电子温度计可以准确的判断和测量温度,以数字显示,而非指针或水银显示。
故称数字温度计。
数字温度表与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示。
本文综述了利用单片机和温度传感器DS18B20、数码管的数字温度计的设计原理与制作过程。
关键词:
温度传感器单片机数码管.
TheDesignofCountsExplicitThermotron
Abstract:
Digitaltypeelectronicthermometercanaccuratelyjudgeandmeasuretemperature,withdigitaldisplay,ratherthanapointerormercury.Socalleddigitalthermometer.Comparedwiththetraditionalthermometer,Digitalthermometerwithareadingofconvenience,awiderangeoftemperaturemeasurement,accuratetemperaturemeasurement,theoutputofthetemperaturedigitaldisplay.ThisarticlereviewstheuseofMCUandthetemperaturesensorDS18B20,digitaltubedigitalthermometerdesignprincipleandfabricationprocess
KeyWords:
MCUTemperaturesensorDigitaltube
1引言
1.1选题的根据
温度是我们日常生产和生活中实时能接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度。
数显温度计应用非常广泛。
它既可以用在人们的日常生活中,也可以用在工农业生产中,还可以是一个电子产品的一部分。
数显温度计电路的种类非常多,既可以用专用集成电路实现,又可以用通用数字电路实现,还能用单片机来控制。
随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。
又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89S52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器
1.2研究内容
采用数字式温度传感器为检测器件,进行单点温度检测。
用单片机作为数字温度计的控制系统,用数码管直接显示温度值。
(1)检测的温度范围:
0℃~100℃,检测分辨率0.5℃。
(2)用4位数码管来显示温度值。
1.3拟达到目标
设计出来的电子温度计能够精确的测量出温度值,能够显示0℃~100℃的温度.
第2章数字温度计总体详细设计
2.1数字温度计设计方案论证
2.1.1方案一:
热敏电阻
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应[1],在将随被测温度变化的电压或电流采集过来,进行A/D转换后[2],就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦[3]。
感温元件如图1:
图1热敏电阻
2.1.2方案二:
温度传感器DS18B20
(1).进而考虑到用温度传感器,在现代设计中,温度的检测大都是使用传感器,这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
(2).方案二的总体设计框图
温度计电路总体框图设计思路如图2所示,其中,主控制器采用AT89C2051,
温度采集模块为DS18B20,温度显示用4位LED数码管以串口传送数据的方式实现[4]。
图2总体设计方框图
2.1.3方案三:
控制内核不用单片机,用DSP
选定了温度传感器之后,再来考虑它的控制内核,因为数字温度计的设计并不复杂,单片机完全可以处理的了,DSP是比较高端的控制内核应用成本相对较高,综合比较选用单片机是即经济又实惠的选择。
第3章数字温度计详细设计
3.1主控制器AT89C2051
3.1.1AT89C2051的主要性能
1、含可重编程的2KBFLASH存储器(10000次);
2、电压适应范围宽,2.7-6V电压范围;
3、15条可编程I/O线;
4、128*8位内部RAM;
5、和MCS-51产品兼容;
6、全静态工作:
0Hz-24MHz;
7、2级程序存储器保密锁定;
8、可编程串行通道;
9、两个16位定时器/计数器;
10、6个中断源;
11、可直接驱动LED的输出端口;
12、高精度电压比较器;
3.1.2引脚说明
PDIP/SOIC
RST/VPPVCC
(RXD)P3.0P1.7
(TXD)P3.1P1.6
XTAL2P1.5
XTAL1P1.4
(INT0)P3.2P1.3
(INT1)P3.3P1.2P1.2
(TO)P3.4P1.1(AIN1)
(T1)P3.5P1.0(AIN0)
GNDP3.7
AT89C2051
图3AT89C2051的引脚图
AT89C205的引脚图如图3所示,各引脚功能如下:
1、VCC:
电源电压。
2、GND:
地。
3、P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O口引脚。
P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3口缓冲器可吸收20mA电流。
当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。
P3口还用于实现AT89C2051的各种第二功能,如表1所列:
表1AT89C2051P3口的各种第二功能
引脚口
功能
P3.0
RXD串行输入端口
P3.1
TXD串行输出端口
P3.2
INT0外中断0
P3.3
INT1外中断1
P3.4
T0定时器0外部输入
P3.5
T1定时器1外部输入
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
4、P1口:
P1口是一个8位双向I/O口。
口引脚P1.2~P1.7提供内部上拉电阻,P1.和P1.1要求外部上拉电阻。
P1.1和P1.0和还分别作为片内精密模拟比较器的反相输入和(AIN1)同相输(ANI0)。
P1口作为输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P!
口引脚写入“1”时,他可作为输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。
当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流[5]。
5、XTAL2:
振荡器反相放大器的输出端。
6、RST:
复位输入。
RST一旦变成高电平所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
7、XTAL1:
振荡器反相器的输入端和内部时钟发生器的输入。
3.2温度传感器DS18B20
DS18B20温度传感器是美国推出的第一片支持“一线总线”接口的温度传感器它具有微型化、低功耗、高抗性、易配处理器等优点,可直接将温度转化为串行数字信
号供处理器处理,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式[6]。
TO-92封装的DS18B20的引脚排列见图4,其引脚功能描述见表2。
图4(底视图)DS18B20
表2DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
DS18B20的性能特点如下:
●接口为独特的单线方式,它与微机处理器连接时仅需要一条口线即可实现微机处理器与DS18B20的双向通信
●支持多网点测组网功能,多个DS18B20可以并联在唯一的三线上,实现组网点测温;
●在使用中无需任何外围元件,全部传感器元件及转换电路集成在形如一只三级管的集成电路内;
●适应电压范围宽,电压范围为3.0~5.5V;
●可编程分辨率为9~12;
●在9位分辨率时,最多在93.75ms内把温度转换成数字;
●负电压特性,当电源接负极性时,温度计不会因发热而烧毁,但不能完成温度的测量;DS18B20采用3脚PR-35封装或8脚SOIC封装,SOIC是指一类封装的集合,其包含了SOP、SSOP、TSSOP等封装。
SOIC是表面贴装集成电路封装形式中
的一种,它比同等的DIP封装减少约30-50%的空间,厚度方面减少约70%。
与对应的DIP封装有相同的插脚引线。
对这类封装的命名约定是在SOIC或SO后面加引脚数。
其内部结构框图如图5所示。
图5DS1DS18B20内部结构
64位ROM的结构起始的8位是产品类型的编号,接下来就是每一个器件单独对应的序号,一起有48位,最后的8位是前面各位的循环冗余度检测码,这是DS18B20可以进行单线通信的原理。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM[7]。
其中,高速暂存RAM为一个八字节的存储器,结构如图5所示[8]。
首位的2个字节中的数据是测得的温度值,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的信息主要包含温度数字转换分辨率。
DS18B20工作时寄存器中的主要信息是分辨率,它可以转换成与分辨率对应的精度的数值。
该字节各位的定义如图6所示。
低5位一直为1,工作模式由TM确定,它的主要功能是设置DS18B20在工作模式还是在测试模式,R1和R0决定温度转
换的精度位数,用来设置分辨率。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图6DS18B20字节定义
由表3可见,DS18B20中需要花费较长的时间进行温度的转换,并且当分辨率越高,温度数据转换花费的时间越长。
所以,在实际的情况中当中必须综合考虑分辨率和温度的转换时间。
高速暂存RAM的第6、7、8字节没有应用,全部置1。
根据第9字节可读出前面所有8字节的循环冗余度码,由此检验数值,用来确定数值的正确性。
当DS18B20接收到有主控制器传送的温度转换命令后,便立即开始转化。
完成转换后的温度数值值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
读出该数据单片机通过单线接口读取,读数据时高位在后,低位在先,数据格式以0.0625℃/LSB形式表示。
当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码[9],当符号位S=0时,表示测得的温度值为正值。
可以直接将二进制位转换为十进制;,再计算十
进制数值。
表4是一部分温度值对应的二进制温度数据。
表3DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转换时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位是用来计算CRC值,并和存入DS18B20的循环冗余检验码值作比较,以确认主机收到的ROM数据是否正确。
3.2.1DS18B20的测温原理
DS18B20的测温具体步骤为,由于高温度系数晶振的震荡频率随温度变化很大,它产生的脉冲信号作可作为减法计数器2的脉冲输入;元器件中的低温度系数晶振随着温度的变化的振荡频率的变化比较小,所以它可以发出固定频率的脉冲信号传给减法计数器1。
加1
停止
图7DS18B20测温原理
器件中还存在有单个的计数门,计数门打开时间的长短决定于高温度系数振荡器,当计数门开启时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
而每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
表4一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+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
3.2.2温度数据的计算处理方法
从DS18B20读出的二进制值必须先转换成十进制值[10],表4中列出了一些部分十进制温度值转化成二进制和十六进制的温度值。
DS18B20可选的换位精度有9到12位的换位精度,为了使数值更加的精确,一般采用12位的精度。
在计算实际的十进制温度时,必须把温度寄存器里的实际温度乘以0,0625。
这是由于在使用12位的转换精度时,温度寄存器里的数是采用的0.0625的步进方式。
一个十进制的数和二进制的数存在着固定的转换关系,就是把二进制的低字节的高半字节和高字节的低半字节组成一字节,把这个2进制的数值转换成十进制的数后,该数值就是就是温度的十进制数值,剩下的字节转变成十进制的数后,就是该温度十进制输的小数部分。
因为小数部分是半字节,所以二进制值范围是0-F,转换成十进制小数值就是0,0625的倍数(0-15倍)。
表5中列出了一些二进制与十进制的近似对应关系。
实际应用不必有这么高的精度,只要用1个LED数码管显示小数部分就行,可以精确到0.1℃。
表5就是二进制与十进制的近似对应关系表
小数部分二进制值
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
十进制值
0
0
1
1
2
3
3
4
5
5
6
6
7
8
8
9
另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)——发ROM功能命令——发存储器操作命令——处理数据。
3.3DS18B20与单片机的接口电路
DS18B20可以采用两种方式供电,一种是寄生电源供电方式,如图8所示单片机端口接单线总线,这是一种独特的连线方式,电源线和信号线连接在一起,每一个芯片可单独进行编码,这样就能节省大量的连线和各种逻辑电路,使占用的微机处理器端口更少。
另一种方法是使用电源直接供电,此时DS18B20的1脚接地,2脚直接与单片机相连,作为通信线,3脚连接电源。
图8DS18B20与单片机的接口电路图
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
第四章硬件电路的设计
4.1电路仿真图
图4.1电路仿真图
第五章系统的程序设计
系统程序主要包括主程序、温度转换命令子程序、显示数据刷新子程序、读出温度子程序、计算温度子程序等。
5.1主程序
主程序的主要功能是把测出的温度显示出来,并且能读出DS18B20的所测量到的温度数值,温度测量的时间为1S,这样就可以每隔一定的时间测量一次温度。
图9主程序流程图图10读出温度子程序流程图
5.2读出温度子程序
读出温度子程序的主要功能是通过发出DS18B20复位命令后,发出读取命令后来读RAM中的9字节,并在读数据时进行循环冗余度检验,如果发现检验错误,不能改写温度的数据。
其程序流程图如图10所示。
5.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令。
在这次设计中,使用的方法是1S的延时程序,使温度转换程序有充足的时间得以完成。
温度转换命令子程序流程图如图11所示。
图11温度转换命令子程序流程图
5.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图12所示。
5.5显示数据刷新子程序
显示数据刷新子程序的功能是对显示缓冲器数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
程序流程图如图13所示。
图12计算温度子程序流程图图13显示数据刷新子程序流程图
参考文献:
[1]、康华光主编.电子技术基础模拟部分[M].第五版.北京:
高等教育出版社,2005
[2]、康华光主编.电子技术基础数字部分[M].第五版.北京:
高等教育出版社,2005
[3]、WilliamKeith.DigitalElectronics,--APracticalApproach.6thEd.NewJersey:
Prentice-HallUpperSaddleRiver,2002
[4]、吴景邀.单片机的键盘及LED数码管显示接口[J].电子世界.2002
[5]、黄苑虹,梁惠冰.基于AT89C52的温度测控系统[J].仪器仪表.2002
[6]、GJiangMZhang,XXie,SLi.Applicationontemperaturecontrol
ofDS18B20[J].ControlEngineeringofChina,2003
[7]、赵海兰.智能温度传感器DS18B20的原理与应用[J].现代电子技术.2003
[8]、张毅刚主编《单片机原理及应用》[M].北京:
高等教育出版社,2003
[9]、王志力主编《C语言程序设计》[M]。
天津:
天津科学技术出版社,2008
[10]、BrianW.Kernighan,DennisM.Ritchie《TheCprogrammingLanguage2》[M].北京.机械工业出版社2006
致谢:
经过几个月的忙碌和工作,本次毕业设计已经接近尾声,由于经验的匮乏,难免有许多考虑不周的地方,如果没有导师的督促指导,想要完成这个设计是难以想象的。
在这里要感谢李铭华老师,他循导善诱的教导和不拘一格的思路给予我无尽的启迪;他严谨细致,一丝不苟的作风一直是我们工作.学习中的榜样;并将积极影响我今后的学习和工作。
然后要感谢大学4年来的所有老师,为我们打下了电子专业知识的基础;同时还要感谢08电科所有的同学们,正是因为有你们的支持和鼓励。
我才能在温暖的环境中茁壮成长并顺利完成毕业设计。
附录一
DS18B20的各条ROM命令
ReadROM[33H]。
这条命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。
只有在总线上存在单只DS18B2