1、编号20141035103本科生毕业设计基于单片机AT89C51数字温度计的设计DESIGNOFDIGITALTHERMOMETERBASEDONAT89C51SINGLECHIPMICROCOMPUTER2014年6月学生姓名专业电子信息科学与技术学号1035103指导教师分院电子分院长春理工大学光电信息学院毕业设计摘要随着科技的不断发展,现代社会对各种信息参数的精确度和准确度的要求都有了很大的增长,而如何准确和迅速的获得这些参数就需要受制于现代信息技术的发展水平。目前的智能温度传感器(亦称为数字温度传感器)是在20世纪90年代问世的,是微电子技术、计算机技术和自动测试技术(ATE)的结合。
2、它的特点是能输出温度数据和相关的温度控制量,适合各种微控制器(MCU)。社会的发展使得人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础之上从模拟到数字式,从集成化到智能化、网络化的发展,并且朝着多功能。高精度、总线标准化、高安全性和可靠性、开发网络传感器和虚拟传感器、研制单片测温系统等高科技的方向迅速发展。本文将介绍智能集成温度传感器DS18B20的结构特征和控制方法,并对以此传感器,89C51单片机为控制器构成的数字温度计测量装置的工作原理和程序设计做了详细的介绍。和传统的温度计相比它具有测量广泛,读数方便,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,
3、或者是科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司的DS18B20,用液晶显示器来实现温度显示。关键词18B20单片机LED长春理工大学光电信息学院毕业设计ABSTRACTWITHTHEDEVELOPMENTOFSCIENCEANDTECHNOLOGY,PRECISIONANDACCURACYOFMODERNSOCIETYONVARIOUSPARAMETERSOFINFORMATIONREQUIREMENTS,THEREHASBEENALOTOFGROWTH,ANDHOWACCURATEANDFASTACCESSTOTHESEPARAME
4、TERSWILLNEEDTOBESUBJECTTOTHELEVELOFDEVELOPMENTOFMODERNINFORMATIONTECHNOLOGYCURRENTSMARTTEMPERATURESENSORALSOREFERREDTOASDIGITALTEMPERATURESENSORISLAUNCHEDININTHE1990OFTHE20THCENTURY,ISMICROELECTRONICSTECHNOLOGY,COMPUTERTECHNOLOGYANDAUTOMATEDTESTINGTECHNOLOGIESATECOMBINATIONITFEATURESTHEOUTPUTTEMPERA
5、TUREDATAANDRELATEDTEMPERATURECONTROL,SUITABLEFORVARIOUSMICROCONTROLLERMCUSOCIETYTENDSTOMAKEPEOPLESREQUIREMENTSHAVEBECOMEMORESOPHISTICATEDABOUTSENSORS,TEMPERATURESENSORSARENOWBASEDONSINGLECHIPINDUSTRYFROMANALOGTODIGITAL,FROMINTEGRATIONTOTHEDEVELOPMENTOFINTELLIGENT,NETWORKED,ANDVERSATILEHIGHACCURACY,S
6、TANDARDIZATION,HIGHSECURITYANDRELIABILITY,TODEVELOPBUSNETWORKSSENSORSANDVIRTUALSENSORS,DEVELOPMENTOFSINGLECHIPMICROCOMPUTERTEMPERATUREMEASURINGSYSTEMANDTHERAPIDDEVELOPMENTOFHIGHTECHNOLOGYTHISARTICLEDESCRIBESTHEARCHITECTUREOFINTELLIGENTINTEGRATEDTEMPERATURESENSORDS18B20FEATUREANDCONTROLMETHOD,ANDWITH
7、THISSENSOR,89S51SINGLECHIPCONTROLLERWORKINGPRINCIPLEANDDESIGNOFADIGITALTHERMOMETERMEASUREMENTUNITISINTRODUCEDINDETAILANDITHASMEASUREDAWIDERANGETHANTRADITIONALTHERMOMETERS,READING,ACCURACYOFTEMPERATUREMEASUREMENT,THEOUTPUTTEMPERATUREWITHDIGITALDISPLAY,PLACEUSEDPRIMARILYFORACCURATETEMPERATUREMEASUREME
8、NTREQUIREMENTS,ORARESEARCHLABORATORYTHEDESIGNOFCONTROLLERUSINGATMELSAT89S51SINGLECHIP,DS18B20TEMPERATURESENSORUSINGTHEDALLASCOMPANY,REALIZESWITHTHELCDTEMPERATUREDISPLAYKEYWORDS18B20SINGLECHIPMICROCOMPUTERLED长春理工大学光电信息学院毕业设计I目录第1章前言1第2章数字温度计总体设计方案221数字温度计设计方案222总体设计框图2第3章数字温度计硬件设计331主控制器AT89C513311AT
9、89C51的特点及特性3312管脚功能说明3313片内振荡器5314芯片擦除632单片机主板电路733温度采集部分的设计7331温度传感器DS18B20734显示部分电路设计1234174LS164引脚功能及特性13342温度显示电路1335报警系统电路14第4章数字温度计的软件设计1641系统软件设计的流程图1642数字温度计部分程序清单18结论24致谢25参考文献26长春理工大学光电信息学院毕业设计1第1章前言随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下
10、报警温度,当温度不在设置范围内时,可以报警。现代信息技术的飞速发展和传统工业改造的逐步实现。能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,所以传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点。本设计是测温电路,首先要选用高性能的AT89C51单片机,保证在恶劣的工业环境下能正常运行。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计要求,很适合便携手持式产品的设计使用系统可用二节电池供电。测温传感器使
11、用二极管结电压变化的数值进而转化成温度的变化,将被测量温度变化的电压或电流采集过来,进行A/D转换后,就可用单片机进行数据的处理,在显示电路上就可将被测温度显示出来。这种设计电路简单,软件设计业比较简单。在单片机设计电路中大多都是使用传感器,这很容易做到,所以用一只温度传感器DS18B20,它可以很容易直接读取被测温度值,进行转换,这样可以满足设计条件【1】。数字式温度计的设计将给人们的生活带来很大的方便,为人们生活水平的提高做出了贡献。数字温度计在以后将应用于我们生产和生活的各个方面,数字式温度计的众多优点告诉我们数字温度计将在我们的未来生活中应用于各个领域,它将会是传统温度计的理想的替代产
12、品。长春理工大学光电信息学院毕业设计2第2章数字温度计总体设计方案21数字温度计设计方案方案一采用热敏电阻器件,利用其感温效应,再将随被测温度变化的电压或电流采集过来,进行A/D转换后,利用单片机进行数据的处理,然后在显示电路上,将被测温度显示出来。方案二利用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换就可以满足设计要求。分析上述两种方案可以看出方案一是使用热敏电阻之类的器件利用其感温效应,进行A/D转换后,利用单片机进行数据的处理,在显示电路上被测温度显示出来,这种设计需
13、要用到A/D转换电路,感温电路比较麻烦。方案二是利用温度传感器直接读取被测温度,读数方便,测温范围广,测温精确,适用范围宽而且电路简单易于实现【2】。综合方案一和方案二的优缺点,我们选择方案二。22总体设计框图温度计电路设计总体设计方框图如图21所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。图21总体设计方框图主控制器LED显示温度传感器单片机复位时钟振荡报警点按键调整长春理工大学光电信息学院毕业设计3第3章数字温度计硬件设计31主控制器AT89C51311AT89C51的特点及特性40个引脚,4KBYTESFLASH片内程序
14、存储器,128BYTES的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51在空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求【3】。主要功能特性兼容MCS51指令系统4K可反复擦写1000次)ISPFLASHROM32个双向I/O口4555V工作电压
15、2个16位可编程定时/计数器时钟频率033MHZ全双工UART串行中断口线128X8BIT内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT)电路软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针312管脚功能说明AT89C51管脚如图31所示长春理工大学光电信息学院毕业设计4图31AT89C51管脚图(1)VCC供电电压。(2)GND接地。(3)P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,
16、P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。(4)P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。(5)P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程
17、序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号【4】。(6)P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由长春理工大学光电信息学院毕业设计5于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示P30RXD(串行输入口)P31TXD(串
18、行输出口)P32/INT0(外部中断0)P33/INT1(外部中断1)P34T0(记时器0外部输入)P35T1(记时器1外部输入)P36/WR(外部数据存储器写选通)P37/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。(7)RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8)ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是
19、每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效【5】。(9)/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(10)/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部
20、程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。(11)XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。(12)XTAL2来自反向振荡器的输出【6】。313片内振荡器该反向放大器可以配置为片内振荡器,如图32所示。长春理工大学光电信息学院毕业设计6图32片内振荡器314芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10MS来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电
21、模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89C2051构成的温度计主要有三部分组成DS18B20温度传感器、单片机AT89C2051、由LED数码管构成的显示
22、模块。其系统原理框图如图。DS18B20作为单片机AT89C2051的外部信号源,把所采集到的温度转换为数字信号,通过I/O接口传给51单片机,51单片机启动ROM内的控制程序驱动LED数码管,通过I/O接口的数据线(单片机和数码管的接口)把数据线传送给数码管,将采集到的温度显示出来。DS18B20的特点它是采用单总线专用技术,既可以通过串行口西岸,又可以通过其他I/O口线和微机接口,不需要经过其他的转换电路,直接就可以输出被测温度值。测量温度范围是55125,分辨率为00625,它内含64位经过激光修正的只读存储器,适合各种单片机和系统机,用户可以分别设定温度的上下限,它内含寄生电源。它的长
23、春理工大学光电信息学院毕业设计7内部结构重要由部分组成位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。在硬件上,它和单片机的链接有两种方式。一种是VCC接外部电源,GND接地,I/O和单片机的I/O线相连;第二种是用寄生电源供电,此时UDDGND接地,I/O接地,I/O接单片机的I/O。不论是内部寄生电源还是外部寄生电源供电,I/O口线都要接5K欧左右的上拉电阻。把它的数据线与单片机的13管脚链接。CPU对它的访问流程先对初始化,再进行操作命令,最后才能对存储器操作和数据操作。它的每一步操作都要遵循严格的工作时序和通信协议。32单片机主板电路单片机AT89C51是数字温
24、度计的核心元件,单片机的主板电路如图33所示,包括单片机芯片、报警系统电路、晶振电路、上拉电阻以及与单片机相连的其他电路。图33单片机的主板电路33温度采集部分的设计331温度传感器DS18B20长春理工大学光电信息学院毕业设计8DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式【7】。TO92封装的DS18B20的引脚排列见图34,其引脚功能描述见表31。表31DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输
25、出引脚。开漏单总线接口引脚。当被用着在寄电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。图34DS18B20引脚排列DS18B20的性能特点如下独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3055V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR35封装或8脚SOIC封装【8】,其内部结构
26、框图如图35所示。长春理工大学光电信息学院毕业设计9图图35DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限【9】。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图36所示。头8个字节包含测得的温度信息,第8和第8字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第8个字节,为配置寄存器,它的内容用于
27、确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图36所示。低8位一直为,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为8,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率【10】。DS18B20最大的特点是单总线数据传送方式,DS18B20的数据I/O均由同一条线来完成。DS18B20的电源供电方式有两种外部供电方式和寄生电源方式。工作于寄生电源方式时,VDD和GND均接地,它在需要远程温度探测和空间受限的场合特别有用处。原理是当1WIRE总线的信号线DQ为高电平时,窃
28、取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。但是寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。因此,在条件允许的场合,尽量采用外供电方式。无论是内部寄生电源还是外部供电,I/O口线要接5K欧左右的上拉电阻,在这采用前者方式供电。采集的温度经过处理后,超过规定温度上限的时候,单片机将通过口向蜂鸣器发送高电平信号使其发送警报声;当采集到的温度经过处理后,低于设定温度下线时,单片机将通过口向蜂鸣器发送高电平信号使其发送警报声。要是由于环境温度变化太剧烈或加热,或
29、温度传感头出现故障,而在一定时间内,不能将温I/OC64位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VDD长春理工大学光电信息学院毕业设计10度控制到规定的温度限内,单片机也将会通过口向蜂鸣器发送高电平信号使其发送警报声。在实验中设置的下限温度是摄氏度,当温度达到摄氏度时,蜂鸣器就将发出警报声,实验中设置的上限温度为摄氏度,当温度达到所显示的摄氏度时,蜂鸣器就会开始警报。报警模块的器件选择在本设计中温度测量范围是0摄氏度到125摄氏度之间,因此只需要液晶就可以完成相关的显示功能,报警器可以用有源蜂鸣器配合三极管来代替。TMR11R0
30、1111图36DS18B20字节定义由表32可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表32DS18B20温度转换时间表R1R0分辨率(位)温度最大转向时间(MS)00993750110187510113751112750高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16温度LSB温度MSBTH用户字节1TL用户字节2配置寄存器保留保留保
31、留CRC长春理工大学光电信息学院毕业设计11位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以00625LSB形式表示【11】。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表33是一部分温度值对应的二进制温度数据。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B2
32、0同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的
33、一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值【12】。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。长春理工大学光电信息学院毕业设计12表33一部分温度对应值表温度/二进制表示十六进制表示12500
34、0001111101000007D0H8500000101010100000550H25062500000001100100000191H10125000000001010000100A2H0500000000000000100008H000000000000010000000H051111111111110000FFF8H101251111111101011110FF5EH2506251111111001101111FE6FH551111110010010000FC90H另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按
35、协议进行。操作协议为初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据【12】。332DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源;另一种是寄生电源供电方式,如图37所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。图37DS18B20与单片机的接口电路当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10US。采用寄生电源供电方式时VDD端
36、接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性【13】。34显示部分电路设计长春理工大学光电信息学院毕业设计1334174LS164引脚功能及特性74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,下面总结一下这个元件的基本知识如图38为74LS164引脚图,图39为74LS164内部功能图。图3874LS164引脚图3974LS164内部功能图串行输入带锁存时钟输入,串行输入带缓冲异步清除最高时钟频率可高达36MHZ功耗
37、10MW/BIT系列工作温度0C70C最高电压7V输入最高电压7V高电平04MA低电平8MA342温度显示电路温度显示电路(如图310)采用4位共阳LED数码管,从P3口RXD,TXD串口长春理工大学光电信息学院毕业设计14输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,该显示电路只使用单片机的3个端口P17,P30,P31,并配以4片串入并出移位寄存器74LS164(LED驱动)四只数码管采用74LS164右移寄存器驱动,显示比较清晰【14】。其工作过程如下1串行数据由P30发送,移位时钟由P31送出。2在移位时钟的作用下,串行口发送缓冲器的数据一位一位地移入74
38、LS164中。3四片74LS164串级扩展为4个8位并行输出口,分别连接到4个LED显示器的段选端作静态显示【15】。图310温度显示电路35报警系统电路在图311中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示。图中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位【16】。长
39、春理工大学光电信息学院毕业设计15图311报警系统电路长春理工大学光电信息学院毕业设计16第4章数字温度计的软件设计41系统软件设计的流程图系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1S进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图41所示。图41主程序流程图温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750MS,在本程序设计中采用1S显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图42
40、所示。初始化调用显示子程序1S到初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令NYNY长春理工大学光电信息学院毕业设计17发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图42温度转换流程图计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图43示。图43计算温度流程图显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位【17】。程序流程图如图44。开始温度零下温度值取补码置“”标志计算小数位温度BCD值计算整数位温度BCD值结束置“”标志NY长春理工大学光电信息学院毕业设计
41、18图44显示数据刷新流程图42数字温度计部分程序清单1初始化程序S1OKEQU5FHTEMPUTEREQU39HTEMPHEQU5EHTEMPLEQU5DHMS50EQU5CHSIGNEQU5BHS1BITP10S2BITP11S3BITP12S4BITP13ORG0000HLJMPMAINORG000BHLJMPTOITORG0030HMAINMOVSP,60HMOVTMOD,01HMOVTH0,3CHMOVTL0,0B0HSETBET0SETBTR0温度数据移入显示寄存器十位数0百位数0十位数显示符号百位数不显示百位数显示数据(不显示符号)结束NNYY长春理工大学光电信息学院毕业设计19
42、SETBEAMOVTEMPH,30MOVTEMPL,9MOVTEMPUTER,15MOVS1OK,00HMOV38H,0BHMOV37H,0CHMOV36H,0BHACALLDISPACALLT1S2主程序STARTJBS1,NET1ACALLT12MSJBS1,NET1JNBS1,INCSIGNMOVA,SIGNCJNEA,1,TIAOACALLTIAOTLTIAOCJNEA,2,NET1MOVSIGN,0ACALLTIAOTHNET1MOVA,S1OKCJNEA,1,STARTMOVA,TEMPUTERSUBBA,TEMPHJNBACC7,ALEMMOVA,TEMPUTERSUBBA,TE
43、MPLJBACC7,ALEMSETBP21ACALLWENDUACALLDISPMOVS1OK,00HAJMPSTARTALEMMOV36H,0CHMOV37H,0CHMOV38H,0CHCLRP21ACALLDISP长春理工大学光电信息学院毕业设计20ACALLT1SLCALLWENDULCALLDISPMOVS1OK,00HSJMPSTART3温度总子程序ACALLINIT_1820ACALLRE_CONFIGACALLGET_TEMPERACALLTEMPER_COVRET4DS18B20初始化程序INIT_1820SETBP20NOPCLRP20MOVR0,06BHMOVR1,03HT
44、SR1DJNZR0,TSR1延时MOVR0,6BHDJNZR1,TSR1SETBP20NOPNOPNOPMOVR0,25HTSR2JNBP20,TSR3DJNZR0,TSR2LJMPTSR4延时TSR3SETB20H1置标志位,表示DS1820存在LJMPTSR5TSR4CLR20H1清标志位,表示DS1820不存在LJMPTSR7TSR5MOVR0,06BH长春理工大学光电信息学院毕业设计21MOVR1,03HTSR6DJNZR0,TSR6延时MOVR0,6BHDJNZR1,TSR6TSR7SETBP20RET5读出转换后的温度值GET_TEMPERSETBP20定时入口LCALLINIT_
45、1820JB20H1,TSS2RET若DS18B20不存在则返回TSS2MOVA,0CCH跳过ROM匹配LCALLWRITE_1820MOVA,44H发出温度转换命令LCALLWRITE_1820LCALLINIT_1820MOVA,0CCH跳过ROM匹配LCALLWRITE_1820MOVA,0BEH发出读温度命令LCALLWRITE_1820LCALLREAD_18200MOV37H,A将读出的温度数据保存RET6写DS18B20的程序WRITE_1820MOVR2,8CLRCWR1CLRP20NOPNOPNOPNOPRRCAMOVP20,CMOVR3,35DJNZR3,SETBP20长春
46、理工大学光电信息学院毕业设计22NOPDJNZR2,WR1SETBP20RET读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_18200MOVR4,2将温度高位和低位DS18B20中读RE00MOVR2,8RE01CLRCSETBP20NOPNOPCLRP20NOPNOPNOPSETBP20NOPNOPMOVC,P20MOVR3,35RE20DJNZR3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET将从DS18B20中读出的温度数据进行转换TEMPER_COVMOVA,0F0HANLA,36H舍去温度低位中小数点SWAPA
47、MOV37H,AMOVA,36HNBACC3,TEMPER_COV1四舍五入去温度值INC37HTEMPER_COV1MOVA,35H长春理工大学光电信息学院毕业设计23ANLA,07HSWAPAADDA,37HMOV37H,A保存变换后的温度数据LCALLBIN_BCDRET将16进制的温度数据转换成压缩BCD码38H中放百位,37十位,36个位BIN_BCDMOV39H,37HMOVA,37HMOVB,100DIVABMOV38H,AMOV37H,BXCHA,BMOVB,10DIVABMOV37H,AMOV36H,BRETDISPSETBRS0MOVR0,36HMOVR7,3LOOPPMO
48、VA,R0MOVDPTR,TABMOVCA,ADPTRMOVSBUF,AJNBTI,CLRTINCR0DJNZR7,LOOPPCLRRS0RETTABDB11H,0D7H,32H,92H,0D4H,98H,18H,0D1H,10H,90H,0FFH,070H,0FEH长春理工大学光电信息学院毕业设计24结论随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。目前温度计的发展很
49、快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。目前的温度计中传感器是它的重要组成部分,它的精度灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。本文设计的数字温度计选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0100最大线性偏差小于01。该器件可直接向单片机传输数字信号,便于单片机处理及控制。传感器应用极其广泛,目前已经研制出多种新型传感器。但是,作为应用系统设计人员需要根据系统要求选用适宜的传感器,并与自己设计的系统连接起来,从而构成性能优良的监控系统。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。数字温度计具有结构简单、体积小、价格低廉、精确度高、反应速度快、数字化显示和不易损坏等特点,且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。长春理工大学光电信息学院毕业设计25致谢通过几个月的努力研究与制作
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。