课设有关数字温度计方案设计书.docx
《课设有关数字温度计方案设计书.docx》由会员分享,可在线阅读,更多相关《课设有关数字温度计方案设计书.docx(30页珍藏版)》请在冰豆网上搜索。
课设有关数字温度计方案设计书
前言
单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。
单片机的潜力越来越被人们所重视。
特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。
而现在的单片机在农业上页有了很多的应用。
温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。
测量温度的基本方法是使用温度计直接读取温度。
最常见到得测量温度的工具是各种各样的温度计,例如:
水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。
它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。
利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。
矚慫润厲钐瘗睞枥庑赖。
第一章设计的要求及任务
1.1传感器
传感器是将感受到的外界信息,按照一定的规律转换成所需的有用信息的装置,它获取的信息可以是各种物理量、化学量和生物量,而转换后的信息也有各种形式。
例如:
光、温度、声、委位移、压力等物理量,可以通过传感器相互转化。
但是通常是将非电量或电量转换成易于处理和传输的电量,有些传感器的这种转换是可逆的,即输入量为电量而输出量为机械量或热工艺量等。
聞創沟燴鐺險爱氇谴净。
1.2任务与要求
1.2.1设计任务及指标
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温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图4-3所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
驅踬髏彦浃绥譎饴憂锦。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
猫虿驢绘燈鮒诛髅貺庑。
图3-3DS18B20与单片机的接口电路
第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所示。
嘰觐詿缧铴嗫偽純铪锩。
熒绐譏钲鏌觶鷹緇機库。
图4-7主程序流程图图4-8读温度流程图
4.4.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图4-8示鶼渍螻偉阅劍鲰腎邏蘞。
图4-9温度转换流程图
5.4.3温度转换命令字程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如上图,图4-11所示纣忧蔣氳頑莶驅藥悯骛。
5.4.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4-10所示。
颖刍莖蛺饽亿顿裊赔泷。
濫驂膽閉驟羥闈詔寢賻。
銚銻縵哜鳗鸿锓謎諏涼。
图4-10 计算温度流程图图4-11 显示数据刷新流程图挤貼綬电麥结鈺贖哓类。
4.4.5显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
程序流程图如图4-11。
赔荊紳谘侖驟辽輩袜錈。
第5章硬件
5.1系统硬件主要构成
整个系统硬件可以分为主控制器模块,测温电路模块和显示电路模块。
每个模块执行其相应的功能,共同组成了一个有序,协调的系统。
主要元件有控制器—AT89C2051,温度传感器DS18B20、数码管—LED。
塤礙籟馐决穩賽釙冊庫。
5.2调试及性能分析
系统调试以程序为主。
硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。
软件调试可以先编写显示程序并进行硬件正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示刷新等子程序的编程及调试,由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读写编程时必须严格的保证读写时序,否则将无法读取测量结果。
本程序采用单片机汇编编写,用wave3.2编译器编程调试。
软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能改变就基本完成。
裊樣祕廬廂颤谚鍘羋蔺。
性能测试可用制作的温度计和已有的成品温度计来同时测量比较,由于DS18B20的精度很高,所以误差指标可以限制在0.1℃以内,另外—55至+125℃的测温范围使得该温度计完全适合一般的应用场合,其低压供电特性可作成用电池供电的手持电子温度计。
图5-1为它的暂存器操作命令流程图。
仓嫗盤紲嘱珑詁鍬齊驁。
图5-1暂存器操作命令流程图
附录:
源程序代码:
ORG0000H;0-125度的温度计
TEMPER_LEQU41H;用于保存读出温度的低8位
TEMPER_HEQU40H;用于保存读出温度的高8位
FLAG1EQU38H;是否检测到DS18B20标志位
A_BIT1EQU30H;数码管小数点位数存放内存位置
B_BIT1EQU31H;数码管个位数存放内存位置
C_BIT1EQU32H;数码管十位数存放内存位置
D_BIT1EQU33H;数码管百位数存放内存位置
DQEQUP3.7;30H,31H,32H,33H:
小数点位个位十位百位绽萬璉轆娛閬蛏鬮绾瀧。
MOD7:
MOVSP,#60H
LCALLGET_TEMPER;调用读温度子程序
LCALLTEMPCOV
LCALLDISPLAY;调用数码管显示子程序
AJMPMOD7
TEMP0:
INCA
AJMPTEMP1
TEMPCOV:
MOVA,TEMPER_L;数据处理子程序TEMPCOV
MOVB,#10H
DIVAB
JBB.3,TEMP0
TEMP1:
MOV34H,A;将TEMPER_L的高四位右移四位,存入34H中(温度值)骁顾燁鶚巯瀆蕪領鲡赙。
MOVA,B;将TEMPER_L的低四位X10/16得小数后一位数
MOVB,#0AH
MULAB
MOVB,#10H
DIVAB
MOV30H,A;将小数后一位数.存入30H中
MOVA,TEMPER_H;TEMPER_H中存放高8