单片机课程设计题目:数字温度计院别:机电学院专业:机械电子工程班级:姓名:学号:指导教师:二〇一三年十二月二十一日摘要本设计即用单片机对温度进行实时检测与控制,本文所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,本次课程设计采用51单片机以及锁存器74HC573N、四位共阴数码管、DS18B20温度传感器、蜂鸣器、三极管等组成的自动过温报警器,该过温报警器测温准确,使用方便,显示清晰,最高精度可达到0.0625度,最长温度转换时间不到1秒,应用范围广泛。
用四位共阴数码管实现温度显示,能准确达到设计要求。
本温度计属于多功能温度计,功能较强,可以设置上下限报警温度,且测量准确、误差小。
当测量温度超过设定的温度上下限时,启动蜂鸣器和指示灯报警。
关键词过温报警;锁存器;单片机;温度传感器目录前言 (1)一.本次课程设计实践的目的和意义 (2)二.设计任务和要求 (2)2.1 设计题目 (2)2.2 主要技术性能指标 (2)2.3 功能及作用 (2)三. 系统总体方案及硬件设计 (2)3.1查阅相关资料后有以下两个方案可供选择 (2)3.2元件采购 (3)3.3系统总体设计 (3)四.接口电路设计 (6)4.1模块简介 (6)4.2 主控制器 (6)4.3 显示电路 (7)4.4温度传感器 (7)4.5温度报警电路 (9)五. 系统软件算法分析 (10)5.1主程序流程图 (10)5.2读出温度子程序 (11)5.3温度转换命令子程序 (11)5.4 计算温度子程序 (12)5.5 显示数据刷新子程序 (12)5.6按键扫描处理子程序 (13)六. 电路仿真 (14)七.焊接好的电路实体图 (15)八.检查与调试 (16)九.作品的使用 (16)十.设计心得 (20)参考文献 (20)附录 (21)前言温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要求严格控制。
随着科学技术的发展,要求温度测量的范围向深度和广度发展,以满足工业生产和科学技术的要求。
基于AT89C51单片机提高了系统的可移植性、扩展性,利于现代测控、自动化、电气技术等专业实训要求。
以单片机为核心设计的温度报警器,具有安全可靠、操作简单方便、智能控制等优点。
数字温度计一.本次课程设计实践的目的和意义学习和掌握单片机常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二.设计任务和要求2.1 设计题目:数字温度计2.2 主要技术性能指标(1) 数字温度计要求测温范围为-50~70℃,精度误差在0.1℃以内,显示分辨率:0.1 ,误差:±1℃采用LED数码管直读显示。
(2) 设置上下报警温度,当温度不在设置范围内时,可以报警显示(本产品报警上限温度为70℃,报警下限温度为-50℃,低于报警下限温度显示“L”,高于报警上限温度显示“H”)。
(3) 可以间隔存储1000个数据,采用定时刷新数据,刷新频率可以调整。
温度数据可以查询,且由LED显示要查询的数据。
2.3 功能及作用:(1)实时显示当前前环境温度数值(2)具有过温声光报警功能(3)可以根据实际情况设定温度显示的精度三. 系统总体方案及硬件设计3.1查阅相关资料后有以下两个方案可供选择方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。
方案二考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。
3.2元件采购3.3系统总体设计整个电路的工作原理是:在正常的供电状态下,首先利用单片机从DS18B20(温度传感器)处理接收的相应数据,然后经其处理后并将相应的数据分别传送到相应的锁存器接收口,通过锁存器控制数码管实现实时显示。
根据设定的温度上、下阀值,控制蜂鸣器做出相应的反应。
如图3.1图3.1有了总体设计方案后,下面就是原理图的制作了。
原理图如下图 3.2及图 3.3所示。
将数码管电路与主控制电路分开画,最后两者是用导线连接。
数码管位选接P2.0,段选接P2.1口。
图3.2数码管电路图3.3单片机控制电路四.接口电路设计4.1模块简介系统由单片机最小系统、显示电路、报警电路、温度传感器等组成,电路采用USB供电。
4.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 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
图4.1 STC89C52单片机电路晶振采用11.0592MHZ,电容采用22pF的电容值图4.2晶振电路4.3 显示电路显示电路采用4 位共阴极LED 数码管,P2.1 口作为段码输出并作为数码管的驱动。
P2.0 口的低四位作为数码管的位选端。
采用动态扫描的方式显示。
如图3.2所示4.4温度传感器DS18B20 温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20 的性能特点如下:1、独特的单线接口仅需要一个端口引脚进行通信;2、多个DS18B20 可以并联在惟一的三线上,实现多点组网功能3、无须外部器件;4、可通过数据线供电,电压范围为3.0~5.5V;5、零待机功耗;6、温度以9或12位数字;7、用户可定义报警设置;8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20 的1 脚接地,2 脚作为信号线,3 脚接电源。
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列、各种封装形式如图4.3所示,DQ 为数据输入/输出引脚。
开漏单总线接口引脚。
当被用在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
其电路图4.4示.。
DS18B20的测温原理如图4.5图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:初始化DS18B20(发复位脉冲)→发ROM 功能命令→发存储器操作命令→处理数据。
预置低温度系数振荡器高温度系数振荡器斜率增加器计数器 1比较预置= 0温度寄存器计数器 2= 0T x加 1停止τ1τ2图4.5 DS18B20测温原理图在正常测温情况下,DS1820的测温分辨力为0.5℃,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH )读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB ),得到所测实际温度的整数部分Tz ,然后再用BEH 指令取计数器1的计数剩余值Cs 和每度计数值CD 。
考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度Ts 可用下式计算:CD Cs -CD 25.0)/(℃)(+-=Tz Ts图4.6温度传感器与单片机的连接 4.5温度报警电路对于数字温度计的设计,除了温度的数字显示功能外还加入了报警系统,如果我们所设计的系统用来监控某一设备,当设备的温度超过我们所设定的温度值时,系统会产生报警。
我们便能很好的对设备进行处理,就不会应温度的变化而造成不必要的损失。
温度超过设定温度值时,实现声光报警,蜂鸣器鸣叫、发光二极管点亮。
蜂鸣器由单片机P2.3口控制,用三极管驱动。