数码管与DS18B20设计的温度报警器

上传人:仙*** 文档编号:32587940 上传时间:2021-10-15 格式:DOC 页数:24 大小:1.40MB
收藏 版权申诉 举报 下载
数码管与DS18B20设计的温度报警器_第1页
第1页 / 共24页
数码管与DS18B20设计的温度报警器_第2页
第2页 / 共24页
数码管与DS18B20设计的温度报警器_第3页
第3页 / 共24页
资源描述:

《数码管与DS18B20设计的温度报警器》由会员分享,可在线阅读,更多相关《数码管与DS18B20设计的温度报警器(24页珍藏版)》请在装配图网上搜索。

1、电气与电子信息工程学院单片机课程设计报告 题 目:数码管与DS18B20设计的温度报警器 专业班级 学号: 姓 名: 指导教师: 设计时间: 2013年12月23日2013年12月27日 设计地点: K2-407单片机、微机原理实验室 2013年11月20日 单片机 课程设计成绩评定表答辩或质疑记录:1、2、成绩评定依据:课程设计考勤情况 (5):课程设计仿真测试情况 (15)课程设计答辩情况 (30):完成设计任务及报告规范性(50):最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 2013 年 12 月 日课程设计任务书20132014 学年第 1 学期专业班级:电气工程及

2、其自动化2013级(专升本)班 指导教师:工作部门: 电气与电子信息工程学院 电气自动化教研室 一、课程设计题目 单片机课程设计 二、课程设计内容(含技术指标)1设计目的及要求(1) 根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。要求概念清楚、方案合理、方法正确、步骤完整; (2) 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法; (3) 熟练使用单片机汇编语言或C51进行软件设计; (4) 熟练使用Proteus、Keil软件进行仿真电路测试; (5) 熟练使用Protel软件设计印刷电路板; (6) 学会查阅有关参考资料和

3、手册,并能正确选择有关元器件和参数;(7) 编写设计说明书,参考毕业设计论文格式撰写设计报告。2设计内容(题目名称: 数码管与DS18B20设计的温度报警器) 采用DS18B20温度数字式传感器,对被测温度进行实时监控,并将所监控到的温值实时的传输到AT89C51单片机,由AT89C51单片机对温度数据进行处理,然后由数码管显示。若被监测的温度低于-10时,数码管实时显示当前温度,低温LED报警灯闪烁,同时系统发出报警声,此时若闭合开关K1蜂鸣器不发出警报,低温LED报警灯任然闪烁;若被监测的温度高于10时,数码管实时显示当前温度,高温LED报警灯闪烁,同时系统发出警报声,此时若闭合开关K1蜂

4、鸣器不发出警报,高温LED报警灯任然闪烁;若被监测温度在-10 10之间,系统正常工作,数码管实时显示当前温度。三、课程设计考核办法与成绩评定根据过程、报告、答辩等确定设计成绩,成绩分优、良、中、及格、不及格五等。 2013年11月 - 24 -课程设计报告1、 方案论证1、 系统基本功能对温度的测量及监控是经常遇到的问题之一,下面将以AT89C51单片机为核心,来进行温度监测及报警系统的设计。本系统采用八位集成数码管显示温度,该控制系统具有如下的基本功能:温度控制的设定范围为-1010,最小分辨率为0.5;实时显示当前温度值;采用数字温度传感器DS18B20实现温度数据的采集与转换;当温度高

5、于10或低于-10时,系统将产生报警,且对应的 LED 灯同步闪烁。2、 系统说明及框图 (1)硬件电路从功能模块上来划分有:主机电路;温度数据采集电路;显示电路;报警电路。 (2)硬件结构功能图2、 硬件设计1、 电路原理图2、 电路说明(1) 数据采集电路 1、对应电路图如下图所示:主机采用AT89C51单片机,系统时钟采用12MHz。温度传感器采用DS18B20数字温度传感器,该温度传感器具有测温系统简单、测温精度高、连接方便、占用口线少等优点,与二端式电流型集成温度传感器AD590相比,不需要采用A/D转换器,可以直接与单片机相连接,减少了中间转换电路,使系统性能更稳定。2、其中,DS

6、18B20有如下特点:采用单总线的接口方式 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85C范围内,精度为 0.5C 。在使用中不需要任何外围元件。持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温。供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要

7、求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。测量参数可配置 DS18B20 的测量分辨率可通过程序设定 912 位。 负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。温度/数据关系(2) 显示电路 1、对应电路图如下图所示:考虑到显示的位数及本系统对应不同温度范围时的扩展,本设计采用8为共阴极LED数码管显示温度值,同时为了简化硬件电路,故采用动态扫描的方法来控制各个数码管的轮流显示。此方法虽然减少了I/O口的占用量,但扫描占用了单片机的时间。由于动态显示

8、的亮度比较低,以及单片机I/O口的驱动能力较弱,故在显示位的段码前增加了一个74LS245驱动器,使P0口的数据输出后,经过74LS245提高驱动后输出,使数码管的显示亮度不至于过暗。其中P0口作为段码输出口,P2口作为8个数码管的位选信号输出口。2、 LED动态显示方式所谓动态显示,是指无论在任何时刻都只有一个LED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管的轮流显示。在多位LED显示时,为简化硬件电路,通常将所有显示位的段码线的相应段并联在一起,由一个8位的I/O口控制(本系统中,P0口即为8位的段码输出口),而各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的分时选

9、通(本系统中使用的8个数码管采用共阴极接法,P2口为8个数码管的位选信号口)。由于8个数码管的段代码线并联,在同一时刻,8个数码管将会显示相同是字符。因此,若要各个数码管能够同时显示出与本位相应的显示字符,就必须采用动态的“扫描”显示方式。即在某一时刻,只让其中一位的位选线处于选通状态,而其它各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻,8位LED中只有被选通的那一位显示出字符,而其它七位则是熄灭的。同样,在下一时刻,只让其下一位的位选线处于选通状态,而其它各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,此时,只有在选通位显示出相应的字符,

10、而其它各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其它各位熄灭,但由于LED数码管的余辉和人眼的“视觉暂留”作用,只要每位显示时间间隔足够短,则可造成“多位同时亮”的假象,达到同时显示的效果。(3) 报警电路 对应电路图如下图所示: 该报警电路由常见的发光二极管和蜂鸣器组成,一个发光二极管用于高温报警,另一个发光二极管用于低温报警,蜂鸣器用于产生警报声,因其所需的驱动电流一般比较小,故将以上元件直接与单片机相连。3、 软件设计1、 主程序流程图 注:主程序中的初始化包括设置中断方式,开中断,设定计数初值以及报警温度

11、2、 定时器中断程序流程图 3、 数码管显示程序流程图 4、 DS18B20初始化程序流程图四、仿真结果1、正常温度 正常温度时,仿真结果如上图,数码管动态显示当前温度,报警电路不工作。2、 高温报警 当温度高于高温报警温度时,仿真结果如上图,数码管动态显示当前温度,高温报警灯闪烁,蜂鸣器发出警报声。3、 低温报警当温度低于低温报警温度时,仿真结果图上图,数码管动态显示当前温度,低温报警灯闪烁,蜂鸣器发出报警灯。5、 系统改进 对于当前的系统,与实际的应用还有较大的差距,若在实际的应用中,可以对系统做如下的扩展与改进。(1)可增加一个开关,在发出报警后按下,用来屏蔽蜂鸣器发出的声音,但报警灯任

12、然正常闪烁(本设计已实现)。(2)可增加多个DS18B20传感器,将不同点的数据采集后,经过运算,取其平均值,从而使温度的检测更精确。(3)可增加自动升温和降温系统,在系统高温报警时,降温系统启动,当温度回到正常值时,降温系统停止工作;在系统低温报警时,升温系统启动,当温度回到正常值时,升温系统停止工作,从而实现系统完全的自动化运行。六、总结通过本次的课程设计,又重新将本学期所学的单片机知识整理了一遍,对单片机有了更深刻的了解和认识。同时,通过查资料,又使我学到了许多教材上无法学到的知识,也更深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了更多的扩展,也对单片机这一门课程产生

13、了更大的兴趣。在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机工程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,我学会了在网络上查找有关本设计的各硬件的资源,为本次工程设计提供了一定的资料。经过这次的设计,为我们以后毕业设计的制作也奠定了一定的基础。附录 源程序清单#include #include#define uchar unsigned char#define uint

14、unsigned intsbit K1=P10;sbit DQ=P36;sbit BEEP=P37;sbit HI_LED=P14;sbit LO_LED=P15;uchar FRQ=0X00;/共阴极数码管段代码及空白显示uchar code DSY_CODE=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X00;/温度小数位对照表uchar code df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9;/-/报警温度上下限,为进行正负数比较,此处注意设为char类型/取值范围为-128+127,DS18B

15、20支持范围-50+125/-char Alarm_Temp_HL2=10,-10;/-uchar CurrentT=0; /当前读取的温度控制部分uchar Temp_Value=0X00,0X00; /从DS18B20读取的温度值uchar Display_Digit=0,0,0,0; /待显示的各温度数位bit HI_Alarm=0, LO_Alarm=0; /高低温报警标志bit DS18B20_IS_OK=1; /传感器正常标志uint Time0_Count=0; /定时器延时累加/-/延时/-void Delay(uint X) while(-X); /-/初始化DS18B20/

16、-uchar Init_DS18B20() uchar status; DQ=1;Delay(80); DQ=0;Delay(90); DQ=1;Delay(8); status=DQ; Delay(100); DQ=1; return status; /初始化成功时返回0 /- /读一字节 /- uchar ReadOneByte() uchar i,dat=0; DQ=1;_nop_(); for(i=0;i=1;DQ=1;_nop_();_nop_(); if(DQ) dat|=0X80;Delay(30);DQ=1;return dat; /-/写一字节/-void WriteOneB

17、yte(uchar dat) uchar i; for(i=0;i=1; /-/读取温度值/-void Read_Temperature() if(Init_DS18B20()=1)/DS18B20故障 DS18B20_IS_OK=0; else WriteOneByte(0XCC);/跳过序列号 WriteOneByte(0X44);/启动温度转换 Init_DS18B20(); WriteOneByte(0XCC);/跳过序列号 WriteOneByte(0XBE);/读取温度寄存器 Temp_Value0=ReadOneByte();/温度低8位 Temp_Value1=ReadOneB

18、yte();/温度高8位 Alarm_Temp_HL0=ReadOneByte();/报警温度TH Alarm_Temp_HL1=ReadOneByte();/报警温度TL DS18B20_IS_OK=1; /-/设置DS18B20温度报警值/-void Set_Alarm_Temp_Value() Init_DS18B20(); WriteOneByte(0XCC);/跳过序列号 WriteOneByte(0X4E);/将设定的温度报警值写入DS18B20 WriteOneByte(Alarm_Temp_HL0);/写TH WriteOneByte(Alarm_Temp_HL1);/写TL

19、WriteOneByte(0X7F);/12位精度 Init_DS18B20(); WriteOneByte(0XCC);/跳过序列号 WriteOneByte(0X48);/温度报警值存入DS18B20 /- /在数码管上显示温度/-void Display_Temperature() uchar m; uchar t=150;/延时值 uchar ng=0,np=0;/负数标识及负号显示位置 char Signed_Current_Temp; /注意类型为char /如果为负数则取反加1,并设置负号标识及负号显示位置 if(Temp_Value1&0XF8)=0XF8) Temp_Valu

20、e1=Temp_Value1; Temp_Value0=Temp_Value0+1;if(Temp_Value0=0X00) Temp_Value1+;ng=1;np=0XFD; /默认负号显示在左边第2位 /查表得到温度小数部分 Display_Digit0=df_TableTemp_Value0&0X0F; /获取温度整数部分(无符号) CurrentT=(Temp_Value0&0XF0)4)|(Temp_Value1&0X07)=Alarm_Temp_HL0 ?1:0; LO_Alarm=Signed_Current_Temp=Alarm_Temp_HL1 ?1:0; /将整数部分分解

21、为三位待显示数字 Display_Digit3=CurrentT/100; Display_Digit2=CurrentT%100/10; Display_Digit1=CurrentT%10; if(Display_Digit3=0) /高位为0不显示 Display_Digit3=10; np=0XFB; /调整负号位置if( Display_Digit2=0) Display_Digit2=10; np=0XF7; /调整负号位置 /刷新显示若干时间 for(m=0;m30;m+) P0=0X39;P2=0X7F;Delay(t);P2=0XFF; /显示C P0=0X63;P2=0XB

22、F;Delay(t);P2=0XFF; /显示 P0=DSY_CODEDisplay_Digit0; /小数位 P2=0XDF;Delay(t);P2=0XFF; P0=(DSY_CODEDisplay_Digit1)|0X80; /个位及小数点 P2=0XEF;Delay(t);P2=0XFF; P0=DSY_CODEDisplay_Digit2; /十位 P2=0XF7;Delay(t);P2=0XFF; P0=DSY_CODEDisplay_Digit3; /百位 P2=0XFB;Delay(t);P2=0XFF; if (ng) /如果为负则在调整后的位置显示“-” P0=0X40;P

23、2=np;Delay(t);P2=0XFF; /-/定时器中断,控制警报声音/-void T0_INT() interrupt 1 if(K1=1) TH0=0XFE; TL0=FRQ;FRQ+; BEEP=BEEP; if(+Time0_Count=400) Time0_Count=0; if(HI_Alarm) HI_LED=HI_LED ;else HI_LED=1; if(LO_Alarm) LO_LED=LO_LED ;else LO_LED=1; else TH0=0XFE; TL0=FRQ;FRQ+; if(+Time0_Count=400) Time0_Count=0; if(

24、HI_Alarm) HI_LED=HI_LED ;else HI_LED=1; if(LO_Alarm) LO_LED=LO_LED ;else LO_LED=1; /-/主程序/-void main(void) IE=0X82; TMOD=0X01; TH0=0X00; TL0=0XFF; TR0=0; HI_LED=1; LO_LED=1; BEEP=0; Set_Alarm_Temp_Value(); Read_Temperature(); Delay(50000); Delay(50000); while(1) Read_Temperature(); if(DS18B20_IS_OK) if(HI_Alarm=1|LO_Alarm=1) TR0=1;else TR0=0;Display_Temperature(); else P0=P2=0X00;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!