红外热释防盗报警器的设计和实现 通信技术专业

上传人:文*** 文档编号:63250811 上传时间:2022-03-17 格式:DOC 页数:42 大小:969.50KB
返回 下载 相关 举报
红外热释防盗报警器的设计和实现 通信技术专业_第1页
第1页 / 共42页
红外热释防盗报警器的设计和实现 通信技术专业_第2页
第2页 / 共42页
红外热释防盗报警器的设计和实现 通信技术专业_第3页
第3页 / 共42页
点击查看更多>>
资源描述
论文(设计)题目:红外热释防盗报警器的设计摘 要现如今社会在飞速地发展,促进了各种高新技术治疗的有效融合,使得人们的生活发生了翻天覆地的变化。有些人喜欢购置很多相应的高科技产品,因此对于人们的生活来说,高科技产品的应用也开始扮演着重要的角色。所以,他们格外关注环境的有关安全性,尤其是家庭住房的安全性,他们非常期待相应的高科技产品的到来。对于城市来说,他们的社区都有相应的安保人员,然而很多农村是没有的。所以,在住房里设置报警系统能够确保人们的安全。本设计所做的内容就是通过热释电红外传感器来实施报警与监测。这种传感器有很多优点,例如稳定的防盗性能,便于安装,成本很低,制造十分简单,安全可靠,灵敏度很高以及很强的抗干扰能力。另外,可以安装地很隐蔽,不易被盗贼察觉,除此以外可以多人管理。本设计主要涉及软件与硬件两个部分:对于硬件部分主要有LED控制,驱动器执行报警,红外探针以及单芯片控制这四个模块。相应的处理器所采用的是51系列单片机STC89C52,使用C语言编写相应的程序。关键字:热释电红外传感器,STC89C52,报警器一、摘要2二、设计任务分析1三、技术方案的详细设计(实施)23.1本系统的设计方案23.1.1系统概述23.2硬件电路设计23.2.1红外感应部分33.3单片机部分83.3.1 STC89C52单片机简介83.3.2 单片机最小系统93.3.3按键控制电路103.3.4指示灯和报警电路113.4软件的程序实现113.4.1主程序工作流程图113.5 报警判断程序133.6 程序编写与调试133.7硬件调试和调试中遇到的问题20四、总结评价20致谢21参考文献21附件一:总体原理图设计22附件二:实物图23附件三:程序源代码23一、引言随着社会的不断进步,促进了科技的进一步发展,使得电子电器行业飞速发展,人们的生活质量也被大大改善。大多数家庭或多或少地拥有着很多贵重物品以及高端家电。因此,盗窃行为就随之产生了。很多家庭对自己的财产不太警觉,所以使得盗窃现象越来越严重。现如今,很多家庭已经开始意识到了财产安全问题。尽管报警系统能够解决上述的盗窃问题。然而,在我国市场中,很多报警系统都是专门为那些重要的机构服务的。因此其相应的价格也是十分昂贵的,普通百姓无法承受。倘若能够发明一个智能的,可靠的,成本很低的报警系统,就会在很大程度上保证人们的私人财产的安全。由于红外光属于不可见光,另外其隐蔽性也很好,因此其经常用在相应的警示与防盗装置中。该设计主要涉及两种电路:硬件与软件。对于硬件部分,主要是由单片控制以及红外传感这两个部分构成的。整个电路系统是由以下几个部分构成的,即单片机控制电路,传感器模块以及电源部分,其中,单片机是由以下几个子模块构成的,即报警电路,指示电路以及最小系统等。相应的热释电红外传感器负责主要的工作,利用单片机进行信息采集,处理数据,传输数据,最终输送到相应的报警模块。本设计的核心是微控制器。对于单片机控制系统来说,其也有硬件与软件两个部分。对于硬件部分主要有,外围应用电路,输入与输出设备以及单片微计算机。这种软件是通过编写程序对输入信号进行控制的。二、设计任务分析1.本设计的设计内容主要是硬件和软件这两个部分。该模块主要有以下几个部分组成,即报警提示,按钮设置以及数据采集等。2.相应的红外报警系统是由以下几个部分组成的,即软件,LED指示电路,单片机控制电路,蜂鸣器以及热释电红外传感器。3.该系统可以实现下述一些功能:倘若有人外出,则将报警系统设置成相应的防卫状态,此时探测器就进行有关工作,只要有人闯进,相应的传感器就能够感应到,这时位于监测点中的红外探头就会辐射出相应的红外光谱,之后在利用相应的红外热电模块将其转变为电信号,随后向STC89C52微控制器发送TTL电平。经由单片机处理以后,就会启动警报电路,从而发出相应的警笛声。三、技术方案的详细设计(实施)3.1本系统的设计方案3.1.1系统概述1.系统设计简介该系统使用的传感器有很多优点,例如稳定的防盗性能,便于安装,成本很低,制造十分简单,安全可靠,灵敏度很高以及很强的抗干扰能力。另外,可以安装地很隐蔽,不易被盗贼察觉,人们操作也很简单。通常情况下,通过相应的双元件传感器来检测正在移动的人。在其内部存在两个反相连接的敏感元件,倘若人们处于静止状态时,这两个敏感元件就会互相抵消。但是只要当人体稍微移动,就会造成两个敏感元件极化不同,另外其输出的净电压也不为零,这样就能够检测人体是否在移动。本设计的设计内容主要是硬件和软件这两个部分。该模块主要有以下几个部分组成,即报警提示,按钮控制以及数据采集等。相应的电路结构由以下几个部分构成,即LED指示灯,单片机控制电路,蜂鸣器以及热释电红外传感器。3.2硬件电路设计该设计的设计内容是硬件与软件部分。:该设计主要包括以下三大系统,即报警系统、STC89C52单片机以及红外传感部分,相应的设计框图见图3-1: 电源开关红外感应 STC89C52 单片机复位电路LED指示灯报警电路按键控制 图3-1 总体设计框图该处理器所选择的是51系列这种单片机里相应的STC89C52芯片。相应的系统软件控制整个系统的工作。位于监测点上的红外探头能够把相应的红外光谱通过红外热电模块转换成电信号,将TTL电平发送到STC89C52单片机。然后单片机将查询,识别以及判断相应的信息,随后输出相应的入侵报警的控制信号,最后报警指示灯与蜂鸣器发出警报。3.2.1红外传感部分3.2.1.1 电源模块该系统的额定电压是4.5V,因此只需要将三个1.5V的干电池连接即可,或者是用电脑与充电宝提供电源,在最后将其和电源模块的接口相连接。3.2.1.2 热释电传感器这种传感器(以下简称 “PIR”)是于上世纪八十年代研发出来的,其是一个十分灵敏的探测器。其无需和人体接触就能检测到相应的红外能量,另外还能够转换成对应的电压信号并输出。对该电压信号进行放大,能够驱动所有的控制电路,譬如自动观察、防盗火警以及控制电源开关等,由人体辐射出来的红外波长通常是910-um,而相应的检测元件波长通常在0.220-m之间。在传感器的顶部还设置了具有滤光镜的一个窗口。其能够通过的光的波长范围是710m,和人体辐射出来的红外光的波长很吻合,因此能用于检测人体的辐射。热释电红外传感器是系统的核心,仅仅它能够感知人体辐射出来的红外。详见图3-2。 图3-2热释感应传感器3.2.1.3 菲涅耳透镜 该透镜好比是传感器中的“玻璃”。其和人的眼睛有着一样的功能。因此能不能正确地进行使用直接影响其使用功能的发挥。不合理的操作与使用会使得开发人员与用户对其失去信心。其能够实现把检测到的相应的红外线全部输送到传感器中。其有着各种各样的焦距,因此监视范围也很广泛。监视的范围越大,效果越好。详见图3-3.图3-3 菲涅耳透镜3.2.1.4 BISS0001芯片简介该芯片是用来处理相应的传感信号的集成电路。该芯片用来处理传感器发送的信号,因此它的静态电流很小,其工作电压也很小在3V-5V之间。如果电压是5V ,就会输出10MA的电流。其含有少量的外围元件以及PIR,因此产生了无源PIR。其通常用在自我控制以及安全等领域。其有16个引脚的有关集成模块。芯片的内部框图见图3-4。表1为相应的引脚功能。 图3-4 BISS0001内部框图引脚名称I/O功能说明1AI触发选择是可重复还是不可重复的。如果A值为“1”,说明可以重复触发;否则就为不可重复触发。2VOO对输出信号进行控制。以VS为起点,倘若Vo输出从低电平转换成高电平,则是有效触发。如果相应的输出延迟的时间Tx外部,另外VS没有上跳,那么Vo将一直处于低状态。3RR1-相应的输出延迟时间Tx的调节端4RC1-相应的输出延迟时间Tx的调节端5RC2-相应的触发封锁时间Ti的调节端6RR2-相应的触发封锁时间Ti的调节端7VSS-其是工作电源的负端,通常接的是0V8VRFI复位输入与参考电压。一般情况下,与VCC相连,当其为“0”时,能够对定时器进行复位。9VCI其是触发禁止的一端。如果Vc VR(VR0.2VDD),那么就能够触发10IB-利用RB将运算放大器偏置电流设定端子和VSS端子相连接,相应的RB值为1M。11VCC-对应的是工作电源的正端,电压范围是35V122OUTO第二级运算放大器对应的输出端132IN-I第二级运算放大器对应的反相输入端141IN+I第一级运算放大器对应的同相输入端151IN-I第一级运算放大器对应的反相输入端161OUTO第一级运算放大器对应的输出端 表1:管脚说明图从上图中我们能够得到,BISS0001由以下几个部分构成的数模混合ASIC,即参考时间,延迟时间计时器,状态控制器,电压比较器以及运算放大器。其能够用在很多延迟控制器与传感器中。在实际应用中,相应的运算放大器OP1能够产生传感信号并对电路进行预处理从而放大信号。接着,其又和OP2相耦合,进行第二级信号放大。另外,当DC电位升至和VM相等后,对其进行监测,这样就能触发信号Vs。因为VL0.3VDD与VH0.7VDD,因此当VDD=5V时,就能够很好地抑制住在1V范围之内的噪声的影响,另外能够使得系统的可靠性提升。对于COP3为条件比较器,如果Vc VR,那么其将输出高电平,随后进入一个延迟时段。倘若A和“0”电平相连接,那么在相应的Tx时间段内,V2的变化可忽略,一直到该时间断结束为止,这就是不可重复触发。在这个时间段结束以后,Vo将要跳到低电平,与此同时,其将要开启锁定时间这一计时器,随后进入Ti这一锁定时间段。在负载切换期间形成的所有干扰都能被很好地约束,这得益于在Ti时间内,Vo都无法跳转到高电平。即使V2发生改变。如果可重复触发模式中出现的波形是处于Vo=“0”,A =“0”的波形,那么信号Vs将无法触发Vo,使其进入激活状态。当波形是处于Vc =“1”,A =“1”,这时,信号Vs能够反复地触发Vo维持在激活状态。若在Tx的时段中,这种Vo信号能够一直保持有效果。同时,如果上述的Vs信号发生跳跃,那么从Vs信号开始转换的时间算起,Vo信号能够保持Tx周期;假如信号Vs一直是“1”,那样的话,Vo信号能够持续处于活动状态,假如信号Vs一直是“0”,则Tx周期之后Vo信号处于无效状态。在这种情况下,在Ti时间期间,Vo都不会被触发激活,即使Vs发生改变。3.2.1.5 信号采集和处理模块 图3-5信号处理模块图3-6实物图 这种电路能够把由人体辐射出来的红外线变成电信号。前置放大器OP1将热电红外检测2引线的输入放大,与相应的运算放大器OP2相耦合,这可以放大C4的第二级。在COP1以及COP2这两个电压比较器产生相应的双向鉴别器以后,检查有效触发信号并开始延迟时间。定时器在产生输出信号之后,把这种输出信号经过R3处理传送至MCU。这种延迟时间能够用R12调节。如果在延迟时间期间,Vs信号发生跳起,那么从Vs信号跳起的时间开始,Vo将保持一会儿。这样将让上述电路中的电容能够有效地掌控芯片。假使Vs信号一直处于高电平,电路里面的定时器能够把信号用P10送至微控制器再处理。基于各种距离的需求,R13是可以调节的。最长调整距离为7m。我们从图中看出,BISS0001的1引脚与有跳线和高电平相接,假如在延迟期间,人体处于这种有效感应距离中,那电路的输出可以维持高位。上述电路是一种可触发的电路模式。3.3 MCU部分3.3.1 STC89C52单片机简介 STC89C52属于一种特殊的微控制器的范畴,它的功耗非常低,性能十分优越,它的系统内可编程闪存的大小是8K。它的制造途径是具备高密度性质的存储器,和市场上的80C51引脚等基本参数非常兼容。存储器的编程过程主要是在片上闪存中实现。当然,它在传统编程器中的应用也非常广泛。对于STC89C52而言,它所使用的CPU是8位的,在不同的嵌入式控制应用形式上具有了较高的灵活性,它的解决效率也较高。从 STC89C52的实际性能可以看出:所使用的Flash的字节是8k的,它内部所配备的RAM的字节是256,系统的I / O线是32位的,使用的定时器是属于看门狗定时器的范畴,数据指针的总数量是2个, 16位定时器/计数器的总数量是3个。而且这种单片机能够保证0Hz静态逻辑运算功能的实现。对于空闲模式而言,CPU不再继续运行,此时的RAM却会继续工作。当然,串行端口等零件也不会停止工作。而对于掉电保护模式来说,系统很容易将RAM保存下来,并将振荡器完全冻结起来,系统也会终止所有微控制器的工作,硬件复位时在进行恢复。此模块可以在中心区域置入对应的程序代码,与子模块(键盘控制以及复位电路等)形成较好的连接。3.3.2 MCU最小系统 在MCU运行的过程中,使用的最小的系统是基本电路。 图3-7信号处理模块 在这样的最小系统中,不仅包含了一定数量的单芯片,也同时包含了另外两种形式的电路,其一是复位电路,其二是时钟电路。单片机运行时的电压始终保持在4V以上和5.5V以下,总是要将5V直流电源施加给外部。就它的实际连接方法而言,可以概括为:电源地与20引脚VSS紧密地连接在一起,正5V与40引脚VCC完美地连接在一起。复位电路的实际作用是对微控制器实际状态进行检查,同时保证了微控制器的启动工作。MCU一旦上电,则将出现对应的复位信号,立即启动了MCU,进而记录下对应的初始工作状态。如果外部环境运行了MCU,则重新执行程序。一般来说,自动复位功能的实现过程要么是上电,要么是通过手动复位的途径来实现。时钟电路一旦运行,则高电平被RESET端子连续提供之后,立刻实现MCU的复位。时钟电路类似于单片机核心怒分,保证了单片机的运行节奏。时钟电路属于振荡电路的范畴,对于微控制器来说,可以发挥正弦波信号供应的作用,进而保障了执行速度的有效控制。 XTAL1对应的内容是反相放大器输入,而输出所对应的部件是XTAL2。若施用的器件是外部时钟源,不要将XTAL2连接上去。因为6个状态循环存在于机器周期中,它们分别对应了2个振荡循环,故振荡循环的总数量是12个。3.3.3按键控制电路 布防按钮一旦被按下,将在非常短的时间范围内处于监控状态。人靠近它的时候,发射的信号立即被热释电红外线所感应,MCU收到它传送的信号并报警。在紧急的情况下,蜂鸣器会开始报警。如图3-8所示: 图3-8按键部分3.3.4指示灯和报警电路I / O会逐渐把高低两种电平输出。 蜂鸣器的一端和LED连接,另一端连接于P23。如果三极管达到了饱和状态,则立即驱动了蜂鸣器。图3-9指示灯及其报警电路示意图3.4软件的程序实现3.4.1主程序工作流程图 图3-10展示了系统主程序对应的工作流程图:开始布防按键按下倒计时结束15秒倒计时开始检测到有无信号蜂鸣器报警,发光二级管闪烁紧急按键按下YYN蜂鸣器报警结束 图3-10主程序工作流程示意图3.5 报警判断程序 脉冲信号一旦被成功发送,则意味着监控区域中出现了某个人,那么声光报警立即启动,程序开始循环运行。/*红外线报警处理*/ 3.6 程序编写与调试3.6.1 Keil编译器软件简介Keil C51的研发公司是美国Keil Software,它所使用的C语言具有较强大的性能,结构性十分明显。而且,此软件的使用过程十分简单,它的内部包含了大量的库函数,在集成开发调试功能的发挥上具有显著的优势。它在目标代码效率的生成上具有较高的效率,且它们的汇编代码都显得十分紧凑。本文将系统地说明Keil C51开发系统的运行原理等。图15 C51工具包整体结构示意图从图3.1可以看出, C51 for Windows主要使用的集成开发环境是uVision,而for DOS所对应的是Ishell。它们能够实现对全部流程的系统化编辑,也可以实现连接功能,对整个系统的调试以及仿真起到了巨大的作用。首先通过C51的使用来促进后期A51编译器编译功能的实现。目标文件的形式可以是生成库文件,当然也能被作为绝对目标文件(.ABS)的形式出现。通过OH51转换技术来实现ABS文件向Hex文件的成功转换,为行源代码级的调试奠定基础,。51单片机研发中所使用的最流行的变异软件当属3.6Keil。与Keil技术相关的文献非常多,我们在本课题中仅仅说明了它的全部编译过程,接着使用较少的时间来实现对已经开发的Easy 51DP-2进行使用。而就Keil这非常全面的程序而言,由于其始终都通过工程创建的途径来实现的,因此它所对应的文件种类有多个,常见的不仅包括了*.c文件,也同时包括了*.h文件等。但从它的函数内容来看,非常具有单一性,即单纯地存在main()函数。而对于其他类型的文件来说,添加的形式无非是#include头文件。Keil软件界面出现之后,将会出现上次已经打开的工程,实现自动加载的功能。图16 Keil软件主界面示意图 用鼠标点击Project-,然后新建一个新项目,或者也可以打开一个已经创建的项目。图17 Keil软件启动新工程界面示意图出现新的页面之后,确定项目的实际保存路径。然后用鼠标单击“保存”按钮,显示如图18所示的内容。接着,在选择板上确定MCU型号,即特定的型号是Atmel STC89C52。图18微控制器具体类型 将全部的过程设计之后,软件界面上会出现一条内容,如图19所示。在这个时候,我们必须单击 “否”这个按钮。 (与STARTUP.A51有关的更加详细的聂荣,可以阅读其他的文献与资料)图19 8051上电初始化程序在工程中的添设示意图 至此,空51工程就成功创建了。在本项目内部增添相关的程序代码。通过文件新建的方式来实现对空文本框的创建。接着,把自己的代码输入到系统中。在保存的过程中必须强调一点:若程序的形式是由C语言编写而得到的,文件名的格式是* .c,但是若程序的编写是由外汇来实现编写功能的,那么可以确定文件的格式是* .asm。 因此,工程的创建工作就此完成,同时创建了一串程序代码,下面我们将要完成的工作是编译,还要把相关的程序代码放入工程中。 在这以后,把已经确定的程序放入项目里面,然后切换到键Project Workspace页面,鼠标单击Source Group 1按钮与图中的按钮,出现指定的对话框。打开之前已经确定的文件路径,成功添加此程序。图20 添设文件至指定工程然后对已经输入的代码进行编译,用鼠标对工具栏中进行单击,出现相应按钮。接着,Keil会出现这些提示:在这里,“”首先“-0错误,0警告。”的含义是:项目编译的过程中保持0警告以及0错误的状态。对项目进行创建的过程中,HEX文件的默认状态是不生成的,我们应该按照如下内容进行编译:切换到项目工作区,用鼠标对目标1这一界面进行右击,出现“目标1的选项目标1”以后,鼠标再次单击。然后单击“输出”按钮,选中图中出现的多选框,鼠标单击“确定”按钮。接着,用鼠标对Recompile进行单击,此时会出现“从”first“.”对话框,意味hex文件的创设, 即生成了HEX文件。图21 生成HEX文件示意图3.6.3 使用Debug进行调试 Keil中的调试性能十分强大,能够实现对C程序反汇编代码的全面显示,也能够对代码的实际运行时间进行准确地计算,能够将具体变量全部显示到程序中,也能够通过调试工具的使用来实现对单片机程序的系统化编写。图22 调试前设置窗口示意图鼠标单击,然后显示屏上将出现图22中的界面,将页面切换到Target一栏,对要使用的晶体频率进行合理地设计。除此以外的其他参数,不需要变动。这些工作全部完成后,可用鼠标进行单击,桌面显示如图23中的调试界面 图23 Keil调试界面示意图点击里面的工具按钮,然后实现调试功能。而且,调试功能的实现还可以通过点击“查看”里面对应的3个对应符号。从图24可以看出,“Disassembly Window”的信息是对C文件反汇编程序的全面显示; 而“监视和调用堆栈窗口”的显示内容,我们可以通过操作程序系统来得到它的相应变量。 “Memory Window”状态栏中的信息是对内存地址值的说明。图24 典型调试工具示意图四、总结评价本设计对以单芯片为基础的热释电智能防盗报警器技术展开了详细的研究。STC89C52单片机是防盗报警器常用的工作处理器,它可以和热释电红色传感器之间形成很好的外部连接。目前来看,它作为一种被动红外探测器,极具新颖性,可以通过非接触手段来实现对人体中所发出的红外辐射的探测,进而实现向特殊电信号输出的有效转换,不管是在红外光的抑制上,还是在减少可见光的干扰上,都发挥了极大的作用。一般而言,通传感器可以保证低电平的输出。在检测范围内,若低电平增加,则增加后的高电平将以MCU外部触发信号处理的形式,实现向MCU的输入。通过内部软件编程的方式,MCU可以保证控制信号的输出,由此通过对声光报警电路的驱动来实现报警功能。从报警器的工作原理来看,它的操作过程十分简单,极具灵活性,安装方式也不复杂,且同时具有较小的误报率。随着人们生活质量的改善,报警装置技术的改进与全民应用,将为人们的日常工作提供一定的安全保障。致谢本设计对以单芯片为基础的热释电智能防盗报警器技术的详细研究。STC89C52单片机是防盗报警器常用的工作处理器,它可以和热释电红色传感器之间形成很好的外部连接。目前来看,它作为一种被动红外探测器,极具新颖性,可以通过非接触手段来实现对人体中所发出的红外辐射的探测,进而实现向特殊电信号输出的有效转换,不管是在红外光的抑制上,还是在减少可见光的干扰上,都发挥了极大的作用。一般而言,通传感器可以保证低电平的输出。在检测范围内,若低电平增加,则增加后的高电平将以MCU外部触发信号处理的形式,实现向MCU的输入。通过内部软件编程的方式,MCU可以保证控制信号的输出,由此通过对声光报警电路的驱动来实现报警功能。从报警器的工作原理来看,它的操作过程十分简单,极具灵活性,安装方式也不复杂,且同时具有较小的误报率。随着人们生活质量的改善,报警装置技术的改进与全民应用,将为人们的日常工作提供一定的安全保障。本篇论文,得以顺利完成,离不开导师的悉心指导,无论是在论文选题方面,还是在论文构思方面,我的指导老师,都给予了我很多建设性的意见,在此表示诚挚的谢意。除此之外,在此感谢在学习和生活中,帮助过我的各位同学,是你们的不断支持和鼓励,帮助我完成学业。另外,我也要感谢我的任课老师,以及给予我莫大支持的海峰同学。感谢他们在学习中给予我的支持和帮助。由于时间因素,以及本人的专业能力有限,故此,本篇论文,尚存在某些不足之处,在此欢迎各位老师进行批评指正!参考文献 1胡萍.串口通信的红外报警器的研制J.计算机与现代化,2010(10):15-16.2唐德琴.电子温度测量仪器技术发展战略研究J.电子科学技术,2009,27(1):1-83李行善.基于串口组件的体系结构J.电子串口与仪器学报,2010(08):15-16.4姜道连等.用于AT89C51设计红外报警器的设计与制作J.国外电子元器件,2010(12):31-34.5冯国进嵌入式Linux驱动程序设计从入f-J至U精通D田北京:清华大学出版社,20086蔡文斋. 专业级串口调试器设计. 现代电子技术, 2010.7熊如贵.串口通信感应装置J.电子制作,2009(6):23-31.8 时德钢等.基于串口通信的红外报警器的研究J.计算机测量与控制,2009,10(7):480-482.附件一:总体原理图设计附件三:程序源代码#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535/ 红外热释电传感器 平时为0 有输出为1sbit beep = P23; /蜂鸣器定义sbit red = P22; /红色发光二极管定义sbit green = P21; /绿色发光二极管定义sbit yellow = P20; /黄色发光二极管定义sbit hw = P13; /红外热释传感器定义bit flag_300ms = 0;uchar flag_alarm ; /报警标志位uchar flag_bufang ; /布防标志位uchar flag_bufang_en ; /布防标志位使能uint flag_value; /用做定时器的变量/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*独立按键程序*/uchar key_can; /按键值void key() /独立按键程序static uchar key_new;key_can = 20; /按键值还原P1 |= 0x07;if(P1 & 0x07) != 0x07)/按键按下delay_1ms(1); /按键消抖动if(P1 & 0x07) != 0x07) & (key_new = 1)/确认是按键按下key_new = 0;switch(P1 & 0x07)case 0x06: key_can = 1; break; /得到按键值 case 0x05: key_can = 2; break; /得到按键值 case 0x03: key_can = 3; break; /得到按键值 else /按键松开key_new = 1;/*对应不同按键处理*/ void key_with()if(key_can = 1) /按键紧急报警flag_alarm = 1; /报警标志位 ; if(key_can = 2) /布防按键flag_bufang_en = 1;if(key_can = 3) /取消报警 把变量清零flag_alarm = 0; flag_bufang = 0; flag_bufang_en = 0;flag_value = 0;beep = 1;red = 1; /关闭红灯green = 1; /关闭绿灯yellow = 1; /关闭黄灯 /*定时器0初始化程序*/void time_init() EA = 1; /开总中断TMOD = 0X01; /定时器0工作方式1ET0 = 1; /开定时器0中断 TR0 = 1; /允许定时器0定时/*红外报警处理*/ void hongwai_dis()if(flag_bufang_en = 1) /准备开始布防green = green; /绿灯闪 if(flag_bufang = 1) /确认布防green = 0; /如果延时布防成功 绿灯长亮if(hw = 1) /红外有输出flag_alarm = 1;if(flag_alarm = 1) /报警red = red; /红灯报警beep = beep; /蜂鸣器报警/*主程序*/ void main()time_init(); /定时器初始化程序beep = 0; /开机叫一声 delay_1ms(200);P0 = P1 = P2 = P3 = 0xff; /初始化单片机IO口为高电平while(1)key(); yellow = hw; /红外热释电指示灯 有输出就亮黄灯if(key_can = 400) /20秒flag_bufang = 1;flag_bufang_en = 0;flag_value = 0;42
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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