欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    基于单片机设计的温度报警系统.docx

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

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

    基于单片机设计的温度报警系统.docx

    单片机设计的温度报警器摘要I1、引言22设计内容及性能指标23系统方案比拟、设计与论证33.1 主控制器模块33.2 温度测量33.3 设置温度43.4 显示模块43.5 电源选取44系统器件选择55硬件实现及单元电路设计55.1 主控制模块55.2 显示模块电路55.3 数码管显示驱动电路5图6驱动电路55.4 4温度传感器(DS18B20)电路51. 4.1DS18B20根本介绍52. 4.2DS18B20控制方法65. 4.3DS18B20供电方式6蜂鸣器、发光二极管报警电路66系统软件设计66.1 程序结构分析76.2 系统程序流图76. 2.1DS18B20初始化程序流程图76. 2.2读温度子程序流程图77系统的安装与调试86.1 安装步骤86.2 电路的调试87. 3本章小结8结论8参考文献9附录1整体电路原理图9附录2局部源程序9摘要随着时代的进步和开展,单片机技术己经普及到我们生活、工作、科研、各个领域,已经成为一种比拟成熟的技术,本文主要介绍了一个基于单片机的温度报警系统,详细描述了利用温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各局部的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度控制,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与STC89C52结合实现最简温度控制系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度的控制,有广泛的应用前景。关键词:单片机;温度控制;STC89C52;DS18B20:1、引言随着科技的不断开展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息根底的开展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域己经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和温度报警装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的开展经历了三个开展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的开展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的根底上从模拟式向数字式,从集成化向智能化、网络化的方向飞速开展,并朝着高精度、多功能、总线标准化、高可靠性及平安性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速开展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,STC89C52推片机为控制器构成的数字温度控制装置的工作原理及程序设计作了详细的介绍。其具有读数方便,方便控制,输出温度采用数字显示,主要用于对温度控制要求比拟准确的场所,或科研实验室使用。该设计控制器使用STC89C52单片机,测温传感器使用DALLAS公司DS18B20,用数码管来实现温度显示。2设计内容及性能指标本设计主要是介绍了单片机控制下的温度报警系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:单片机实时检测温度传感器DS18B20的状态,并将DS18820得到的数据进行处理。上电后数码管显示当前的环境温度,通过按键可设置上下温报警值,当检测到的温度高于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁,温度检测精确到0.1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面。3系统方案比拟、设计与论证该系统主要由温度测量和温度设置及系统状态显示三局部电路组成,下面介绍实现此系统功能的方案。3.1 主控制器模块方案1:采用可编程逻辑器件CPLD作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑我们放弃了此方案。方案2:采用STC89C52单片机作为整个系统的核心,用其控制温度报警功能,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现温度的自动显示并报警功能,而在这一点上,单片机就显现出来它的优势一一控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。STC89C52单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是STC89C52单片机价格非常低廉。3.2 温度测量方案L采用数字温度芯片DS18B20测量实际温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在O-Ioo摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比拟简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外STC89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。方案2:采用热电偶温差电路测温,温度检测局部可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成(如下列图),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在温度并测量该电压,便可推断出检测结点的温度。数据采集局部那么使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路,感温电路比拟麻烦。图1热电偶电路图从以上两种方案,容易看出方案二的测温装置可测温度范围宽、体积小,但是线性误差较大。方案一的测温装置电路简单、精确度较高、实现方便、软件设计也比拟简单,故本次设计采用了方案一。3.3 设置温度方案1:采用键盘输入设置温度,键盘那么可以用4个按键,一个复位键,一个功能设定键,一个加减一个减键。四个键比拟常用,而且用到的接口得到了极好的利用,仅需要4个接口。方案2:可采用4*4矩阵键盘,该键盘需要8个接口,而我们不需这么多键。综上所述,我们选择第一种方案。3.4 显示模块方案1:用数码管进行显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。方案2:用LCD液晶进行显示。LCD由于其显示清晰,显示内容丰富、清晰,显示信息量大,使用方便,显示快速而得到了广泛的应用。单对于此系统我们不需要显示丰富的内容,而且LCD液晶价格贵,因此我们选择了此方案。综上所述我们选择方案13.5 电源选取由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案Is采用5V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在小型电动车上使用极为不方便。因此我们放弃了此方案。方案2:采用3节1.5V干电池共V做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。综上所述采用方案24系统器件选择1温度传感器的选择由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比拟多的外部元件支持,且硬件电路复杂,制作本钱相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。图2外部封装形式图3传感器电路图5硬件实现及单元电路设计5.1 主控制模块主控制最系统电路如图4所示。图4单片主控电路5.2 显示模块电路显示采用四位数码管显示,当位选翻开时,送入相应的段码,那么相应的数码管翻开,关掉位选,翻开另一个位选,送入相应的段码,那么数码管翻开,而每次翻开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。显示电路如图5图5数码管显示5.3 数码管显示驱动电路三极管8550来驱动4位数码管,不仅简单,而且价格廉价。图6驱动电路5.4 温度传感器(DS18B20)电路5.4.1 DS18B20根本介绍DS18B20是美国DALLAS半导体公司推出的第一片支持"一线总线"接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号处理器处理。DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流到达ImA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,下列图电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。图7温度传感器电路引脚图5.4.2 DS18B20控制方法DS18B20有六条控制命令:温度转换4411启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU5.4.3 DS18B20供电方式DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本设计采用电源供电方式,P2.2口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和STC89C52的P2.2来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤: 初始化" ROM操作指令。 存储器操作指令。5.6蜂鸣器、发光二极管报警电路电路如图8主要是用来设定温度报警温度的、有高温和低温报警。图8蜂鸣器、发光二极管驱动引脚图6系统软件设计6.1 程序结构分析主程序调用了3个子程序,分别是数码管显示程序、温度信号处理程序、按键设定报警温度程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示局部。按键设定程序:可以设定低温和高温报警可精确到0度。6.2 系统程序流图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每Is进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比拟,其程序流程见图9所示。通过调用读温度子程序把存入内存储中的整数局部与小数局部开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。图11温度子程序流程图7系统的安装与调试7.1 安装步骤按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过IOs,注意芯片的安装方向。7.2 电路的调试首先烧入显示程序,看显示正不正常。在调试程序时,发现有的指令用的不正确,导致电路功能不能完全实现,另外软件程序中的延时有的过长、有的过短。类似的现象还有很多就不一一列举了。7.3 本章小结本章的主要内容是电路的测试和调试考前须知结论本温度报警器,通过单片机实时检测温度传感器DS18B20的状态,并将DS18820得到的数据进行处理。上电后数码管显示当前的环境温度,通过按键可设置上下温报警值,当检测到的温度高于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁,温度检测精确到01度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面。由于采用了4节干电池供电使系统的抗干扰性得到加强。在软件上,充分利用了STC89C52的系统资源,系统运行流畅。本设计结构简单,调试方便,系统反映快速灵活,经实验测试,该温度报警系统设计方案正确、可行,各项指标稳定、可靠。参考文献1曹巧媛主编.单片机原理及应用(第二版).北京:电子工业出版社,20022全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001),北京:北京理工大学出版社,20033何力民编.单片机高级教程.北京:北京航空大学出版社,20004金发庆等编传感器技术与应用.北京机械工业出版社,20025刘坤、宋戈、赵洪波、张宪栋编.51单片机C语言应用开发技术大全,北京:人民邮电出版社,20236谭浩强著.C程序设计.北京:清华大学出版社,2007;7王忠飞,胥芳.MCS-51单片机原理及嵌入式系统应用M.西安:西安电子科技大学出版社,2007.P268-2738PeterVanDerLinden著,徐波译.C专家编程,人民邮电出版社,2003附录1整体电路原理图附录2局部源程序#includc<reg52.h>#includc"ccpom52.lT#dcfineUCharunsignedcha,#defineuintunsignedint数码管段选定义0123456789ucharcodesmg_du=OxcO,0xf9,0xa4t0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xal,0x86,0x8e,0xff;断码数码管位选定义ucharcodesmg-we=0xef,0xdf,Oxbf,0x7f;uchardis_smg8=OxcO,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;ucharsmg_i=3;"显示数码管的个位数sbitdq=P24;/18b20IO口的定义sbitbeep=P25;蜂鸣器IO口定义uchara_a;uinttemperature;/bitflag_300ms;ucharkey_can;按键值的变量ucharmenu_l;菜单设计的变量uintt_high=300,t_low=100;bitflag_lj_en;"按键连加使能bitflag_lj_3_en;按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;用做连加的中间变量bitkey_500msucharflag_clock;ucharzd_break_en,zd_break_value;/自动退出设置界面voiddelay_lms(uintq)uintij;for(i=0i<qu÷+)for(j=0y<120;j+);*JJJ函*/voiddelay_uint(uintq)while(q-);/*Id马显示函娄*/voiddisplay()uchari;for(i=0;i<smg_i;i+)位选段选位选"消隐P3=smg_weij;Pl=dis_smgi;delay_lms(l);P3=Oxff;Pl二Oxff;*把J技伤召到j_片机内jeepomClZI*/voidwrite_ecpom()SectorErase(0x2(X)0);byte_write(0x2000,t_high%256);byte一Write(OX2001,t_high/256);byte_write(0x2002,t_low%256);byte一WritC(OX2003,t_low/256);byte_write(0x2055,a_a);*把Jll4从_片机内目Jeepom中读!出*冰*/voidread_eepom()t_high=byte_read(0x2(X)1);t_high«=8;t_high=byte_read(0x2000);t_low=byte_read(Ox2003);t_low«=8;tow=byte_read(0x2002);a_a=byte_read(0x2055);voidinit_18b20()"把总线拿高bitq;dq=delay_uint(l);/15us"把总线拿高等待/HOus"读取18b20初始化信号/200us"把总线拿高释放总线dq=0;delay_uint(80);dq=1;delay_uint(10);q=dq;delay_uint(20);dq=1;"给复位脉冲/750usvoidwrite_l8b2O(uchardat)uchari;for(i=0;i<8;i+)dq - 0;"写数据是低位开始把总线拿低写时间隙开始dq=dat&0x01;向18b20总线写数据了delay_uint(5);60usdq = 1;dat »= 1 ;"释放总线/*4浓本*j:*含*读月又8b2O内的数据志本泳志*索击市*含需*咨/ucharread8b20()uchari,value;for(i=0;i<S;i+)dq = 0;"把总线拿低读l间隙开始value»=1;读数据是低位开始dq=1;释放总线if(dq=1)开始读写数据valueI=0x80;delay_uint(5);/60us读一个时间隙最少要保持60US的时间return value;"返回数据*读取温度的值读出来的是小数*/uintread_temp()uint value;uchar low;会影响到18b20的时序init.l8b20();write_l 8b20(0xcc);write_l 8b20(0x44);delay_uint(50);iniU8b20();write_l 8b20(0xcc);write_l 8b20(0xbe); EA = O;low = read_18b2O();value = read_18b20();EA= 1;value «= 8;value = low;value *= 0.625;return value;在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否那么"初始化18b20"跳过64位ROM"启动一次温度转换命令/500us初始化18b20"跳过64位ROM"发出读取暂存器命令读温度低字节"读温度高字节"把温度的高位左移8位"把读出的温度低位放到ValUe的低八位中转换到温度值小数"返回读出的温度带小数/*定时器0初始化程序*/voidtime_init()EA=1;"开总中断TMoD=OX01;定IH器0、定B器1工作方式1ETO=1;开定忖器。中断TRO=1;允许定时器0定时/*志*本寿市*4志*/*独立按处理函sJc:sjjvoidkey()StatiCUCharkcy_new=0,key_old=O,key_value=0;if(key_new0)"按键松开的时候做松手检测if(P2&OxOf)=-OXOf)key_value+;elsekey_value=0;if(key_value>=10)write-eepom();key_value=O;key_new=1;flag_lj_en=O;"关闭连加使能flag_lj_3_en=0;关闭3秒后使能flag_value=0;清零elseif(P2&OxOf)!=OxOf)key_value+;"按键按下的时候elsekey_value=O;if(key_value>=7)key_value=O;key_new=O;flagJj_en=1;"连力口使能zd_break_en=1;"自动退出设置界使能zd_break_value=O;"自动退出设置界变量清零key_can=20;if(key_500nis=1)key-500s=O;zd_break_en=I;"自动退出设置界使能zd_break_value=0;"自动退出设置界变量清零key_new=0;key_old=1;if(key_new-O)&&(key_old-1)"得到kl键值"得到k2键值得到k3键值"得到k4键值switch(P2&OXOf)caseOxOe:key_can=4;break;caseOxOd:key_can=3;break;caseOxOb:key_can=2;break;caseOXO7:key_can=1;break;key_old=key_new;/*含甫*含*志*/*按键.处理数码管显示函数;c*Ji*张*ii*/voidkey_with()if(key_can=4)menu_1+;if(menu_l>=3)menu_l=O;if(menu=0)dis_smgO=smg_dutemperature%1O;取温度的小数显示dis_smgl=smg_dutemperature/IO%10&0x7f;取温度的个位显示dis_smg2=smg_dutemperature/100%10;取温度的十位显示SmgJ=3;if(menu_l=1)dis_smgO=smg_dut_high%10;取小数显示dis_smgl=smg_dut_high/10%10&0x7f;取个位显示dis_smg2=smg_dut_high/100%10;取low十位显示dis_smg3=0x89;SmgJ=4;if(menu_l=2)dis_smgO-smg_dut_low%10;取low小数显示dis.smgl1J-smg_dut_low/10%10&0x7f;取个位显示dis-smg2J-smg_dutjow/I(X)%10;取十位显示dis_smg3=Oxc7;SmgJ=4;if(menu_l=1)"设置高温报警if(key_can=3)if(flag_lj_3_en=0)t_high+;"按键按下未松开自动加三次elset_high+=10;"按键按下未松开自动加三次之后每次自动加10if(Jhigh>990)t_high=990;dis_smgO=smg_dut_high%10;取小数显示dis_smg|I=smg_dut_high/10%10&0x7f;取个位显示dis_smg2=smg_dut_high/100%10;取十位显示dis_smg3=0x89;/Hif(key_can=1)if(flag_lj_3_en=O)t_high-;"按键按下未松开自动加三次elset_high-=10;按键按下未松升自动减三次之后每次自动减10if(t_high<=t_low)t_high=t_low+1;dis_smg0=smg_dut_high%10;取小数显示dis_smgl=smg_dut_high/10%10&0x7f;取个位显示dis_smg2=smg_dut_high/100%10;取十位显示dis_smg3=0x89;/H/write_eepom();Iif(menu_l=2)"设置低温报警if(key_can=3)if(flag_lj_3_en=0)t_low+;elset_low+=10;if(t_low>=t_high)t_low=t_high=1;dis_smglOJ=smg_dult_low%10;取小数显示dis_snigllj=smg_dult_low/10%10&0x7f;取个位显示dis_smg2=smg_dut_low/100%10;取十位显示dis_smg3=0xc7;/Lif(key_can=1)if(flag_lj_3_en=0)t_low;elset_low-=10;if(t_low<=10)t_low=10;dis_smgO=smg_dut_low%10;取小数显示dis_smgl=smg_dut_low/10%10&0x7f;取个位显示dis_smg2=smg_dut_low/100%10;取十位显示dis_smg3=0xc7;/L/write_eeponi();voidclock_h_l()if(temperature<=t_low)(temperature>=t_high)flag_clock=1;Ielseflag_clock=0;beep=1;voidmain()"先读出温度的值"初始化定时器"新的单片机初始单片机内问EEPOMtemperature=read_temp();time_init();read_eepom();if(a_a=Oxff)t_high=300;t_low=IO0;a_a=1;write_ecponi();delay,lms(650);temperature=read_temp();先读出温度的值dis_smg0=smg_dutenperature%10;取温度的小数显示dis_smgl=smg-dutempcrature/10%10&0x7f;取温度的个位显示dis_smg2=smg-dutemperature/100%10;取温度的十位显示While(I)display();"显示函数key();"按键程序if(key_can<10)key_with();"设置报警温度temperature=read_temp();先读出温度的值if(flag_300ms=1)/300ms处理-次温度程序clock_h_l();报警函数if(flag_clock=1)beep二-beep;flag_300ms=0;if(muni-l=0)smg_i=3;dis_smgO=smg_dutemperature%10;取温度的小数显示dis_smgl=smg_dutemperature/10%10&0x7f;取温度的个位显示dis_smg2=smg_dutemperature/100%10;取温度的十位显示if(zd_break_en=1)"自动退出设置界面程序zd_break_value+;每300ms力口一次if(zd_break_value>50)/15秒后自动退出设置界面menu_l=0;zd_break_en=0;zd_break_value=0;J/*定时器0中断效劳程序*米*/voidtimeO_int()interrupt1staticucharvalue;THO=OX3c;TLO=OxbO;/50svalue+;if(value%6=0)flag_300ms二1;"300心value=0;if(flag_lj_en=1)按下按键使能key_time+;if(key_time>=10)/500mskey_time=O;key_5OOnis-1;50OmSflag_value+;if(flag_value>3)flag_value=10;

    注意事项

    本文(基于单片机设计的温度报警系统.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开