欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于51单片机的数字温度报警器(共15页).doc

    • 资源ID:13891376       资源大小:221KB        全文页数:15页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机的数字温度报警器(共15页).doc

    精选优质文档-倾情为你奉上摘要:随着传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发。本文设计了一种基于单片机AT89C52的温度检测及报警系统。该系统将温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。本次课程设计的测量范围为0-99,测量误差为±2。关键字:温度传感器、单片机、报警、数码管显示一、概述本次设计可以应用到许多我们用过的软件设计,将前面所学的知识融汇在一起实现温度监测及其报警的功能,来提醒农民当前大棚内温度是否适合农作物的生长。电子技术是在十九世纪末、二十世纪初开始发展起来的新兴技术,在二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。随着电子技术的飞速发展,电子技术在日常生活中得到了广泛的应用,各类转换电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中必不可少的工具。本次课设应用Protues软件设计一个温度检测报警系统,用温度传感器DS18B20采集大棚内的温度,当大棚内的温度高于30。或低于15。时,电路发出报警信号并显示当前温度,达到提醒农民的效果。 本次课设要求设计一个温度监测报警显示电路,要求温度范围:0-99;测量误差为±2;报警下限温度为:15;报警上限温度为:30。二、方案论证设计一个用于温室大棚温度监测系统。大棚农作物生长时,其温度不能太低,也不能太高,太低或太高均不适合农作物生长。该系统可实时测量、显示大棚的温度,当大棚温度超过农作物生长的温度范围时,报警提醒农民。方案一:方案一原理框图如图1所示。温度电压转换电路信号调理电路A/D转换电路双限报警电路译码显示电路Tx 图1 大棚温度检测系统的原理框图方案二:方案二原理框图如图2所示。AT89C52单片机数字温度传感器双限报警系统译码显示电路图2 方案二原理框图本设计采用方案二,设计电路较为简单不复杂且硬件实现及调试比方案一理想,比较容易实现,性价比较高。三、电路设计1.单片机最小系统的设计单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。本次课程设计中选用AT89C52式单片机,其最小系统主要由电复位、振荡电路组成。单片机的最小系统如图3所示。单片机的复位电路原理是在单片机的复位引脚RST上电阻和电容,实现上电复位。当复位电平持续两个时钟周期以上时复位有效。复位电路由按键复位和上电复位两部分组成,上电复位是在复位引脚上连接一个电容到VCC,再连接一个电阻到GND;按键复位是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。AT89C51单片机使用12MHZ的晶振最为振荡源,由于单片机内部有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容一般在15pF至50pF之间。外部晶振结合单片机内部电路产生单片机所需的时钟频率。图3 单片机最小系统2.温度采集电路的设计温度采集电路部分,采用数字温度传感器DS18B20进行温度采集。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3个引脚;温度侧量范围为-55+125,测量精度为0.5;被测温度用符号扩展的16位数字量方式串行输出;CPU只需用一个端口线就可以与DS18B20通信。温度采集电路如图4所示。图4 温度采集电路3.LED显示报警电路的设计LED数码管与单片机的P0口相连,单片机将采集到的温度值转化为与数码管对应的数据,通过P0口输出显示。即信号通过译码管的端口a、b、c、d、e、f、g 、dp 端来控制每段译码管的亮灭与否,同时通过端口1、2、3、4 四个端口来控制四个译码管。在本次设计中,用集成芯片74HC245驱动数码管。同时当采集到的温度值超过所设置的范围时,单片机会输出一信号,通过三极管放大后驱动蜂鸣器发出报警信号。LED数码管报警电路如图5所示。图5 LED显示报警电路四、程序流程1.主程序流程图主程序中对单片机做了初始化的设计,包含温度的读取、数码管显示、报警三个子系统,运行时由主程序先调用DS18B20读取温度的子函数进行温度采集,再将数据送入数码管显示。同时判断所采集的数据是否超出所设置的温度范围。如果超出,调用报警子系统;未超出,程序自动返回。主程序流程图如图6所示。图6 主程序流程图2.DS18B20读取温度流程图根据DS18B200的通讯协议,单片机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作(复位要求主CPU将数据线下拉500微秒然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功)。DS18B20读取温度时先读取温度低字节,在读取温度高字节。程序中命令0xCC:跳过读序号列号的操作;命令0x44:启动温度转换;命令0xBE:读取温度寄存器等,前两个字节就是温度。后面的寄存器省略不读。DS18B20读取温度流程图如图7所示。图7 DS18B20读取温度流程图3.译码显示流程图。译码显示程序中,要先将初始标识清除。将温度的个位送至低位数码管显示,清除标志再将温度值的高位送到高位数码管显示。之后延时,清除标志返回继续显示下一数据。译码显示流程图如图8所示。图8 译码显示流程图4.报警程序流程图程序中首先判断所读取的温度是否超出所设定的下限,如果超出下限,报警器报警;如果没超出下限,再跟上限值比较判断是否超出上限。如果超出,则报警;若无,程序返回。报警程序流程图如图9所示。图9 报警程序流程图五、电路性能的测试1.软件测试在PROTUES软件中,连接好电路图后将在Keil中生成的“温度监测.HEX”程序文件导入单片机中。由于DS18B20系统中设置的温度初值为85,所以当开始仿真时报警器会报警,数码管显示也为85。4至5秒后数字温度传感器会显示当前温度,数码管也相应显示其数值。在PROTUES软件仿真中,调节DS18B20的左右按钮可是温度值对应加减,数码管会显示当前值。当减到15以下或加到30以上时,报警器会报警。调节数字温度传感器DS18B20使其温度减到10,此时报警器报警,数码管显示10。10时的电路仿真如图10所示。图10 10时,仿真电路图调节DS18B20的温度值使其在099之间变化,电路仿真情况如表1所示。设置温度值051015182023252729数码管显示051015182023252729是否报警是是是否否否否否否否设置温度值30313540506070809099数码管显示30313540506070809099是否报警否是是是是是是是是是表1 099温度范围内电路仿真情况统计表2.硬件测试完成硬件焊接并检查电路无误后,给电路加5V电压。用万用表测量各点电压均正确,将相关的C语言程序导入单片机中,打开开关进行硬件测试。测试时发现了如下几个问题:(1)数码管不显示经过查找资料发现由于我们把晶振焊接的离单片机内部的振荡电路太远,导致无振荡产生。重心将晶振焊接离单片机较近的地方,数码管显示正常。(2)单片机的复位电路不工作由于软件仿真比较理想,复位电路选择的电容在硬件中不起作用。将复位电路的电容并联一个较大的电容,并将单片机EA脚接电源后,单片机复位电路有效。六、结论及性价比应用方案二设计的简易温度检测报警系统,符合课设任务的要求。测温范围:0-99;误差:±2报警下限温度:15;报警上限温度:30。当温度低于15或高于30时报警器会报警同时数码管也会显示当时温度。此次课程设计所需要的元件在实验室都可以找到,同时价格也比较合理。做出来的硬件实现功能比较理想,具有体积小、重量轻、抗干扰能力强、精确度高等优点。同时也可以做进一步的扩展,可扩展为多路温度采集系统。总体来说符合了性价比要求。七、课设体会及合理化建议本次课程设计是一次综合性的应用,全方位考察了我们对所学软件的理解与掌握。通过近三周的课程设计我不但对以前学过的知识点有了更深一步的掌握,同时我还学到了更多书本中所没有涉及到的东西。从我拿到任务书后就不断地去图书馆借书查找相关资料、上网搜索信息、与同组同学讨论方案。在我们的共同努力下,在第一周里成功的完成了软件的设计。因为我们之前有过焊接收音机和电视机的经验,所以在硬件焊接方面没有遇到太大的困难。虽然不难,但是它需要我们必须一丝不苟,如果有一点疏忽很有可能会带来很大的麻烦。在焊接过程中,就由于同组成员的不小心将单片机的电源和地接反了,我们在调试时给它的电源又有点大所以导致了单片机爆破,当时吓了我们一跳,但还好没有伤到我们。经过我们进两天的不懈努力下,终于完成了硬件的设计。这其中我是受益匪浅,虽然很累,但是当看到我们所设计的东西可以实现并能应用时,那种快乐是无法有语言描绘的。虽然在设计的过程中遇到各种各样的困难,但最终在老师和同学的帮助下完成了设计。极大的培养了我们的科研精神,激发了我们的专业兴趣,积累了实践经验,为将来的继续学习和工作打下了基础。虽然这是我们在毕业前的最后一个简单的课程设计,但却让我们学到了很多。所以希望学院能够多安排一些类似的实践训练,能让学弟学妹们有更多的机会接触具有现实意义的项目,能接触更多的硬件,更好的提升自己的实践能力和综合能力。参考文献1.沙占友、李学芝著.中外数字万用表电路原理与维修技术.M北京:人民邮电出版社,1993年.P157-P180。2.黄志伟主编.全国大学生电子设计竞赛电路设计.M北京:北京航空航天大学出版社,2006年.P5-P21。3.戴伏生主编.基础电子电路设计与实践.M北京:国防工业出版社,2002年.P65-68。4.谭博学主编.集成电路原理与应用.M北京:电子工业出版社,2003年.P134-P140。5.张毅刚、刘杰主编.单片机原理与应用.M哈尔滨:哈尔滨工业大学出版社,2010年.P55-P60。6.田立、田清、代方震主编.51单片机C语言程序设计快速入门.M北京:人民邮电出版社,2007年.P123-P144。7.刘文涛主编.单片机语言C51典型应用设计.M北京:人民邮电出版社,2005年.P211-P213。8.张学昭、王东云主编.单片机原理、接口技术及应用(含C51).M西安:西安电子科技大学出版社,2009年.P33-P45。9.高慧芳主编.单片机原理与应用技术.M北京:科学出版社,2010年.P235-P258。附录I:总电路图附录II:元器件清单序号编号名称型号数量1R1 电阻4.7K12R2电阻100K13R3电阻5K14RP1排阻5K15C1、C2电容33P26C3电容100u17S1按键开关18X1晶振12M19Q1三极管PNP110LS1蜂鸣器111U151单片机AT89C52112U2温度传感器DS18B20113U3集成芯片74HC245114U44位7段数码管共阳1附录:程序清单#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P37; sbit beep=P30; void reset(); /DS18B20复位函数 void write_byte(uchar val); /DS18B20写命令函数 uchar read_byte(void); /DS18B20读1字节函数 void read_temp(); /温度读取函数 void LED_display();void alarm();uchar tempH,tempL,num;uchar table10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /09的LED字符编码 uchar setValue_low=15;uchar setValue_high=30;main() while(1) read_temp(); LED_display(); alarm();void delay(uint t)for(;t>0;t-);void reset() /DS18B20的复位uchar presence=1;while(presence) while(presence) DQ=1;_nop_();_nop_(); DQ=0; delay(50); DQ=1; delay(6); presence=DQ; delay(45); presence=DQ; DQ=1;void write_byte(uchar val)/DS18B20写一个字节 uchar i;for(i=8;i>0;i-) DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); DQ=val&0x01; delay(6); val=val>>1; DQ=1;_nop_();uchar read_byte(void)/DS18B20读一个字节 uchar i;uchar value=0;for(i=8;i>0;i-) DQ=1;_nop_();_nop_(); value>>=1; DQ=0; _nop_();_nop_();_nop_();_nop_(); DQ=1;_nop_();_nop_();_nop_();_nop_(); if(DQ) value|=0x80; delay(6); DQ=1;return(value);void read_temp() /从DS18B20读取温度值 uchar ch1,ch2;reset();write_byte(0xcc);write_byte(0x44);reset();write_byte(0xcc);write_byte(0xbe);ch1=read_byte(); /DS18B20的温度数值是16位的二进制,精度高,最后四位是温度的小数部分,最高五位为符号位(即正负温度) ch2=read_byte();num=(ch2<<4)|(ch1>>4); /只取温度值的中间八位,小数部分舍去,符号位舍去四位。tempH=num/10;/温度的十位tempL=num-tempH*10;/温度的个位void LED_display() /显示检测的温度 P2=0x0; P2=2; P0=tabletempL; delay(50); P2=0x0; P2=1; P0=tabletempH; delay(50); P2=0x0;void alarm() /报警 if(setValue_low<=num && setValue_high>=num) beep=1; /在温度允许范围,不报警 else beep=beep;专心-专注-专业

    注意事项

    本文(基于51单片机的数字温度报警器(共15页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开