收藏 分销(赏)

火警报警系统设计.doc

上传人:天**** 文档编号:2627230 上传时间:2024-06-03 格式:DOC 页数:29 大小:289.50KB
下载 相关 举报
火警报警系统设计.doc_第1页
第1页 / 共29页
火警报警系统设计.doc_第2页
第2页 / 共29页
火警报警系统设计.doc_第3页
第3页 / 共29页
火警报警系统设计.doc_第4页
第4页 / 共29页
火警报警系统设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、绵阳师范学院本科生毕业设计(论文)题 目 火警报警系统设计 专 业 电气工程及其自动化 院 部 机电工程学院 学 号 姓 名 指 导 教 师 答 辩 时 间 二0一六年五月 工作时间: 2015年11月 至2016年5月绵阳师范学院2016届本科毕业设计(论文)火警报警系统设计摘 要:火灾一直都是危害我们人生财产安全的重大的自然灾害之一,随着科技的发展,城市化的建设,发生火灾的隐患也越多。本设计就是针对火灾的报警设计。DS18B20温度传感器可直接输出数字信号到单片机,MQ-2烟雾传感器需要放大电路和模数转换模块ADC0832来处理再将信号输入单片机,AT89C52单片机通过其内设置程序控制整

2、个系统,输出信号给光报警装置和声报警装置,再将数据显现在共阳数码管上,达到对火灾的报警功能。本设计需要注意的是该温度传感器是单线双向通讯,所有在连接上更简单,但在程序的编写上有一定的需要。烟雾传感器则是模拟信号,我们需要模数转换电路将信号进行处理。还有要注意的是数码管上温度和烟雾数据的显现。关键词: MQ-2;DS18B20;单片机;ADC0832;共阳数码管Design of the fire alarm systemUndergraduate: liuzhiguoSupervisor: Peng RenMingAbstract: Fire has always been one of ou

3、r personal and property safety hazards of major natural disasters. With the development of science and technology, Urbanization Construction ,Fire hazards are also more. This design is designed for fire alarm . DS18B20Temperature sensor can be directly output digital signal to the MCU. MQ-2 smoke se

4、nsor needs amplifier and analog-digital conversion module ADC0832 to process the input signal and then microcontroller,AT89C51 MCU through its entire internal control system setup program , Output signal to the light and sound alarm device alarm device, Then the data appear on a total of Yang digita

5、l tube, to the alarm of fire. The design should be noted that the temperature sensor is a single two-way communication, all easier on a connection, but in a certain programming needs. Smoke sensor is an analog signal, we need to amplifier and analog-digital conversion circuit for processing the sign

6、al. Also to be noted is the apparent temperature and smoke on the digital data .Key Words: MQ-2; DS18B20; MCU ; ADC0832 ;7SEG-MPX4-CA-BLUE目录1 绪论11.1 设计研究目的和意义11.2 火警报警系统要求11.3 火灾特性11.4 系统整体方案22 设计硬件设计22.1 单片机简介22.2 单片机最小系统32.3 ADC0832模数转换芯片32.4 温度传感器、烟雾传感器42.4.1温度感器的选择42.4.2烟雾传感器的选择52.5 显示数码管62.5.1数

7、码管简介62.5.2显示电路62.6 按键输入模块63 软件设计73.1 烟雾程序流程图73.2 温度程序流程图8参考文献10致 谢11附录A 系统原理图12附录B 系统程序图13III1 绪论1.1 设计研究目的和意义火灾一直是全世界重大灾害之一。几乎每天都有火灾的发生,随着社会的发展,城市化的建设,火灾的隐患也愈发增多。一旦发生火灾,将对人的生命和财产造成极大的危害。所以在惨重的损失下,人民迫切的需要一种能及时发现火灾的报警装置,火警报警系统就此孕育而生。只有我们及时的发现它才能防止其扩大危害人们的生命财产安全。火警报警系统就是通过各处的传感器监控各处的实际状况,一旦有某项指标超过设定,会

8、传输信号给我们的处理器(也就是单片机)。单片机对信息进行分析处理,发出对应的报警信号(光报警和声报警),达到对火灾的预警效果。因此本设计就是通过自身的专业知识,制作一种简单而实用的火警报警系统,有效的对火灾进行报警。所以本设计具有重大的意义。1.2 火警报警系统要求本设计的要求是:1设计和制作一个火警报警系统。2能够对10000平方米的楼房进行监控。3对明火和暗火进行报警,延时时间不超过1S。4对火警能够进行初步定位。我们设计的就是一个基于单片机的火警报警系统,能对10000平方米的楼房进行监控是不可能的,则我们做的本设计是一个缩小化的不可能真的对其进行监控,如果不这样可能需要温度传感器和烟雾

9、传感器各几百个才行,这样太复杂,制作价格也很很高。则本设计只针对一组传感器,也就是一个温度传感器和一个烟雾传感器。这要一组成功就可以做出更多的。而我们用的DS18B20温度传感器是一种可以并行连接的传感器,所有在做多组的时候,也很方便。烟雾传感器则只需要一个模块转换就行,需要多少个可以用多少模块。这里我们就不做过多的研究。1.3 火灾特性每一场火灾的发生都是要满足一定的条件,才能产生。即要有可燃物和助燃物和达到一定的温度。一般的火灾都会在发生的时候产生一些现象,从最开始的时候会产生一些可燃性的气体,再出现烟雾,如果在空气流畅的地方氧气充足就会完全燃烧,产生明火,温度升高。而在明火出现之前的无明

10、火阴燃阶段是比较长的,会产生大量的烟雾。所烟雾传感器是最早发现火灾的,也是最重要的传感器。所有我们需要的是烟雾和温度传感器的配合来完成。烟雾传感器最先发现火灾,温度传感器确定火灾。这样能最大限度的减小损失。下图为火灾发生的过程图。图1-1火灾过程图1.4 系统整体方案每个完整的报警系统,都是由传感器、控制器、数据处理器和报警模块组成的。系统以单片机为核心控制各传感器和报警模块。当有温度超过设定温度或者烟雾超过设定烟雾值时,会把各自的信号发送给单片机,温度是数字信号,烟雾是模拟信号,但是可以经过模数转换器转换为数字信号。单片机经过对信号的处理,判断火灾是否真的发生,再控制其报警模块报警,即光报警

11、模块发光,声报警模块发出声音。下图为整体系统的框图。图1-2 整体系统框图2 设计硬件设计2.1 单片机简介单片机是本设计的核心,它要接受来自烟雾传感器(温度传感器)的模拟信号(数字信号),还有故障检测信号。并且对两种信号和设定值比较,再控制对应的报警装置。同时还要根据信号显示到数码管上和查询是否有按键按下的信号。而在要实现以上的功能。对单片机的计算速度也有一定要求。在能满足系统的计算速度要求的情况下,我们还要考虑它的价格和外形体积。在保证系统精度和稳定下不提高成本不增大体积,所以我们选用现在运用很广泛的51系列单片机。而其中STC89C52单片机是我们教材中最长用的,同时其开发工具多,容易学

12、习,价格便宜,和适合我们对单片机的要求。STC89C52单片机是我们学习中接触最多的,它是由ATMEL公司生产的,是一种有4K字节的可擦出可编程的只读储存器,有128字节的随机存储器高性能低电压的8位微处理的单芯片微型计算机。这款单片机高性能低消耗,片内有8位的中央处理器和Flash存储单元,可以在各种系统中使用。本身有40个引脚,32个外部I/O端口,2个外部中断,2个16位的可编程的定时器和计数器,2个全双工串行通信端口。2.2 单片机最小系统单片机最小系统,是由复位系统、时钟系统、电源系统这三个部分来实现的。有这三个部分就是单片机的最小系统,能够实现单片机最基本功能的系统。1)复位系统:

13、是对单片机9号引脚加2个机器周期的高电平,即可复位单片机,然后从头开始执行程序;这是单片机自身就带有的程序。2)时钟系统:外接的晶振电路提供晶振频率,作为单片机控制系统的时钟信号;3)电源系统:VCC和GND脚分别接电源正负极,单片机控制系统供电。最小系统如图所示。图2-1 STC89C52单片机最小系统2.3 ADC0832模数转换芯片ADC0832是一种8位分辨率且双通道的转换芯片。它体积小,兼容性强,价格也不贵,所以是现在大流使用的转换芯片。AD0832的特点:8位分辨率;双通道转换;输入输出电平能与TTL(CMOS)兼容;5V电源;输入电压在05V之间;工作的频率为250KHZ;转换时

14、间短,为32微妙;功耗为15mW;有多种封装,8P、15P-DIP、PICC等。图2-2 ADS0832模数转换芯片2.4 温度传感器、烟雾传感器 本设计的报警系统主要是对火灾进行报警,达到早发现早解决的目标。所以需要的就是对早期火灾有针对性的的传感器。就如烟雾传感器器、温度传感器,他们能在火灾处于早期时就发现它。所以在此重点介绍这两种传感器的选择和其特性。而现代的传感器在其工作方式与器件结构上也有很大的差距,在其对被测物体探测时,对所测得的数据的精度和探测速度,探测的范围等都有一定的差别。而如何能稳定准确探测出现场所需要的物理量,就是在我们进行这个检测的首要需要解决的大问题。2.4.1温度感

15、器的选择 一般情况下,用于建筑和工业上的温度传感器分为三类:定温式;差温式;差定温式。而本设计选用的传感器我们要考虑到以下这些因素。 1)对测量的温度是否要记录和报警,是否要远距离传输信号。 2)对测量温度的精度是否有要求。 3)传感器的外形封装是不是适合本设计。 4)其传感测量温度的滞后时间是否也满足要求。 5)测量场所是否对测量温度有影响。6)温度传感器的经济性和使用的方便性。所以我们根据以上的要考虑的因素,决定本设计中的温度传感器选用DS18B20数字温度传感器。DS18B20数字温度传感器的特点是结构简单,接线方式简单,而其封装也有很多类型,根据实地的情况选择不同的封装型号。能使用广泛

16、的电压,3.0-5.5V,的都行,可以直接寄生工作,不需要单独的电源。它与单片机连接时,只需要一根数据线进行双向通讯。支持多点组网功能,可以多个DS18B20并联,实现组网多点测温。不需要外接A/D模块,其可以直接输出数字信号。本传感器的测温范围是-55+125,而当温度在-10+85时,它的精度为正负0.5。其可编程的分辨率为812位,这样分辨率分别为0.5;0.25;0.125;0.0625适应高精度的场合。而DS18B20的内部主要由ROM光刻(64位);温度传感器;温度报警触发器TH和TL(非挥发);配置寄存器四个部分组成。DS18B20的引脚定义:DQ是数字信号的输入/输出端。GND

17、是电源接地。VDD是芯片电源供电的输入端。2.4.2烟雾传感器的选择烟雾传感器大体分为三类:离子式;光电式;气敏式。离子式烟雾传感器是一种技术优良,工作性能稳定的传感器。这类传感器的应用已经很广泛了。各种消防报警系统中都有使用,其性能十分优越,比其两种传感器要好的多。光电式烟雾传感器其内部有一套比较繁杂的光通道,还有红外对管监控。当没有烟雾的时候,接受设备是不会接受到红外反射器的信号的,但是如果有烟雾进入到传感器时,由于各种反射折射的缘故,接受器接受到了红外信号,这时控制系统会通过和设定数值的比较来判断是否发生火灾,超过则会发出报警信号。气敏式烟雾传感器,可以识别气体。主要有接触燃烧式,半导体

18、气敏式和电化学式传感器等。以上传感器中最广泛使用的就是半导体气敏传感器。可以对瓦斯;氟利昂;一氧化碳;酒精等气体进行探测。气敏式中最典型的型号就是MQ-2烟雾传感器。适用很多种气体,包括:液化气;丁烷;丙烷;氢气;酒精;烟雾等。都能对其进行监控。而烟雾是由固体颗粒和一些可燃性气体混合而成的。而只有可燃气体的话,光电式和离子式的都不会有很好的监控效果。所以我们综合以上的条件,进行分析。可采用MQ-2烟雾传感器。本设计我们选用二氧化锡半导体气敏传感器,型号为MQ-2。这型号的传感器是N型半导体表面离子式。需要给一个预热电源才能正常工作。当温度在200300时,氧气会被二氧化锡吸附在表面,使其电子减

19、少,导电性减弱,电阻增加。当有烟雾进入时,晶粒间界出的势垒会受影响,其电阻值会变化。就是利用这点可以把烟雾信号转化为电信号。MQ-2型传感器的特点:对可燃气体有很高的灵敏度,尤其对烷类气体。自身具有很好的长期的稳定性,响应时间短。还有很好的抗干扰能力,可以排除有刺激性气体的干扰。其电路的电压范围很广,24V以下都行,加热电压为5V。MQ-2型传感器的参数:1)回路电压524V。2)取样电阻0.120K。3)加热电压5V加减0.2V。4)加热功率750mW。5)灵敏度以甲烷为例RO(air)/RS(0.1CH4)5。6)响应时间10秒。7)恢复时间30秒。MQ-2的引脚介绍:A1或A2是输出的一

20、端;H是加热接线端;B1或B2是输出的另一端。而MQ-2烟雾传感器输出的模拟信号,我们的单片机不能接受,所有我们需要模数转换模块对其进行转换。这样我们才能直接连接在单片机上。下图是MQ-2模块的原理图。图2-3 MQ-2模块原理图2.5 显示数码管2.5.1数码管简介现在的数码管多分为八段数码管和七段数码管,八段的就是比七段的多了一个小数点。但是数码管的原理都是靠其内部的发光二极管来发光的,通常一个数码管的引脚为10个,显示8字的就需要7个引脚,还有一个小数点也需要一个引脚,而所有内部一共有8个二极管,最后还需要一个公共端,有共阳极的和共阴极的。2.5.2显示电路图2-4 数码管引脚电路在上图

21、温度显示电路中,P1各口与晶体管a、b、c、d、e、f、g、dp连接,P2.4、P2.5、P2.6、P2.7口经过电阻及PNP型三极管与数码管位选各端相连接。其中,之所以我们这里用PNP型三极管,是因为单片机上电时会在各引脚有一个非常短暂的高电位,可能导致数码管误动作,故选择位选各端低电位导通。2.6 按键输入模块根据对系统设计方案的分析来看,我们还需要人工输入来设定温度,因此需要相应的键盘来实现输入。此次应用了独立键盘,分别接在外部中断及定时器中断端口,通过按键来实现中断并运行对应的中断程序。同时需要进行软件消抖。其电路图如下:图2-5 按键电路3 软件设计本设计的是用C语言编写的程序,C语

22、言比起汇编语言来说要简单一些,用函数组成的。结构上也要简明一些,可以分别调用函数模块。同时出错了也方便查找问题,同时也具备汇编语言的一些微操作功能。3.1 烟雾程序流程图本设计的火警报警系统是用MQ-2型号的烟雾传感器。其主要的功能就是对烟雾信号的采集和处理。而MQ-2烟雾传感器是二氧化锡半导体气敏传感器。在其刚刚通电的时间里,传感器是不能进行信号的采集的,它需要一定时间来预热,才能正常工作。所以程序初始化完成后,系统就自动进入监控状态。当烟雾传感器工作在200-300时,二氧化锡可以吸附空气中的氧,在其表面负离子会聚集,使二氧化锡半导体中的电子减少,自身电阻值增大,当有烟雾或者可燃气体时,晶

23、粒间界处的势垒会受烟雾影响,电阻会减小。所以当系统开始时,需要25-30秒的预热时间,烟雾传感器就能正常工作,当有烟雾时,传感器电阻减小,使输出的电压改变,达到报警效果。传感器电阻值与测得的烟雾浓度的关系式:log R=m log C + n 公式(3.1.1)其中m,n都是传感器本身常数 。传感器电阻的计算公式:Rs=(Vc/VRL-1)x RL 公式(3.1.2)其中Vc是回路电压,VRL是4脚和5脚的输出电压,RL是负载电阻。烟雾传感器输出电压的计算公式:U=(R11/R11+Rs)x Vc 公式(3.1.3)其中Vc是回路电压就是1 2脚的电压,U就是4 6脚的输出电压,Rs就是传感器

24、自身电阻。所以我们就可以根据其输出的电压大小来判断其测得的烟雾浓度,从而方便显示在数码管上。图3-1 烟雾程序流程图3.2 温度程序流程图 本设计我们使用的DS18B20温度传感器,因为该传感器是单线双向通讯,所以其上有自身的初始化程序;写入数据的程序;读取数据的程序。我们不一一举出,以下是我们DS18B20温度传感器的主程序。DS18B20的工作协议流程为:初始化-ROM操作指令-存储器操作指令-数据传输。工作时序为:初始化时序,读、写时序。DS18B20温度传感器的信号采集方式要严格的遵守单总线通讯协议。所以为了保证数据的完整不丢失,单总线协议定义的几种信号的类型:复位脉冲;应答脉冲;写0

25、脉冲;写1脉冲;还有读0和读1。初始化序列:通过主机拉低单总线至少480us,产生复位脉冲(TX),在接受(RX)模式。在总线没用工作时,通过上拉电阻把总线拉高,传感器检测到这个上拉信号,则延时15-60us产生应答脉冲。读和写时序:写时序是主机向DS18B20中写数据,读时序是主机读取DS18B20中的数据。写时序时,有两种写法,写“1”或者写“0”。就是主机写入传感器是逻辑1还是逻辑0,这个在自己写程序时选择。只需要注意写时序的时间至少需要60us。而且每两个写时序之间也需要至少1us的恢复时间,不然无法正常写入。写时序都是从主机拉低总线时开始。温度传感器中的初始化,读写时序写好了后还要对

26、其采集到的数据进行处理,也就是要和我们设定的数值比较。所以我们还需要一个按键输入的模块,对其的设定值进行控制更改。图3-2 温度程序流程图参考文献1 李华.MCS一51系列单片机实用接口技术M.北京航空航天大学出版社.31-45.2 张毅坤等.单片微型计算机原理及应用M.西安电子科技大学出版社.2006.21-50.3 潘新民等.微型计算机控制技术M.电子工业科技大学出版社.2003.26-55.4 陈伟.MCS一51系列单片机实用子程序集锦M.清华大学出版社.1993.30-53.5 朱明程等.一氧化碳传感器MGS1100原理及应用电子技术M.1998年第1期.12-32.6 刘迎春.传感器

27、原理设计及应用M.哈尔滨工业大学出社32-54.7 赵负图.数据采集与控制系统M.北京科学技术出社.1987.28-36.8 肖忠祥主编.数据采集原理M.西北工业大学出版社.2003.35-41.9 刘广玉.新型传感器技术及应用M.北京航空航天大学出版社.1989.29-46.10 何立民.单片机实用文集M.北京航空航天大学出版.1993.13-23.11 余成波.传感器与自动检测技术M.高等教育出版社.2004.20-46.致 谢 我在这一毕业设计中,学习到了很多东西,不只是学习到了一些关于本设计的知识,还有学会了一些其他东西。如怎样搜索文献,查找对自己有用的材料,如何组织语句,做一个设计的

28、规范,要注意的地方等等。这让我感触颇深。首先,我觉得做毕业设计是对自己自学能力的一种提高,不会有地方可以抄袭,全靠自己,当然这也离不开老师的诸多指导,没有老师的指导可能要花几倍的时间。要对设计的要求有深入的了解,和独自的查阅大量资料,再利用找到的资料结合自己所学的知识,进行仔细的研究的推敲。这对我们的自主能力有了很大的提高。有了这种研究学习的能力和方法对我们今后的工作也有很大的帮助。可以说是受益匪浅。 其次,就是我们在做本毕业设计的时候也更加的巩固了我们已经学习了的一些专业知识。毕竟这个设计就像我们对整个大学四年的总结。在温习了已知专业知识的前提下,又了解到了本专业在现代的情况和学得了这种自主

29、学习的能力。 最后,就是我要感谢我毕业设计的指导老师彭仁明老师,传授了我扎实的理论知识和丰富的实践动手经验,让我能够顺利的完成我的毕业设计。 附录A 系统原理图附录B 系统程序图#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include #include eeprom52.h/数码管段选定义 0 1 2 3 4 5 6 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0

30、x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /断码/数码管位选定义uchar code smg_we=0x7f,0xbf,0xdf,0xef;uchar dis_smg8 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;sbit CS=P32;/CS定义为P3口的第2位脚,连接ADC0832CS脚 PCBsbit SCL=P33;/SCL定义为P3口的第3位脚,连接ADC0832SCL脚sbit DO=P34;/DO定义为P3口的第4位脚,连接ADC0832DO脚sbit dq =

31、 P35;/18b20 IO口的定义sbit beep = P36; /蜂鸣器IO口定义uint temperature,s_temp ; /温度的变量uchar dengji,s_dengji; /烟物等级uchar shoudong; /手动报警键bit flag_300ms = 1;uchar key_can; /按键值的变量uchar menu_1; /菜单设计的变量/*1ms延时函数*/void delay_1ms(uint q) uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*小延时函数*/void delay_uint(uint q) whil

32、e(q-);/*把数据保存到单片机内部eeprom中*/void write_eeprom()SectorErase(0x2000);byte_write(0x2000, s_temp);byte_write(0x2001, s_dengji);byte_write(0x2060, a_a);/*把数据从单片机内部eeprom中读出来*/void read_eeprom()s_temp = byte_read(0x2000);s_dengji = byte_read(0x2001);a_a = byte_read(0x2060);/*开机自检eeprom初始化*/void init_eepro

33、m() read_eeprom();/先读if(a_a != 1)/新的单片机初始单片机内问eeproms_temp = 50;s_dengji = 5;a_a = 1;write_eeprom(); /保存数据/*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿

34、高 释放总线/*写18b20内的数据*/void write_18b20(uchar dat)uchar i;for(i=0;i= 1;/*读取18b20内的数据*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /读数据是低位开始dq = 1; /释放总线if(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*/uint read_temp()uint value;uchar low; /在读

35、取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0x44); /启动一次温度转换命令delay_uint(50); /500usinit_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0xbe); /发出读取暂存器命令EA = 0;low = read_18b20(); /读温度低字节value = read_18b20(); /读温度高字节EA = 1;value =

36、 8; /把温度的高位左移8位value |= low; /把读出的温度低位放到value的低八位中value *= 0.0625; /转换到温度值 return value; /返回读出的温度 /*读数模转换数据*/请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的unsigned char ad0832read(bit SGL,bit ODD)unsigned char i=0,value=0,value1=0;SCL=0;DO=1;CS=0;/开始SCL=1;/第一个上升沿SCL=0;DO=SGL;SCL=1; /第二个上

37、升沿SCL=0;DO=ODD;SCL=1; /第三个上升沿SCL=0; /第三个下降沿DO=1;for(i=0;i8;i+)SCL=1;SCL=0; /开始从第四个下降沿接收数据value=1;if(DO)value+;for(i=0;i=1;if(DO)value1+=0x80;SCL=1;SCL=0;CS=1;SCL=1;if(value=value1)/与校验数据比较,正确就返回数据,否则返回0return value;return 0;/*数码显示函数*/void display()uchar i;P1 = 0xff; /消隐 P2 = smg_wei; /位选P1 = dis_smg

38、i; /段选 i +;if(i = 4)/4位数码管显示i = 0; /*定时器0初始化程序*/void time_init() EA = 1; /开总中断TMOD = 0X01; /定时器0、定时器1工作方式1ET0 = 1; /开定时器0中断 TR0 = 1; /允许定时器0定时/*独立按键程序*/uchar key_can; /按键值void key() /独立按键程序static uchar key_new;key_can = 20; /按键值还原P2 |= 0x0f;if(P2 & 0x0f) != 0x0f)/按键按下delay_1ms(1); /按键消抖动if(P2 & 0x0f

39、) != 0x0f) & (key_new = 1)/确认是按键按下key_new = 0;switch(P2 & 0x0f)case 0x0e: key_can = 4; break; /得到k1键值case 0x0d: key_can = 3; break; /得到k2键值case 0x0b: key_can = 2; break; /得到k3键值case 0x07: key_can = 1; break; /得到k4键值else /按键松开key_new = 1;/*按键处理数码管显示函数*/void key_with()if(key_can = 4) /紧急报警键 手动报警if(menu_1 = 0)shoudong = 1;if(key_can = 1) /设置键menu_1 +;if(menu_1 = 3)menu_1 = 0;if(menu_1 = 0)if(key_can = 2) | (key_can = 3)shoudong = 0; /取消手动报警if(menu_1 = 1)/设置高温报警if(key_can = 2)s_temp + ;/高温报警值加1 if(s_temp 99)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服