ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:1.28MB ,
资源ID:7863200      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7863200.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温度报警器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温度报警器.docx

1、温度报警器温度报警器 专业:电气工程及其自动化 班级: 组长: 成员: 指导老师: 日期: 2011.3.18 摘要:本着熟悉单片机编程,系统设计的目的,增强动手合作能力,选择了温度控制器这个实验项目。课题小组针对温控报警问题展开思考,终觉得设计一个能自低温到高温进行报警并通过液晶显示的系统。该系统使用89C51单片机,同时运用单线数字温度传感器DS18B20,LCD1602显示模块等模块可实现温度的检测。课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。该作品使用液晶显示,可以清晰地显示当前的报警温度,使使用者使用时不会出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,使用

2、性很高。关键字:温度报警器 温度上下限 AT89C51单片机 液晶LCD1602 温度传感器DS18B20Abstract:In the familiar microcontroller programming, the system is designed to enhance hands-on ability to cooperate,set the temperature controller is selected pilot projects. Group task group issues warning for temperature control thinking, desi

3、gn a final thought from low to high temperature alarm and through the liquid crystal display system.The system uses a 89C51 microcontroller, while the use of single-line digital temperature sensor DS18B20, LCD1602 display module and other modules to achieve the temperature detection. Experimental re

4、sults show that subjects meet the design requirements, with a certain value and promotional value.The works use LCD, can clearly display current alarm temperature make users without error, safe reliable enable used various food storage room, plants aquaculture the other places, usability high.Keywor

5、ds:89C51 microcontroller single-line digital temperature sensor DS18B20 LCD1602目录一 课程设计任务 11.1功能说明 1二 整体设计方案 12.1设计思路 12.2整体框图 22.3模块功能说明 2三 硬件电路设计 43.1各模块设计 43.1.1传感器的选择 43.1.2单片机的选择 53.1.3液晶的选择 53.2各模块分析 63.2.1单片机89C51管脚图 63.2.2 DS18B20引脚及管脚功能介绍 73.2.3 LCD1602液晶显示介绍 8四 控制软件设计及电路图 94.1单片机模块电路图及分析 9

6、4.2液晶显示模块电路图及分析 104.3温度传感器模块电路图及分析 11五 系统调试及遇到的问题 15六 个人小结 196.1组长 丁俊 196.2 组员1沈欢 206.3组员2瞿安捷 21七 参考文献 22八 附录 238.1附录1 238.2附录2 248.3附录3 25 一 课程设计任务1.1功能说明1. 完成温度进行测量,理论测量范围-55C+125C2. 将温度测量值LCD液晶显示模块显示;3. 可以通过按键进行温度上下限报警设定并实现功能;二 整体设计方案2.1设计思路根据功能要求,必须有单片机控制模块,LCD1602显示模块以及DS18B20的温度传感模块。各个模块都有其自己的

7、功能。上电后,通过DS18B20可以检测到温度,并在显示器上显示。2.2整体框图 图1 温度报警器总电路图2.3模块功能说明本系统共分为三块模块。单片机模块,这部分主要实现数据的处理,输出执行,报警设置功能显示模块可以分别显示实时温度值,温度上下限。温度传感模块的主要功能是通过DS18B20的强大功能实现对温度的采集及发送到计算机。 图2 温度报警器流程图YesYesNoNo三 硬件电路设计3.1各模块设计3.1.1传感器的选择采用DALLAS最新单线数字温度传感器DS18B20。新的“一线器件”体积更小、适用电压更宽、更经济。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系

8、统的构建引入全新概念。DS18B20“一线总线”数字化温度传感器也支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20的特性:DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中

9、,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。3.1.2单片机的选择89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令

10、集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。3.1.3液晶的选择采用LCD1602液晶显示模块,有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。它可以显示两行,每行16个字符,采用单5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。3.2各模块分析3.2.1单片机89C51管脚图注:引脚说明:电源引脚Vcc(40脚):典型值5V。Vss(20脚):接低电平。外部晶振X1、X2分别与晶体两端相连接。当采用外

11、部时钟信号时,X2接振荡信号,X1接地。输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“ 1”。P1口:I/O双向口。作输入口时,应先软件置“ 1”。P2口:I/O双向口。作输入口时,应先软件置“ 1”。P3口:I/O双向口。作输入口时,应先软件置“ 1”。控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST/Vpd(9脚):复位信号输入端(高电平有效)。第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器

12、读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。3.2.2 DS18B20引脚及管脚功能介绍注DQ:数字信号输入输出端。GND:电源地端。VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。3.2.3 LCD1602液晶显示介绍管脚功能1602采用标准的16脚接口第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进

13、行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。四 控制软件设计及电路图4.1单片机模块电路图及分析 图3 单片机接线图P1接液晶数据口,P0接3个二极管,P2接8个按钮,P3.3接蜂鸣器,P3.4接液晶的RS,P3.5接液晶的R/W,P3.6接液晶的EN,P3.7接温度传感器,其他按单片机最小系统连接。4.2液晶显示模块电路图及分析 图3 液晶接线图液晶显示模块的子程序:/*lcd1602程序*/ void delay1ms(unsigned int ms)/延时1毫秒(不够精

14、确的) unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat); void ds1820wr(uchar wdata)/*写数据*/ unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp()/*读取温度值并转换*/ uchar a,

15、b; ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0x44);/*启动温度转换*/ ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds1820wr(0xbe);/*读取温度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数 return(

16、tvalue); /*/ void ds1820disp()/温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x20;/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/如果百位为0,不显示 if(disdata1=

17、0x30) disdata1=0x20;/如果百位为0,十位为0也不显示 wr_com(0x89); wr_dat(flagdat);/显示符号位 wr_com(0x8a); wr_dat(disdata0);/显示百位 wr_com(0x8b); wr_dat(disdata1);/显示十位 wr_com(0x8c); wr_dat(disdata2);/显示个位 wr_com(0x8d); wr_dat(0x2e);/显示小数点 wr_com(0x8e); wr_dat(disdata3);/显示小数位 五 系统调试及遇到的问题开始我们只是做温度报警,因为温度传感器选择的是数字式温度传感器

18、,老师觉得过于简单,所以帮我们也想了很多其他功能。1.开机复位欢迎词的移动显示 unsigned char code str3= Welcome! ; unsigned char code str4=; init_play()/初始化显示 wr_com(0x80+0x10); /屏幕外等待 display(str3); wr_com(0xc0+0x10); display(str4); for(num=0;num16;num+) /屏幕左移 wr_com(0x18); delay1ms(200); 2.得到键盘值 uchar GetKey() /读取键值 uchar K; if(P2=0xff

19、) return 0; /检查是否有键按下 delay1ms(10); switch(P2) case 0xfe: K=1;break; case 0xfd: K=2;break; case 0xfb: K=3;break; case 0xf7: K=4;break; case 0xef: K=5;break; case 0xdf: K=6;break; case 0xbf: K=7;break; case 0x7f: K=8;break; default: K=0; while(P2!=0xff); Beep(); return K; 3.键盘值处理 void KeyProcess(ucha

20、r Key) /键盘处理 uchar t=0; switch(Key) case 1:if(h1h2)&(lh1) h1-; delay1ms(10);break; case 2:if(h1h2)&(lh1) h1+;delay1ms(10);break; case 3:if(h1h2)&(lh1) h2-;delay1ms(10);break; case 4:if(h1h2)&(lh1) h2+;delay1ms(10);break; case 5:if(h1h2)&(lh1) l-;delay1ms(10);break; case 6:if(h1h2)&(lh1) l+;delay1ms(

21、10);break; case 7: lcd_init();init_play2();delay1ms(10);break; 4.按键提示音 void Beep() /蜂鸣器按键提示音 uchar i,j=70; for(i=0;i200;i+) while(-j); baojing=0; delay1ms(300); baojing=1; 5.温度比较以及处理都直接放在主程序中 void main() uchar k; uchar Key; P2=0xff; lcd_init(); init_play();/初始化显示 delay1ms(1000); lcd_init(); init_pla

22、y2(); while(1) read_temp();/读取温度 ds1820disp();/显示 Key=GetKey(); if(Key!=0) KeyProcess(Key); if(Key!=7) lcd_init();init_play1();delay1ms(10); k=tvalue/10; if(kl) /温度比较处理 led1=1;led2=0;led3=0;baojing=1; else if(k=h1)&(k=h1)&(k=h1)&(kh2) led1=0;led2=0;led3=1;baojing=0; else if(k=l) led1=0;led2=0;led3=1

23、;baojing=0; 一开始老师给我们加的功能让我们很为难,不知道怎么编所以我们都想推辞掉,不过在编写这些子程序的过程中慢慢的感觉很有趣,反而觉得挺简单的还是,但也会碰到很多问题,比如说显示温度上下限的时候一开始无法显示数字出来的是乱码,重新编写后又变成了日文,后来看了参考书后,最后用了一个0到9的数组,要显示的数字从数组中取得,这样就好了,终于能显示出来了,但是发现它无法记时改变数字,要重新按键才会显示新的上下限温度,后来发现时键盘处理中有点问题,这个我们花了好久才解决的,就是把去掉一个按键处理,把它用if语句独立出来,这样后就能记时改变温度,还有一个问题是我们发现在报警时我们无法改变其温

24、度上下限和其他按键,也就是报警时按键无效了,后来知道了我们的报警程序是用while组成,所以报警时一直在while语句中做循环,按键当然无效,这个的解决办法马上就能想到了,就是在while语句中再加入读取键盘值和键盘值处理的子程序就ok了。其他别的小问题什么的我们组最后都很好的及时的解决了,这次的设计我们组觉得还是比较成功的,做出了比预期更好的设计来。 六 个人小结6.1组长 为期一周的单片机课程设计终于结束了,这一个星期真的蛮累的,大家都是忙忙碌碌的,我也不例外,这次实训我被安排到了组长,因为寒假里带回家的面包板调试不出来,所以寒假里没怎么做,这礼拜就有点忙了,但还是感谢学校给我这次学习的机会,让我更加了解到单片机的有趣,和它的无穷魅力。 我给我的其他组员分别安排了工作,他们也积极地配合我一起完成这次的单片机设计,一开始我过了一个寒假有点生疏,想到编程就感觉自己这个不会那个不会的,后来慢慢的看点书慢慢的就开始有感觉了,老师觉得我们的设计太简单,不停地给我们组的设计加功能,一开始觉得挺为难的,不过还是会慢慢做出来,完成老师提的要求,并且也对自己的编程能力也得到了提高,几乎每天对我都有新的挑战,每天都要克服新的困难。 我在组中的工作主要是编程和监制吧,帮助和监督他们焊接和调试还有拟论文等工作,大家学习和工作

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1