数字温度计说明书_第1页
数字温度计说明书_第2页
数字温度计说明书_第3页
数字温度计说明书_第4页
数字温度计说明书_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、精选文档 单片机课程设计单片机课程设计 题 目: 数字温度计 院 别: 机电学院 专 业: 机械电子工程 班 级: 姓 名: 学 号: 指导老师: 二一三年十二月二十一日精选文档摘摘 要要本设计即用单片机对温度进行实时检测与把握,本文所介绍的数字温度计与传统的温度计相比,具有读数便利,测温范围广,测温精确,其输出温度接受数字显示,主要用于对测温比较精确的场所,或科研试验室使用,本次课程设计接受 51 单片机以及锁存器 74HC573N、四位共阴数码管、DS18B20 温度传感器、蜂鸣器、三极管等组成的自动过温报警器,该过温报警器测温精确,使用便利,显示清楚,最高精度可达到 0.0625 度,最

2、长温度转换时间不到 1 秒,应用范围广泛。用四位共阴数码管实现温度显示,能精确达到设计要求。本温度计属于多功能温度计,功能较强,可以设置上下限报警温度,且测量精确、误差小。当测量温度超过设定的温度上下限时,启动蜂鸣器和指示灯报警。关键词关键词过温报警;锁存器;单片机;温度传感器精选文档名目名目前言前言.1一本次课程设计实践的目的和意义一本次课程设计实践的目的和意义.2二设计任务和要求二设计任务和要求.22.1 设计题目设计题目.22.2 主要技术性能指标主要技术性能指标.22.3 功能及作用功能及作用.2三三. 系统总体方案及硬件设计系统总体方案及硬件设计.23.1 查阅相关资料后有以下两个方

3、案可供选择查阅相关资料后有以下两个方案可供选择.23.2 元件选购元件选购.33.3 系统总体设计系统总体设计.3四接口电路设计四接口电路设计.64.1 模块简介模块简介.64.2 主把握器主把握器.64.3 显示电路显示电路.74.4 温度传感器温度传感器.74.5 温度报警电路温度报警电路.9五五. 系统软件算法分析系统软件算法分析.105.1 主程序流程图主程序流程图.105.2 读出温度子程序读出温度子程序.115.3 温度转换命令子程序温度转换命令子程序.115.4 计算温度子程序计算温度子程序.125.5 显示数据刷新子程序显示数据刷新子程序.125.6 按键扫描处理子程序按键扫描

4、处理子程序.13六六. 电路仿真电路仿真.14七焊接好的电路实体图七焊接好的电路实体图.15八检查与调试八检查与调试.16九作品的使用九作品的使用.16十设计心得十设计心得.20参考文献参考文献.20附录附录.21精选文档前言前言温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格把握。随着科学技术的进展,要求温度测量的范围向深度和广度进展,以满足工业生产和科学技术的要求。基于 AT89C51 单片机提高了系统的可移植性、扩展性,利于现代测控、自动化、电气技术等专业实训要求。以单片机为核心设计的温度报警器

5、,具有平安牢靠、操作简洁便利、智能把握等优点。精选文档数字温度计数字温度计一本次课程设计实践的目的和意义一本次课程设计实践的目的和意义学习和把握单片机常用接口电路的应用和设计技术,充分生疏理论学问对应用技术的指导性作用,进一步加强理论学问与应用相结合的实践和熬炼。通过这次设计实践能够进一步加深对专业学问和理论学问学习的生疏和理解,使自己的设计水平和对所学的学问的应用力量以及分析问题解决问题的力量得到全面提高。二设计任务和要求二设计任务和要求2.12.1 设计题目设计题目:数字温度计2.22.2 主要技术性能指标主要技术性能指标(1) 数字温度计要求测温范围为-5070,精度误差在 0.1以内,

6、显示辨别率: 0.1 ,误差:1接受 LED 数码管直读显示。(2) 设置上下报警温度,当温度不在设置范围内时,可以报警显示(本产品报警上限温度为 70,报警下限温度为-50,低于报警下限温度显示“L” ,高于报警上限温度显示“H” ) 。(3) 可以间隔存储 1000 个数据,接受定时刷新数据,刷新频率可以调整。温度数据可以查询,且由 LED 显示要查询的数据。2.32.3 功能及作用功能及作用:(1)实时显示当前前环境温度数值(2)具有过温声光报警功能(3)可以依据实际状况设定温度显示的精度三三. 系统总体方案及硬件设计系统总体方案及硬件设计3.13.1 查阅相关资料后有以下两个方案可供选

7、择查阅相关资料后有以下两个方案可供选择方案一精选文档由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时简洁受温度的影响从而消灭较大的偏差。方案二考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是格外简洁想到的,所以可以接受一只温度传感器 DS18B20,此传感器,可以很简洁直接读取被测温度值,进行转换,电路简洁,精度

8、高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。从以上两种方案,很简洁看出,接受方案二,电路比较简洁,费用较低,牢靠性高,软件设计也比较简洁,故接受了方案二。3.23.2 元件选购元件选购主要元件如下表所示电子元件数量单价万用板18数码管(4 位共阴)14STC89C52RC1574HC573(锁存器)32蜂鸣器21自锁开关20.5DS18B20(温度传感器)17排式电阻10.5三极管 901350.5晶振 11.059221电阻 4.7K500.1551 下载器16数据线183.33.3 系统总体设计系统总体设计整个电路的工作原理是:在正常的供电状态下,首先利用单片机

9、从DS18B20(温度传感器)处理接收的相应数据,然后经其处理后并将相应的数据分别精选文档传送到相应的锁存器接收口,通过锁存器把握数码管实现实时显示。依据设定的温度上、下阀值,把握蜂鸣器做出相应的反应。如图 3.1图 3.1有了总体设计方案后,下面就是原理图的制作了。原理图如下图 3.2 及图3.3 所示。将数码管电路与主把握电路分开画,最终两者是用导线连接。数码管位选接 P2.0,段选接 P2.1 口。精选文档图 3.2 数码管电路图 3.3 单片机把握电路精选文档四接口电路设计四接口电路设计4.14.1 模块简介模块简介系统由单片机最小系统、显示电路、报警电路、温度传感器等组成,电路接受

10、USB供电。4.24.2 主把握器主把握器主把握器接受 STC89C52 单片机,STC89C52 是一种低功耗、高性能 CMOS8 位微把握器,具有 8K 在系统可编程 Flash 存储器。在单芯片上,拥有灵活的 8 位CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式把握应用系统供应高机敏、超有效的解决方案。 具有以下标准功能: 8k 字节 Flash,512 字节 RAM, 32 位 I/O 口线,看门狗定时器,内置 4KB EEPROM,MAX810 复位电路,2 个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口。另外 STC89X52

11、可降至 0Hz 静态规律操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断连续工作。掉电爱护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35MHz,6T/12T 可选。 图 4.1 STC89C52 单片机电路精选文档晶振接受 11.0592MHZ,电容接受 22pF 的电容值 图 4.2 晶振电路 4.34.3 显示电路显示电路显示电路接受 4 位共阴极 LED 数码管,P2.1 口作为段码输出并作为数码管的驱动。P2.0 口的低四位作为数码管的位选端。接受动态扫描的方式显

12、示。如图3.2 所示4.44.4 温度传感器温度传感器DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可依据实际要求通过简洁的编程实现位的数字值读数方式。DS18B20 的性能特点如下:1、独特的单线接口仅需要一个端口引脚进行通信;2、多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能3、无须外部器件;4、可通过数据线供电,电压范围为 3.05.5;5、零待机功耗;6、温度以或位数字;7、用户可定义报警设置;8、报警搜寻命令识别并标志超过程序限定温度(温度报警条件)的器件;9、负

13、电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20 可以接受两种方式供电,一种是接受电源供电方式,此时 DS18B20 的 1 脚接地,2 脚作为信号线,3 脚接电源。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 4.3所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用在寄生电源下,也可以向器件供应电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必需接地。其电路图 4.4示.。 精选文档 图4.3装形式 图4.4电

14、路图DS18B20 的测温原理如图 4.5 图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显转变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来打算,每次测量前,首先将-55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1

15、的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开头对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是 DS18B20 的测温原理。另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必需按协议进行。操作协议为:精选文档初始化

16、 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。预预置置低低温温度度系系数数振振荡荡器器高高温温度度系系数数振振荡荡器器斜斜率率增增加加器器计计数数器器 1比比较较预预置置= 0温温度度寄寄存存器器计计数数器器 2= 0Tx加加 1停停止止12图 4.5 DS18B20 测温原理图在正常测温状况下,DS1820 的测温辨别力为 0.5,可接受下述方法获得高辨别率的温度测量结果:首先用 DS1820 供应的读暂存器指令(BEH)读出以 0.5为辨别率的温度测量结果,然后切去测量结果中的最低有效位(LSB) ,得到所测实际温度的整数部分 Tz,然后再用 BEH 指令取计

17、数器 1 的计数剩余值 Cs 和每度计数值 CD。考虑到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 Ts 可用下式计算: CDCs-CD25. 0)()( TzTs 图 4.6 温度传感器与单片机的连接4.54.5 温度报警电路温度报警电路对于数字温度计的设计,除了温度的数字显示功能外还加入了报警系统,假如我们所设计的系统用来监控某一设备,当设备的温度超过我们所设定的温度值时,系统会产生报警。我们便能很好的对设备进行处理,就不会应温度的变化而造成精选文档不必要的损失。温度超过设定温度值时,实现声光报警,蜂鸣器鸣叫、发光二极管点亮。蜂鸣器由单片机 P2.3

18、 口把握,用三极管驱动。图 4.7 温度报警电路五五. 系统软件算法分析系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。5.15.1 主程序流程图主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度值,温度测量每 1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图 5.1 所示。图 5.1 主程序流程图精选文档5.25.2 读出温度子程序读出温度子程序读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC 校验,校验有错时不进行温度数据的改写。其程

19、序流程图如图 5.2 示5.35.3 温度转换命令子程序温度转换命令子程序温度转换命令子程序主要是发温度转换开头命令,当接受 12 位辨别率时转换时间约为 750ms,在本程序设计中接受 1s 显示程序延时法等待转换的完成。温度转换命令子程序流程图如图 5.3 所示 图 5.2 读文读流程图 图 5.3 温度转换流程图5.45.4 计算温度子程序计算温度子程序计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图 5.4 所示。5.55.5 显示数据刷新子程序显示数据刷新子程序显示数据刷新子程序主要是对分别后的温度显示数据进行刷新操作,当标志位位

20、为 1 时将符号显示位移入第一位。程序流程图如图 5.5。精选文档图 5.4 计算温度流程图 图 5.5 显示数据刷新流程图5.65.6 按键扫描处理子程序按键扫描处理子程序按键接受扫描查询方式,设置标志位,当标志位为 1 时,显示设置温度,否则显示当前温度。如下图 5.6 示。 图 5.6 按键扫描处理流程图精选文档六六. 电路仿真电路仿真通过仿真软件验证该原理图的可行性。接受 protues 软件对电路仿真,可以得到预期效果。仿真图如图 6.1 示。 图 6.1 电路仿真图 精选文档七焊接好的电路实体图七焊接好的电路实体图精选文档八检查与调试八检查与调试系统调试系统的调试以程序调试为主。硬

21、件调试比较简洁,首先检查电路焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等的编程及调试,由于 DS18B20 与单片机接受串行数据传送,因此,对DS18B20 进行读/写编程时必需严格地保证读/写时序;否则将无法读取测量结果。本程序接受 C 语言编写,用 Keil C51 编译器编程调试。软件调试到能显示温度值,并且在有温度变化时,显示温度能转变就基本完成。性能测试可用制作的温度机和已有的成品温度计同时进行测量比较。由于 DS18B20 的精度很高,所以误

22、差指标可以限制在 0.5以内。九作品的使用九作品的使用10.1 实物图如下精选文档 图 10.1 测试温度 精选文档10.2 用打火机模拟高温图 10.2 高温报警精选文档10.3 由于低温报警下限温度为-50,现实中较难达到,为了呈现低温报警功能,我们把低温报警下限温度改为 20,如下所示图 10.3 低温报警精选文档十设计心得十设计心得此次课程设计中,难点在于 DS18B20 的使用,即对它的时序把握、初始化以及字节读写方法,任何一个环节出错或是时序把握不到位的话就不能得到正确的数据。一旦学会了正确的使用方法,就能感觉到它带来的便利是热电偶不能比拟的,以后再次使用的话就能很快上手了。由于在

23、大一二我们学的都是一些理论学问,没能体会到亲自动手焊接东西实际操作过程是怎样的。在焊接过程当中我们深深的感觉到,电路图看似简洁的,实际上可能并非如此,没有亲自去做它,就不会懂理论与实践是有很大区分的。看一个元件简洁,但它在焊接过程中就是有很多要留意的地方,会遇到一些从来没想过的问题。软件设计中,把程序按功能分模块的话能提高编程效率,把问题一一解决,同时画流程图能挂念理清思路,使问题简洁化。定义变量时,尽量定义局部变量,在字符型变量能达到要求的状况下就不用定义成整形变量了,以节省内存空间。同时局部变量应避开与全局变量取同名,否则全局变量将被屏蔽或与局部变量相冲突而达不到设计的效果。另一方面,取变

24、量名时也要讲究技巧,应尽量使其见名知意,同样地,写程序时加注释确是格外必要的,否则隔一段时间后,想再改进或做扩展的话就比较困难了,由于即使是自己写的程序也变得难读难懂了。总的来说,从通过理论设计,到确定具体方案,再到编译程序,最终到调试、成型。整个过程都需要充分利用全部学问进行思考、借鉴。本次设计是针对相关学问进行的一次比较综合的检验,也是目前为止我们觉得受益匪浅是收获最大的一次课程设计。在做本次设计的过程中,我们感受最深的就是查阅大量的设计资料了。由于在查阅的过程中,不仅丰富了我们的一些课外学问,还巩固了课堂上所学的学问。与此同时,我们觉得为了让设计更加完善,查阅这方面的设计资料是格外必要的

25、。参考文献参考文献1、徐爱钧主编 单片机原理有用教程 电子工业出版社2、阎石主编 数字电子技术基本教程 清华高校出版社3、郭天祥主编 51 单片机 C 语言教程 电子工业出版社精选文档附录附录源程序如下:#include /52 系列单片机头文件#include #define uchar unsigned char#define uint unsigned intsbit led=P17; /把握发光二极管sbit buzzer=P23; /把握蜂鸣器sbit DQ = P10; /数据口 define interfacesbit dula = P21; /数码管段选sbit wela =

26、P20; /数码管位选uchar A1,A2,A3,A4; /定义uint temp; /定义整型的温度数据uchar num;/定义float tt; /定义浮点型的温度数据uchar a,b; /定义/不带小数点 09,AbCDEF(可以不写入)unsigned char code table = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d, 0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x76;/带小数点unsigned char code table1 = 0 xbf,0 x86,

27、0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef;/*精确延时函数*/void delay(unsigned char i) while(-i); /*此延时函数针对的是 12Mhz 的晶振delay(0):延时 518us 误差:518-2*256=6delay(1):延时 7us (原帖写5us是错的)delay(10):延时 25us 误差:25-20=5delay(20):延时 45us 误差:45-40=5delay(100):延时 205us 误差:205-200=5delay(200):延时 405us 误差:405-400=5*/*

28、DS18B20*/精选文档void Init_Ds18b20(void) /DS18B20 初始化 send reset and initialization commandDQ = 1; /DQ 复位,不要也可行。delay(1); /稍做延时DQ = 0; /单片机拉低总线delay(250); /精确延时,维持至少 480usDQ = 1; /释放总线,即拉高了总线delay(100); /此处延时有足够,确保能让 DS18B20 发出存在脉冲。uchar Read_One_Byte() /读取一个字节的数据 read a byte date /读数据时,数据以字节的最低有效位先从总线移

29、出uchar i = 0;uchar dat = 0;for(i=8;i0;i-) DQ = 0; /将总线拉低,要在 1us 之后释放总线 /单片机要在此下降沿后的 15us 内读数据才会有效。 _nop_(); /至少维持了 1us,表示读时序开头 dat = 1; /让从总线上读到的位数据,依次从高位移动到低位。 DQ = 1; /释放总线,此后 DS18B20 会把握总线,把数据传输到总线上 delay(1); /延时 7us,此处参照推举的读时序图,尽量把把握器采样时间放到读时序后的 15us 内的最终部分 if(DQ) /把握器进行采样 dat |= 0 x80; /若总线为 1,即 DQ 为 1,那就把 dat 的最高位置 1;若为 0,则不进行处理,保持为 0 delay(10); /此延时不能少,确保读时序的长度 60us。return (dat);void Write_One_Byte(uchar dat)uchar i = 0;for(i=8;i0;i-

温馨提示

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

最新文档

评论

0/150

提交评论