您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 数码管与DS18B20设计的温度报警器
-1-电气与电子信息工程学院《单片机》课程设计报告题目:数码管与DS18B20设计的温度报警器专业班级学号:姓名:指导教师:设计时间:2013年12月23日—2013年12月27日设计地点:K2-407单片机、微机原理实验室2013年11月20日-2-单片机课程设计成绩评定表答辩或质疑记录:1、2、成绩评定依据:课程设计考勤情况(5%):课程设计仿真测试情况(15%)课程设计答辩情况(30%):完成设计任务及报告规范性(50%):最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:2013年12月日-3-课程设计任务书2013~2014学年第1学期专业班级:电气工程及其自动化2013级(专升本)班指导教师:工作部门:电气与电子信息工程学院电气自动化教研室一、课程设计题目单片机课程设计二、课程设计内容(含技术指标)1.设计目的及要求(1)根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。要求概念清楚、方案合理、方法正确、步骤完整;(2)熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;(3)熟练使用单片机汇编语言或C51进行软件设计;(4)熟练使用Proteus、Keil软件进行仿真电路测试;(5)熟练使用Protel软件设计印刷电路板;(6)学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;(7)编写设计说明书,参考毕业设计论文格式撰写设计报告。2.设计内容(题目名称:数码管与DS18B20设计的温度报警器)采用DS18B20温度数字式传感器,对被测温度进行实时监控,并将所监控到的温值实时的传输到AT89C51单片机,由AT89C51单片机对温度数据进行处理,然后由数码管显示。若被监测的温度低于-10℃时,数码管实时显示当前温度,低温LED报警灯闪烁,同时系统发出报警声,此时若闭合开关K1蜂鸣器不发出警报,低温LED报警灯任然闪烁;若被监测的温度高于10℃时,数码管实时显示当前温度,高温LED报警灯闪烁,同时系统发出警报声,此时若闭合开关K1蜂鸣器不发出警报,高温LED报警灯任然闪烁;若被监测温度在-10℃~10℃之间,系统正常工作,数码管实时显示当前温度。三、课程设计考核办法与成绩评定根据过程、报告、答辩等确定设计成绩,成绩分优、良、中、及格、不及格五等。2013年11月-4-课程设计报告一、方案论证1、系统基本功能对温度的测量及监控是经常遇到的问题之一,下面将以AT89C51单片机为核心,来进行温度监测及报警系统的设计。本系统采用八位集成数码管显示温度,该控制系统具有如下的基本功能:①温度控制的设定范围为-10℃~10℃,最小分辨率为0.5℃;②实时显示当前温度值;③采用数字温度传感器DS18B20实现温度数据的采集与转换;④当温度高于10℃或低于-10℃时,系统将产生报警,且对应的LED灯同步闪烁。2、系统说明及框图(1)硬件电路从功能模块上来划分有:①主机电路;②温度数据采集电路;③显示电路;④报警电路。(2)硬件结构功能图-5-二、硬件设计1、电路原理图2、电路说明(1)数据采集电路1、对应电路图如下图所示:-6-主机采用AT89C51单片机,系统时钟采用12MHz。温度传感器采用DS18B20数字温度传感器,该温度传感器具有测温系统简单、测温精度高、连接方便、占用口线少等优点,与二端式电流型集成温度传感器AD590相比,不需要采用A/D转换器,可以直接与单片机相连接,减少了中间转换电路,使系统性能更稳定。2、其中,DS18B20有如下特点:①采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。②测量温度范围宽,测量精度高DS18B20的测量范围为-55℃~+125℃;在-10~+85°C范围内,精度为±0.5°C。③在使用中不需要任何外围元件。④持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多点测温。-7-⑤供电方式灵活DS18B20可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。⑥测量参数可配置DS18B20的测量分辨率可通过程序设定9~12位。⑦负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。⑧掉电保护功能DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。⑨温度/数据关系(2)显示电路1、对应电路图如下图所示:-8-考虑到显示的位数及本系统对应不同温度范围时的扩展,本设计采用8为共阴极LED数码管显示温度值,同时为了简化硬件电路,故采用动态扫描的方法来控制各个数码管的轮流显示。此方法虽然减少了I/O口的占用量,但扫描占用了单片机的时间。由于动态显示的亮度比较低,以及单片机I/O口的驱动能力较弱,故在显示位的段码前增加了一个74LS245驱动器,使P0口的数据输出后,经过74LS245提高驱动后输出,使数码管的显示亮度不至于过暗。其中P0口作为段码输出口,P2口作为8个数码管的位选信号输出口。2、LED动态显示方式所谓动态显示,是指无论在任何时刻都只有一个LED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管的轮流显示。-9-在多位LED显示时,为简化硬件电路,通常将所有显示位的段码线的相应段并联在一起,由一个8位的I/O口控制(本系统中,P0口即为8位的段码输出口),而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选通(本系统中使用的8个数码管采用共阴极接法,P2口为8个数码管的位选信号口)。由于8个数码管的段代码线并联,在同一时刻,8个数码管将会显示相同是字符。因此,若要各个数码管能够同时显示出与本位相应的显示字符,就必须采用动态的“扫描”显示方式。即在某一时刻,只让其中一位的位选线处于选通状态,而其它各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻,8位LED中只有被选通的那一位显示出字符,而其它七位则是熄灭的。同样,在下一时刻,只让其下一位的位选线处于选通状态,而其它各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,此时,只有在选通位显示出相应的字符,而其它各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其它各位熄灭,但由于LED数码管的余辉和人眼的“视觉暂留”作用,只要每位显示时间间隔足够短,则可造成“多位同时亮”的假象,达到同时显示的效果。(3)报警电路对应电路图如下图所示:-10-该报警电路由常见的发光二极管和蜂鸣器组成,一个发光二极管用于高温报警,另一个发光二极管用于低温报警,蜂鸣器用于产生警报声,因其所需的驱动电流一般比较小,故将以上元件直接与单片机相连。三、软件设计1、主程序流程图-11-注:主程序中的初始化包括设置中断方式,开中断,设定计数初值以及报警温度2、定时器中断程序流程图-12-3、数码管显示程序流程图-13-4、DS18B20初始化程序流程图四、仿真结果1、正常温度-14-正常温度时,仿真结果如上图,数码管动态显示当前温度,报警电路不工作。2、高温报警当温度高于高温报警温度时,仿真结果如上图,数码管动态显示当前温度,高温报警灯闪烁,蜂鸣器发出警报声。3、低温报警当温度低于低温报警温度时,仿真结果图上图,数码管动态显示当前温度,低温报警灯闪烁,蜂鸣器发出报警灯。五、系统改进对于当前的系统,与实际的应用还有较大的差距,若在实际的应用中,可以对系统做如下的扩展与改进。-15-(1)可增加一个开关,在发出报警后按下,用来屏蔽蜂鸣器发出的声音,但报警灯任然正常闪烁(本设计已实现)。(2)可增加多个DS18B20传感器,将不同点的数据采集后,经过运算,取其平均值,从而使温度的检测更精确。(3)可增加自动升温和降温系统,在系统高温报警时,降温系统启动,当温度回到正常值时,降温系统停止工作;在系统低温报警时,升温系统启动,当温度回到正常值时,升温系统停止工作,从而实现系统完全的自动化运行。六、总结通过本次的课程设计,又重新将本学期所学的单片机知识整理了一遍,对单片机有了更深刻的了解和认识。同时,通过查资料,又使我学到了许多教材上无法学到的知识,也更深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了更多的扩展,也对单片机这一门课程产生了更大的兴趣。在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机工程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,我学会了在网络上查找有关本设计的各硬件的资源,为本次工程设计提供了一定的资料。经过这次的设计,为我们以后毕业设计的制作也奠定了一定的基础。-16-附录源程序清单#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintsbitK1=P1^0;sbitDQ=P3^6;sbitBEEP=P3^7;sbitHI_LED=P1^4;sbitLO_LED=P1^5;ucharFRQ=0X00;//共阴极数码管段代码及空白显示ucharcodeDSY_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X00};//温度小数位对照表ucharcodedf_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};//---------------------------------------------------------------------------------//报警温度上下限,为进行正负数比较,此处注意设为char类型//取值范围为-128~+127,DS18B20支持范围-50~+125//---------------------------------------------------------------------------------charAlarm_Temp_HL[2]={10,-10};//---------------------------------------------------------------------------------ucharCurrentT=0;//当前读取的温度控制部分ucharTemp_Value[]={0X00,0X00};//从DS18B20读取的温度值ucharDisplay_Digit[]={0,0,0,0};//待显示的各温度数位bitHI_Alarm=0,LO_Alarm=0;//高低温报警标志bitDS18B20_IS_OK=1;//传感器正常标志uintTime0_Count=0;//定时器延时累加//----------------------------------------------------------------------------------//延时//----------------------------------------------------------------------------------voidDelay(uintX){while(--X);}//----------------------------------------------------------------------------------//初始化DS18B20
本文标题:数码管与DS18B20设计的温度报警器
链接地址:https://www.777doc.com/doc-3573912 .html