数字温度计实验报告(共19页).doc
《数字温度计实验报告(共19页).doc》由会员分享,可在线阅读,更多相关《数字温度计实验报告(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数字温度计一 设计任务书设计一个可测量一定温度范围的数字温度计,并显示出当前温度。二 设计要求1. 基本要求(1) 可测量温度范围:000.0102.0(2) 温度分辨率:0.5(3) 测量相对误差:2%(4) 用数码管实时显示被测温度2. 提高要求(1) 实现多个温度点的实时测量(2) 实现温度的分档测量(3) 实现零下温度测量并显示3. 发挥部分(1) 实现摄氏、华氏、开氏的转换并显示(2) 温度过高报警三 方案讨论及元件选择 1.方案概述温度传感器DS18B20是单线通信,其输出值为数字信号,将其输出的温度数据送给单片机AT89C51处理,转换为温度动态显示。
2、2.分步讨论 (1)温度传感器本方案采用DS18B20温度传感器,其特点为:1)适应电压范围更宽,电压范围:3.05.5V,寄生电源方式下可由数据线供。2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。5)温范围55125,在-10+85时精度为0.5。6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0
3、.0625,可实现高精度测温。7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。其管脚图为: DS18B20的引脚功能:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地 (2)动态显示通过单片机与七段显示译码器HCF4511BE结合使用实现HCF4511BE的简介如下:HCF4511BE是一个用于
4、驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。HCF4511BE 是一片 CMOS BCD锁存/7 段译码/驱动器,引脚排列如下图所示。其中a b c d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 HCF4511BE有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,
5、显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是 7 段输出,可驱动共阴LED数码管。另外,HCF4511BE显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观HCF4511BE 引 脚 图 : 其功能介绍如下: BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。 LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。 LE:锁定控制端,当LE=0时,允许译码输出。 L
6、E=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。 A1、A2、A3、A4、为8421BCD码输入端。 a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效 HCF4511BE具有锁存功能,译码器的锁存电路由传输门和反相器组成,传输门的导通或截止由控制端LE的电平状态。 当LE为“0”电平导通,TG2截止;当LE为“1”电平时,TG1截止,TG2导通,此时有锁存作用。 (3)单片机I/O口资源22H为显示方式存储区,23H为分辨率存储区,38H为DS18B20的标志位存储区30H,31H摄氏缓冲区,32H,33H为华氏缓冲区,34H,35H为开氏缓冲区60H-68H存放
7、从DS18B20读入的9个字节数据36H,37H,40H,41H,42H为中间数据暂存缓冲区段选p1.0-p1.3,位选p1.4-p1.7,摄氏、华氏、开氏转换INT0,DS18B20数据脚p3.7摄氏、华氏、开氏表示分别为p2.0、p2.1、p2.2,零下温度显示表示p2.3,报警p2.4 P0.7,P0.6为通道显示四 设计原理 1.硬件部分此次实验主要使用到的芯片有传感器DS18B20、单片机AT89C51、七段译码器CD4511、以及LED数码管。由于传感器DS18B20的输出即为数字信号,因此省去了很多工作,如电流电压转换、AD转换等。此次电路的基本原理为:传感器读入温度信息,发送给
8、单片机处理,单片机处理后将信号发送给译码器进行译码后送给LED即显示出当前温度;温度过高时蜂鸣器实行报警。各部分的连接关系见总图2. 软件部分 软件部分主要包括初始化程序,初始化DS18B20程序,读DS18B20程序,数据转摄氏温度BCD码程序,摄氏温度T转华氏温度F程序,摄氏温度T转开氏温度K程序,零下温度转换程序,报警程序,显示程序,中断程序,延时程序等,具体程序见附录。其中下列程序的编程方法做以下说明: (1)数据转摄氏温度BCD码程序:由于要实现分辨率可调,所以编程时小数位的值是根据分辨率的值来对从DS18B20读入的四位小数位进行取舍,百位、十位和个位的数则由二进制数除以一百、一十
9、和余数求得,这样即实现把从DS18B20读入的温度装换成代显示的摄氏温度BCD码。 (2)摄氏温度T转华氏温度F程序:华氏温度值F与摄氏温度T的转换关系为: 8位单片机要直接实现9除以5很困难,我们采用的方法是先将摄氏温度T乘以8(3次调用BCD_T)再除以10(右移4位),然后将所得的值加原值T,这样就实现了乘以9/5,再加32就完成了T与F的转换。 (3)摄氏温度T转开氏温度K程序:T与K的转换关系为:K=T+273.1,加法运算很容易实现。 (4)零下温度转换程序:单片机判断从DS18B20读入的数据的符号位为1时,执行零下温度转换程序,因为零下温度时,要对数据位的值求反加1求补码。 (
10、5)报警程序:对所得的温度进行判断,当温度超过50C时,即驱动蜂鸣器(P2.4口)。 (6)中断程序:INT1接分辨率显示方式选择按键,中断一次,RAM中分辨率显示方式存储区23H的值加1,为2时清零;INT0接摄氏、华氏、开氏显示方式设定按键,中断一次,RAM中显示方式存储区22H的值加1,为2时清零,00H表示显示摄氏,01H表示显示华氏,02H表示显示开氏。 五 调试 根据以上资料以及原理设计完硬件,编写好程序后,在不存在虚焊和连线错误的情况下,要完好的得出结果,还需经过长时间的调试。在此次调试中我们发现了如下问题:1. 软件调试时,要用F7进行跟踪调试,并且对照各个寄存器和数据缓冲 区
11、里面的值的变化来判断程序是否正确,是否实现功能,单步调试成功 之后,再全速执行,看看结果是否正确,如果全速执行正确的话就开始 硬件调试,不正确又要单步调试。所以开始单步调试时,一定要仔细, 以防“返工”。2. DS18B20读取温度时,延时太长导致显示时“闪烁”,所以要适当减小延 时,使数码管显示时既不闪烁也不跳变得过快而影响读数。3. 中断程序要合理延时以防抖动。4. 编写程序时,要考虑全面,以防止改变显示方式、改变分辨率和切换通道时对数据产生影响。5. 由于单片机独立工作时,位置高时提供电压电流不够驱动,所以在每个 独立位上可以独立接一个电阻然后接正电源,这样起到一个“辅助”的 作用,例如
12、数码管和发光二极管都可以这样来实现正常显示,而不出现 微亮或模糊不清的情况。六优缺点总结上述设计方案完全能实现基本要求、提高要求和自己的发挥部分。纵观全设计,我们的总结如下: 优点:1.完成了全部基本要求和提高要求以及发挥部分;2.本方案最大的亮点是实现零下温度的检测和显示;3.实现摄氏、华氏、开氏的转换和显示;4.实现过高温度报警;5.实现不同分辨率显示; 当然,我们的设计中也存在不少问题,例如,由于单片机独立工作时,不能提供足够大的电压电流,导致报警用蜂鸣器和显示用发光二极管的声音和亮度不够。七设计心得体会通过这三周的软、硬件设计,不仅加深了我们对理论知识的理解,培养了我们的实践动手能力,
13、还锻炼了我们遇到问题解决问题的能力。从开始接到任务时的无从下手,到小组成员各司其职,搜集资料,学习新知识,相互讨论,分析交流,解决好问题的这个过程本身就是对我们的锻炼。此次设计课不同于一般理论课的地方就在于要求我们的并非只是单纯的懂得理论知识,更重要的是小组成员间的团结协作精神以及将理论知识用于实践的能力,由于在实际中,存在各种各样的因素,即使我们有着正确的原理图、软件程序等也不一定能得出正确的结果,正如调试时产生的问题一样,这就需要我们有耐心去分析各种可能存在因素以达到解决问题的最终目的,当然这其中肯定少不了老师的指导和帮助 ,在此,我们小组三人对刘海涛老师的帮助给以最衷心的感谢。通过这次课
14、程设计我们学到了很多东西,培养了我们的自学能力,接受新事物的心态,以及遇到问题时戒骄戒躁的良好心态和虚心向同学、老师请教自己不会的问题,更重要的是小组成员间的团结协作,相互鼓励,做好分配给自己的任务,用心做每一件事而非应付过关的消极态度。总之,此次设计课使我们受益匪浅。八附录附录一:程序清单;说明:*;22H为显示方式存储区,23H为分辨率存储区,38H为DS18B20的标志位存储区;30H,31H摄氏缓冲区,32H,33H为华氏缓冲区,34H,35H为开氏缓冲区;60H-68H存放从DS18B20读入的9个字节数据;36H,37H,40H,41H,42H为中间数据暂存缓冲区;段选p1.0-p
15、1.3,位选p1.4-p1.7,摄氏、华氏、开氏转换INT0,DS18B20数据脚p3.7;P0.5为0.1分辨率,P0.6为0.2分辨率,P0.7为0.5分辨率;摄氏、华氏、开氏表示分别为p2.0、p2.1、p2.2,零下温度显示表示p2.3,报警p2.4;P0.7,P0.6为通道显示;*ORG 0000HLJMP MAINORG 0003HLJMP INT0ORG 0013HLJMP INT1;主程序 *ORG 0030HMAIN: LCALL INIT ;调用初始化程序LOP: LCALL INIT_18B20 ;调用复位DS18B20子程序 JNB 38H,LOP_2 LCALL GE
16、T_TEMPER ;调用读温度子程序 LCALL CONV ;调用采样数据转换BCD码子程序 LCALL WARNING ;调用温度超过量程报警子程序 CLR P2.7 SETB P2.6 LCALL DISPLAY ;调用显示子程序LOP_2:LCALL INIT_18B20_2 JNB 38H,LOPP LCALL GET_TEMPER_2 LCALL CONV LCALL WARNING SETB P2.7 CLR P2.6 LCALL DISPLAYLOPP: AJMP LOP;初始化程序*INIT: SETB EA SETB EX0 SETB IT0 SETB EX1 SETB IT
17、1 MOV 22H,#00H MOV 23H,#00H MOV P1,#00H CLR P2.0 CLR P2.1 CLR P2.2 CLR P2.3 CLR P2.4 CLR P0.5 CLR P0.6 CLR P0.7 RET;复位DS18B20程序*INIT_18B20: SETB P3.7 NOP CLR P3.7 ;主机发出延时540ms的复位低脉冲 MOV R0,#0CH LCALL DELAY3 SETB P3.7 ;然后拉高数据线 NOP NOP MOV R0,#36TSR2: JNB P3.7,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 实验 报告 19
限制150内