数字温度计论文毕业设计.docx
《数字温度计论文毕业设计.docx》由会员分享,可在线阅读,更多相关《数字温度计论文毕业设计.docx(36页珍藏版)》请在冰豆网上搜索。
数字温度计论文毕业设计数字温度计论文毕业设计(此文档为word格式,下载后您可任意编辑修改!
)数字温度计的设计摘要温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温度的测量方法和控制具有重要的意义。
本论文介绍了一种以单片机为主要控制器件,以DS18B20为温度传感器的新型数字温度计。
主要包括硬件电路的设计和系统程序的设计。
硬件电路主要包括主控制器,测温控制电路和显示电路等,主控制器采用单片机AT89C52,温度传感器采用美国DALLAS半导体公司生产的DS18B20,显示电路采用8位共阴极LED数码管,ULN2803A为驱动的动态扫描直读显示。
测温控制电路由温度传感器和预置温度值比较报警电路组成,当实际测量温度值大于预置温度值时,发出报警信号,即发光二极管亮。
系统程序主要包括主程序,测温子程序和显示子程序等。
DS18B20新型单总线数字温度传感器是DALLAS公司生产的单线数字温度传感器,集温度测量和AD转换于一体,直接输出数字量,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。
由于采用了改进型智能温度传感器DS18B20作为检测元件,与传统的温度计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。
DS18B20温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。
此外,还介绍了系统的调试和性能分析。
关键词:
显示电路,单片机,AT89C52,温度传感器,DS18B20,单总线TheDesignofDS18B20DigitThermometerABSTRACTTemperatureisabasicparametersoftheenvironment,peopleslivesandtheenvironmentarecloselyrelatedtotemperature.inthecourseofindustrialproductionimmediateneedfortemperaturemeasurementinindustrialproductionoftheofthesystemprogram.The,themastercontrollerusedMicroControllerUnitAT89C52,thetemperaturesensorusedDS18B20whichtheAmericanDALLASsemiconductorcompanyproduces,thedisplaycircuitused8altogetheranodesLEDnumericalcodetubebythedynamicscanningmethodstraighttoreadthedemonstration.ULN2803A-drivendynamicscanshowedstraighttime.Temperaturecontrolcircuitfromtemperaturesensorsandpresettemperaturevaluecomparedalarmcircuitcomponents,Whenmeasuredtemperaturegreaterthanpresettemperaturevalue,issuedwarningsignalthatthebrightlightemittingdiodes.Thesystemprogrammainlyincludedthemasterroutine,thetemperaturesubroutine,thedatarenovatessubroutineandsoon.DS18B20isadigitaltemperaturesensorofsinglebus.ItisproductedbyDALLAScooperation.DS18B20assemblestemperaturemeasureandADconverter,exportsdigitalsignaldirectly,operationeasily,betterprecise,protectingdisturb,runningsteablyandsoon.BecauseusedtheadvancedversionintelligencetemperaturesensorDS18B20astheexaminepart,comparedwiththetraditionalthermometer,thisdigitalthermometerreducedtheexteriortemperaturecontrolcarriesontheapplicationdevelopment,addition,introducedthesystemdebuggingandtheperformanceanalysis.KEYWORDS:
DisplayCircuit,MicrocontrollerUnit,AT89C52,TemperatureSensor,DS18B20,1-Wire前言1第1章设计任务及方案分析21.1设计任务及要求21.2设计总体方案及方案论证21.3温度测量的方案与分析21.3.1芯片选择21.3.2实现方法简介31.3.3测温流程图3第2章芯片功能简介42.1AT89C52的功能简介42.1.1AT89C52芯片简介42.1.2引脚功能说明42.2DS18B20的功能简介72.2.1芯片简介72.2.2DS18B20外形和内部结构82.2.3DS18B20的工作时序112.2.4DS18B20与单片机的典型接口设计122.2.5DS18B20的各个ROM命令13第3章系统硬件电路的设计153.1主控制电路和测温控制电路原理图153.2驱动电路模块原理图163.3显示模块原理图17第4章软件编程调试及性能分析184.1主程序流程图184.2主程序194.3温度子程序214.3.1DS18B20复位子程序224.3.2读DS18B20子程序234.3.3写DS18B20子程序254.3.4比较报警子程序264.3.5按键子程序274.4显示子程序274.5调试性能分析和注意事项294.5.1调试性能分析294.5.2DS18B20使用中的注意事项30结论31参考文献32致谢33附录34前言日常生活及工农业生产中经常要用到温度的检测及控制,在冶金、食品加工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等,都要求对温度进行严格控制。
在日常生活中,电烤箱、微波炉、电热水器、烘干箱等电器也需要进行温度检测与控制。
传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
而采用单片机对温度进行控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。
测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。
在测温电路中,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行AD转换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。
这种设计需要用到AD转换电路,因此感温电路的设计比较复杂。
进而想到采用智能温度传感器来设计数字温度计。
本数字温度计的设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89C52控制温度的读写和显示,用LED数码管显示。
测温范围为55125,最大分辨率可达0.0625。
而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统设计功能的要求,确定系统有5个模块组成:
主控制器、温度传感器DS18B20、报警电路、按键预置温度值电路及显示电路。
控制器使用AT89C52,温度传感器使用DS18B20,用8位共阴极LED数码管以动态扫描法实现温度显示。
系统程序主要包括主程序、温度控制子程序及显示子程序等等。
综上所述,本设计以智能集成温度传感器DS18B20为例,介绍基于DS18B20传感器的数字温度计的设计,该设计适用于人们的日常生活及工农业生产中用于温度的检测及控制。
设计任务及方案分析设计任务及要求设计一个以单片机为核心的温度测量系统,可实现的功能为:
(1)测量温度值精度为1。
(2)系统允许的误差范围为1以内。
(3)系统可由用户预设温度值,测温范围为55125。
(4)超出预置值时系统会自动报警,即发光二极管亮。
(5)系统具有数码显示功能,能实时显示设定温度值和测得的实际温度值。
设计总体方案及方案论证在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电偶和热点阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进智能温度传感器DS18B20作为检测元件,测温范围为55125,最大分辨率可达0.0625。
DS18B20可以直接读出被测量的温度值,而采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
按照系统设计功能的要求,确定系统由5个模块组成:
主控制器AT89C52,温度传感器DS18B20,报警电路,按键电路及驱动显示电路。
数字温度计总体电路框图如图1-1所示。
温度测量的方案与分析芯片选择本设计的测温系统采用芯片DS18B20,DS18B20是DALLAS公司的最新单线数字温度传感器,它的体积更小、适用电压更宽、更经济,DS18B20是世界上第一片支持“一线总线”接口的温度传感器,具有一线总线独特而且经济的特点。
采用智能温度传感器DS18B20作为检测元件,测温范围为55125,最大分辨率可达0.0625。
DS18B20可以直接读出被测量的温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
实现方法简介DS18B20采用外接电源方式工作,一线测温的一线与AT89C52的P3.7连接并加上上拉电阻使其工作,测出的数据存放在寄存器10H-12H中,将数据经过BCD码转换后送LED显示。
具体实现步骤见软件设计章节。
图1-1总体电路框图测温流程图图1-2测温流程图芯片功能简介AT89C52的功能简介AT89C52芯片简介AT89C52是美国ATMEL公司生产的低电平,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,32个可编程IO口线,3个16位定时计数器,低功耗空闲和掉电模式。
功能强大的AT89C52单片机适合于许多较为复杂控制应用场合。
引脚功能说明
(1)VCC:
电源电压
(2)GND:
地(3)P0口:
P0口是一组8位漏极开路型双向IO口,也即地址数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,在访问期间激活内部上拉电阻。
(4)P1口:
P1是一个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTE逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时计数器2的外部计数输入(P1.0T2)和输入(P1.1T2EX),参见表4-1。
Flash编程和程序校验期间,P1接收低8位地址。
表4-1P1.0和P1.1的第二功能引脚号功能特性P1.0T2(定时计数器2外部计数脉冲输入),时钟输出P1.1T2EX(定时计数2捕获重装载触发和方向控制)(5)P2口:
P2是一个带有内部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的内容。
(6)P3口:
P3口是一组带有内部上拉电阻的8位双向IO口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(ILL)。
P3口除了作为一般的IO口线外,更重要的用途是它的第二功能,如表4-2所示。
(7)RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
表4-2P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时计数0)P3.5T1(定时计数1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)(8)VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH)。
端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存端状态。
如端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VCC。
(9)XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
(10)XTAL2:
振荡器反相放大器的输出端。
(11)数据存储器:
AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128。
字节的RAM和特殊功能寄存器的地址是相同的,但在物理上它们是分开的。
当一条指令访问7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节。
RAM还是访问特殊功能寄存器。
如果指令是直接寻址方式则为访问特殊功能寄存器。
(12)中断:
AT89C52共有6个中断向量:
两个外中断(INT0和INT1),3个定时器中断(定时器0,1,2)和串行口中断。
(13)时钟振荡器:
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图4-1(a)图所示。
外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路,对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF士10pF,而如果使用陶瓷谐振器,建议选择40pF士l0pF。
用户也可以采用外部时钟。
采用外部时钟的电路如图4-1(b)图所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
(a)内部振荡电路(b)外部振荡电路图4-1振荡电路由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
DS18B20的功能简介芯片简介
(1)适应电压范围更宽,电压范围:
3.0V5.5V,在寄生电源方式下可由数据线供电。
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(4)测温范围55125,在-10+85时精度为0.5。
(5)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。
(6)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
(7)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(8)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
DS18B20外形和内部结构DS18B20内部结构如图4-2所示,主要由4部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的外形及管脚排列如图4-3和表4-3所示。
IOCVDD图4-2DS18B20的内部结构图4-3DS18B20的管脚排列表4-3DS18B20引脚定义:
序号名称引脚功能描述1GND地信号2DQ数据输入输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3VDD可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
(1)64位ROMROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。
64位ROM的循环冗余校验码(CRC=X8X5X41)。
ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625LSB形式表达,其中S为符号位。
DS18B20温度值格式表4-4如下所示。
这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如25.0625的数字输出为0191H,25.0625的数字输出为FF6FH。
表4-4DS18B20温度值格式表bit7bit6bit5bit4bit3bit2bit1bit0LSByte22222222bit15bit14bit13bit12bit11bit10bit9bit8MSByteSSSSS222
(2)高低温报警触发器TH和TLDS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
(3)配置寄存器该字节各位的意义如下表4-5所示。
表4-5:
配置寄存器结构TMR1R011111低五位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如下表4-6所示(DS18B20出厂时被设置为12位)。
(4)高速暂存器是一个9字节的存储器。
开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。
高速暂存器RAM结构图如下表4-7所示。
表4-6:
温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750msDS18B20的工作时序DS18B20的一线工作协议流程是:
初始化ROM操作指令存储器操作指令数据传输。
其工作时序包括初始化时序、写时序和读时序,如图4-4(a)(b)(c)所示。
表4-7:
DS18B20暂存寄存器分布寄存器内容字节地址温度值低位(LSByte)0温度值高位(MSByte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8DS18B20等待DS18B20Tx产生主机复位脉冲VCC480usTX960us主机Rxmin480us1-WireBusGND图4-4(a)初始化时序主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到IO引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。
写时间片:
将数据从高电平拉至低电平,产生写起始信号。
在15us之内将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,写0就发生。
在开始另一个写周期前必须有1us以上的高电平恢复期。
读时间片:
主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。
主机在读时间片下降沿之后15us内完成读位。
每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。
主机写“0”时隙主机写“1”时隙VCC60usTX120us1ustxcc1usDS18B20采样15usMINTYPMAXMINTYPMAX15us30us15us15us30us图4-4(b)写时序VCC主机读“0”时隙主机读“1”时隙1-WireBusGND主机采样1us15us15us30us主机采样15us图4-4(c)读时序DS18B20与单片机的典型接口设计图4-5以MCS51系列单片机为例,画出了DS18B20与微处理器的典型