基于温度传感器DS18B20的数字温度计毕业论文_第1页
基于温度传感器DS18B20的数字温度计毕业论文_第2页
基于温度传感器DS18B20的数字温度计毕业论文_第3页
基于温度传感器DS18B20的数字温度计毕业论文_第4页
基于温度传感器DS18B20的数字温度计毕业论文_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要电力计量管理是供电企业营销管理的核心,计量是杆称,计量对企业效益起着重要作用,计量与创建和谐社会息息相关,现代电能计量管理体系的应用,加强了对辖区内计量装置器具的全过程监督力度,保证了计量装置的准确可靠,减轻了计量人员的劳动强度,提高了电能计量管理现代化水平。关键词配电网;质量管理体系;电能计量装置mis系统;信息化管理; abstractthis design is focused on measuring the temperature accurately by the digital technology which is widely used in more and more

2、 field. based on the at89c51 microcontroller, the ds18b20 temperature sensor and the led display module, a digital thermometer is designed. it can measure the temperature accurately in real time. the design is simple, has a strong practical value.key words: single-chip digital temperature sensor tem

3、perature detection at89c51 ds18b20 目 录 前 言11 数字温度计总体方案设计21.1 数字温度计的设计要求 21.2 数字温度计设计方案论证21.2.1 方案一21.2.2 方案二42 数字温度计系统器件选择62.1 单片机的选择62.1.1 at89c51简介62.1.2 at89c51的主要特性72.1.3 at89c51的管脚说明72.1.4 at89c51的擦除102.2 温度传感器的选择122.2.1 温度传感器ds18b20简介122.2.2 温度传感器ds18b20的性能特点142.2.3 温度传感器ds18b20的工作原理152.2.4 温度

4、传感器ds18b20使用中的注意事项182.3显示器的选择183 硬件电路设计203.1 数字温度计原理电路203.2 传感器数据采集电路213.3 显示电路214 软件设计224.1 系统软件算法分析224.2 主程序224.3 读出温度子程序234.4 温度转换命令子程序234.5 计算温度子程序234.6 proteus仿真结果24总 结25致 谢25参考文献26附录:27程序27前 言随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,在单片机的应用中,一个很重要的应用就是对温度进行检测。温度是一种最基本的环境参数,人民的生活与环境的温

5、度息息相关,在工业生产过程中要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段,传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。传统的温度检测以热敏电阻为温度敏感元件,热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ate)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(mcu)。社会的发展使人们

6、对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,与传统的温度计相比,其具有具有读数方便,测温精确,测温范围广,数字显示,抗干扰能力强,适用范围宽等特点。本设计的数字温度计以单片机at89c51为核心,主要由软件设计和硬件设计组成。软件设计主要包括程序流程、主程序、读取温度子程序、数据转换子程序、显示数据子程序等。硬件设计主要包括单片机主板电路设计、传感器数据采集电路,温度显示电路、proteus仿真电路

7、等。1 数字温度计总体方案设计1.1 数字温度计的设计要求(1)测温范围-50110(2)精度误差小于0.5(3)led数码直读显示1.2 数字温度计设计方案论证1.2.1 方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成(热电偶的构成如图 1.1),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有a/d通道的单片机,在将随被测温度变化的电压或电流采集过来,进行a/d转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显

8、示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受外界的影响,并且这种设计需要用到a/d 转换电路,感温电路复杂。图 1.1热电偶电路图系统主要包括对a/d0809 的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。故现场输入硬件有手动复位键、a/d 转换芯片,处理芯片为51单片机芯片,执行机构有4位数码管等。系统框图如图 1.2所示:测温电路adc0809复位电路 单 片 机led 数 码 显 示时钟电路按键防抖动图 1.2热电偶温差电路测温系统方框图1.2.2 方案二采

9、用数字温度芯片ds18b20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0-100摄氏度时,最大线形偏差小于1摄氏度。ds18b20的最大特点之一采用了单总线的数据传输,由数字温度计ds18b20和微控制器at89c51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。另外at89c51在工业控制上也有着广泛的

10、应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用at89c51芯片控制温度传感器ds18b20进行实时温度检测并显示,能够实现快速测量环境温度。该系统扩展性非常强,它可以在设计中加入时钟芯片ds1302以获取时间数据,在数据处理同时显示时间,并可以利用at24c16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过max232芯片与计算机的rs232接口进行串口通信,方便的采集和整理时间温度数据,系统框图如图1.3所示。复位电路时钟电路温度传感器单 片机led 数 码 显 示图 1.3 ds18b20温度测温系统方框图从以上两种方

11、案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2 数字温度计系统器件选择2.1 单片机的选择2.1.1 at89c51简介对于单片机的选择,考虑到实用性、可操作性以及购买方便等问题的考虑,选择由美国atmel公司生产的at89c51单片机,at89c51是一种带4k字节闪存可编程可擦只读存储器(fperomflash programmable and erasable read only memory)的低电压,高性能cmos8位微处理器。可灵活应用于各种控制领域,对于简单的测温

12、系统已经足够。单片机at89c51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统可用二节电池供电,外形及引脚排列如图2.1所示。图2.1at89c51的外形及引脚排列2.1.2 at89c51的主要特性(1)与mcs-51 兼容(2)4k字节可编程闪烁存储器(3)寿命:1000写/擦循环(4)数据保留时间:10年(5)全静态工作:0hz-24mhz(6)三级程序存储器锁定(7)1288位内部ram(8)32可编程i/o线(9)两个16位定时器/计数器(10)5个中断源(11)可编程串行通道(12)低功耗的闲置和掉电模式(13)

13、片内振荡器和时钟电路2.1.3 at89c51的管脚说明vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flas

14、h编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输

15、出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口,如下所示: p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断0) p3.3 /int1(外部中断1) p3.4 t0(记时器0外部输入) p3.5 t1(记时器1外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保

16、持rst脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期

17、间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 振荡器特性: xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如

18、采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度2.1.4 at89c51的擦除整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振

19、荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。串口通讯单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器,sbuf 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。sbuf 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址99h。cpu在读sbuf时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作s

20、buf寄存器的方法则很简单,只要把这个99h 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr sbuf = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。 scon串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。scon就是51芯片的串行口控制寄存器。它的寻址地址是98h,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用scon寄存器。它的各个位的具体

21、定义如下: sm0 sm1 sm2 ren tb8 rb8 ti ri sm0、sm1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 sm0、sm1模式功能波特率 0 0 0 同步移位寄存器fosc/12 0 1 1 8位uart可变 1 0 2 9位uartfosc/32或fosc/64 1 1 3 9位uart可变 sm2在模式2、模式3中为多处理机通信使能位。在模式0中要求该位为0。 rem为允许接收位,rem置1时串口允许接收,置0时禁止接收。rem是由软件置位或清零。如果在一个电路中接收和发送引脚p3.0,p3.1 都和上位机相连,在软件上有串口中断

22、处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入rem=0来禁止接收,在子程序结束处加入rem=1再次打开串口接收。大家也可以用上面的实际源码加入rem=0来进行实验。 tb8发送数据位8,在模式2和3是要发送的第9位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。 rb8接收数据位8,在模式2和3是已接收数据的第9位。该位可能是奇偶位,地址/数据标识位。在模式0中,rb8为保留位没有被使用。在模式1中,当sm2=0,rb8是已接收数据的停止位。 ti发送中断标识位。

23、在模式0,发送完第8位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。ti置位后,申请中断,cpu响应中断后,发送下一帧数据。在任何模式下,ti都必须由软件来清除,也就是说在数据写入到sbuf后,硬件发送数据,中断响应(如中断打开),这时ti=1,表明发送已完成,ti不会由硬件清除,所以这时必须用软件对其清零。 ri接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。ri=1,申请中断,要求cpu取走数据。但在模式1中,sm2=1时,当未收到有效的停止位,则不会对ri置位。同样ri也必须要靠软件清除。常用的串口模式1是传输1

24、0 个位的,1位起始位为0,8位数据位,低位在先,1位停止位为1。它的波特率是可变的,其速率是取决于定时器1或定时器2的定时值(溢出速率)。2.2 温度传感器的选择由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高,处理电路复杂、可靠性相对较差,ds18b20是一线制数字温度传感器,它可将温度信号直接转换成串行数字信号送给微处理器,电路简单,成本低, 因此这里采用dallas公司的数字温度传感器ds18b20作为测温元件。 2.2.1 温度传感器ds18b20简介dallas最新单线数字温度传感器ds18b20是一种新

25、型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。dallas半导体公司的数字化温度传感器ds18b20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125摄氏度,可编程为9位12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在eeprom中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用

26、它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 外形图如图2.2所示。 图2.2ds18b20外形图ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器,内部结构如2.3所示。ds18b20的管脚排列、各种封装形式如图2.4所示,dq为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;gnd为地信号;vdd为可选择的vdd引脚,当工作于寄生电源时,此引脚必须接地,其电路图2.5所示。图2.3 ds18b20内部结构图图2.4 外部封装形式 图2.5 传感器电

27、路图2.2.2 温度传感器ds18b20的性能特点(1)独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯(2)ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温(3)ds18b20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内(4)适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电(5)温范围55125,在-10+85时精度为0.5(6)零待机功耗(7)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0

28、625,可实现高精度测温(8)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快(9)测量结果直接输出数字温度信号,以“一线总线”串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力(10)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作2.2.3 温度传感器ds18b20的工作原理ds18b20测温原理如图2.6所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存

29、器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2.6中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。低温度系数晶振高温度系数晶振预 置斜 率 累 加 器比 较计 数 器 1温 度 寄 存 器预 置计 数 器 2= 0= 0停 止加 1lsb置位/清除图2.5 ds18b20测温原理图由表1可见,ds

30、18b20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此在实际应用中要将分辨率和转换时间权衡考虑。高速暂存ram的第6、7、8字节保留未用,表现为全逻辑1,第9字节读出前面所有8字节的crc码,可用来检验数据,从而保证通信数据的正确性。当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先高位在后,数据格式以0.0625lsb形式表示。当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测

31、得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。表1 bs18b20温度转换时间表r1r0分辨率温度最大转换时/mm009位93.750110位187.751011位375.001112位750.00ds18b20完成温度转换后,就把测得的温度值与ram中的th、tl字节内容作比较。若tth或ttl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机rom的前56位来计算crc值,并和存入ds18b20的crc

32、值作比较,以判断主机收到的rom数据是否正确。表3一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110

33、 1111fe6fh-551111 1100 1001 0000fc90h2.2.4 温度传感器ds18b20使用中的注意事项ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:(1)ds18b20从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。(2)在实际使用中发现,应使电源电压保持在5v左右,若电源电压过低,会使所测得的温度精度降低。(3)较小的硬件开销需要相对复杂的软件进行补偿,由于ds1820与微处理器间采用串行数据传送,因此,在对ds1820进行读写编

34、程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds1820操作部分最好采用汇编语言实现。(4)在ds18b20的有关资料中均未提及单总线上所挂ds18b20数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此,当单总线上所挂ds18b20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(5)在ds18b20测温程序设计中,向ds18b20发出温度转换命令后,程序总要等待ds18b20的返回信号,一旦某个ds18b20接触不好或断线,当程序读该ds18b20时,将没有返回信号,

35、程序进入死循环,这一点在进行ds18b20硬件连接和软件设计时也要给予一定的重视。2.3 显示器的选择本设计采用led数码管,也叫led数码显示器,由于它具有很高的性能价格比、显示清晰、亮度高、使用方便、电路简单、寿命长等诸多优点,长期以来一直在各类电子产品和工程控制中得到非常广泛的应用。在单片机控制系统中,因为单片机的硬件简单、灵活等特点,非常适合使用led数码管作为其输出设备,这样既满足了控制系统硬件简单,又能如实地显示被控系统的温度、压力、流量、高度等一些单片机的处理结果。3硬件电路设计3.1 数字温度计原理电路数字温度计电路设计原理图如图3.1所示,控制器使用单片机at89c51,温度

36、计传感器使用ds18b20,用液晶实现温度显示。本设计大体分三个工作过程。首先由ds18b20温度传感器芯片测量当前的温度,并将结果送入单片机。然后通过at89c51单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。最后液晶显示模块芯片将送来的值显示于显示屏上。由图可以看到,本电路主要由dsl8b20温度传感器芯片、液晶显示模块芯片和at89c51单片机芯片组成。其中dsi8b20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。图3.1数字温度计电路设计原理图3.2 传感器数据采集电路温度传感器dsl8b20采用寄生电源

37、供电方式,为保证在有效的时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。其接口电路如图3.2所示。at89c51vccd n gq dd d vds18b20vcc图3.2 ds18b20与单片机的连接3.3 显示电路显示电路是使用的串口显示,这种显示最大的优点就是使用口资源较少,只用p3口的rxd和txd串口的发送和接收,四只数码管采用74ls164右移寄存器驱动,显示较清晰。4 软件设计4.1 系统软件算法分析 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。4.2 主程序主程序的主要功能是负责温度的实时显示、读出并处理

38、ds18b20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。y发ds18b20复位命令发跳过rom命令发读取温度命令读取操作,crc校验9字节完?crc校验正?确?移入温度暂存器结束nny初始化调用显示子程序1s到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令nyny图4.1 主程序流程图图4.2读温度流程图 4.3 读出温度子程序读出温度子程序的主要功能是读出ram中的9字节,在读出时需进行crc校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2示。发ds18b20复位命令发跳过rom命令发温度转换开始命令

39、 结束图4.3 温度转换流程图4.4 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图4.3所示。4.5 计算温度子程序计算温度子程序将ram中读取值进行bcd码的转换运算,并进行温度值正负的判定,其程序流程图如图4.4所示。 开始温度零下?温度值取补码置“b”标志计算小数位温度bcd值 计算整数位温度bcd值 结束置“a”标志ny图4.4计算温度流程图 4.6 proteus仿真结果总 结本设计是一种基于温度传感器ds18b20的数字温度计,并以单片

40、机at89c51为核心,使用4位led模块显示,该设计结构简单性能稳定,可对环境温度进行实时准确的测量,具有很强的实用价值。本设计扩展性能很强大,由于ds18b20支持单总线协议,我们可以将多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用较少的微处理器的端口就可以实现多点测温监控系统。致 谢首先,感谢我的母校,感谢各位老师在大学五年里对我的辛勤培养,感谢我亲爱的同学们和朋友们,在大学五年里让我经历了很多,同时也让我学会了很多,在此致以我深深的谢意。其次,要特别感谢在这次毕业设计中给我予很大帮助的张展老师,本设计从选题到实物的制作过程中张老师一直

41、给予我耐心的指导和细心的关怀,在此我瑾向张老师致以诚挚的谢意。本设计是对数字温度计的基本设计,在此基础上还可以加以研发处理。但是,由于笔者水平有限,在设计上难免存在缺陷、不当之处,在此恳请各位老师批评指正。最后,感谢大学五年生活让我拥有了一段美好的回忆,同时也在我的人生旅途中留下了一段深深的脚印,感谢我的大学。 参考文献1 郭庭吉.8051单片机实践与应用.清华大学出版社,2002.32 楼然苗、李光飞.51系列单片机设计实例.北京航空航天大学出版社,2003.53 诸昌铃.led显示屏系统原理及工程技术.电子科技大学出版社,2000.94 王为青、邱文勋.51单片机应用开发案例精选.人民邮电出版社,2007.75 王守中.单片机的开发入门与典型实例.人民邮电出版社,2007.8 6 张国秀.单片机c言程序设计教程与实训.北京大学出版社,2008.67 王守中.51单片机开发入门与典型实例.人民邮电出版社,2007.88 李玉梅.基于mcs51系列单片机原理的应用设计.国防工业出版社,2006.5 附录:程序#include /头文件/#def

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论