单片机设计报告 红外热释电家庭防盗报警器
基于单片机的热释电红外报警器设计

基于51单片机的热释电红外报警器设计前言随着社会发展进步,人们的私有财产越来越丰富,自我保护意识也越发强烈。
这对防盗措施和设备提出了新的要求。
本产品就是为了满足预防入室抢劫、盗窃等意外事件而开发的报警设备。
目前市场上比较常见的家庭防盗报警系统有:压力触发式防盗报警器、开关电子防盗报警器和压力遮光触发式防盗报警器等。
但它们都存在一些缺点:(1)压力触发式防盗报警器由于压力板安装在垫子内,当主机停止工作,很容易失报和误报,其可靠性低。
(2)开关式电子防盗报警器一般只有一个定点,有效范围小,而且各种开关也容易损坏,失报和误报率高,不可靠。
(3)遮光式触发防盗报警器在受到太阳光照射时就会引起误报,同时如果遮住了光也会引误报,所以这种报警器的可靠性也不高。
而本产品设计采用热释电红外人体感应模块,其制作简单、成本低、性能稳定、抗干扰能力强、灵敏度高、安全可靠。
采用电池供电,便于移动,能安装在比较隐蔽的地方,不容易被发现。
克服了传统的一些报警器的弱点,具有较强的使用和推广价值。
设计任务与要求该产品主要包括硬件设计和软件设计两个部分。
硬件部分分为:单片机最小系统、热释电红外人体感应模块、声光报警电路、液晶显示电路、控制按键电路、红外遥控信号接收电路和电源电路。
软件部分分为:系统初始化函数、按键扫描函数、红外控制信号处理函数、报警过程处理函数几大功能模块,还有一些功能函数配合这几大功能模块,以实现系统的功能。
产品在硬件和软件的配合工作下,通过按键或红外遥控器设置好工作状态后,报警器开始工作。
在探测范围内,如果有人活动则发出声光报警;没有人活动产品不发出声光报警,液晶1602显示报警器的工作状态。
产品要求体积尽量小,容易安装,采用电池供电。
热释电人体探测模块目前,市场上热释电红外人体感应模块非常多,且技术成熟,本产品中热释电红外人体感应模块的型号是HC-SR501。
它是基于红外线技术的自动控制模块,采用德国原装LHI778探头(热释电红外传感器)设计,灵敏度高,可靠性强,超低压电压工作模式,广泛应用于各类自动感应电器设备,尤其是电池供电的产品。
毕业设计—基于单片机的红外防盗报警系统的设计(完整)

当时主要采用的手段是声控报警。罪犯撬玻璃的声音,砸展柜的声音传到了值班室。值班人员判断出罪犯在行窃,及时报告了领导和 有关部门,组织保卫人员和警力将罪犯包围后将其擒获。
2.2设计内容及要求4
2.3相关硬件介绍4
2.3.1常见的几种红外传感器介绍5
2.3.2热释红外传感器的原理6
2.3.3热释电红外传感器原理特性7
2.3.4热释电红外传感器的选定7
2.3.5AT89C51单片机的概述8
2.3.6AT89C51单片机的引脚分配10
第三章防盗报警系统总体方案设计12
3.1防盗报警系统总体设计思路12
关键词:单片机;红外传感器;信号接收;报警电路
The Design ofAnti-theftAlarm
Abstract
With the people's living standards greatly improved , the protection of people's growing awareness of the anti-theft alarm system fully reflects the value of its application. This design is for the family of electronic security systems designed to meet the needs of modern residential burglar.
基于单片机控制的红外报警器的设计_毕业设计

基于单片机控制的红外报警器的设计_毕业设计毕业设计题目:基于单片机控制的红外报警器的设计一.设计背景和意义随着社会的不断发展,人们越来越注重家庭和财产的安全。
红外报警器作为一种常见的安防设备,能够及时发现室内外的异常情况并进行报警,起到了一定的防护作用。
本毕业设计旨在基于单片机控制,设计一个能够准确、快速并稳定地检测室内外空间的红外报警器,为人们提供更加安全的居住环境。
二.系统设计方案红外报警系统通常有红外传感器、控制电路和报警器三部分组成。
本设计方案将采用单片机作为控制核心,并通过红外传感器实时获取目标物体的热量,并根据实时的数据进行判断,当检测到异常情况时,通过控制电路驱动报警器发出警报。
1)硬件设计:a)红外传感器的选择:选择一款高灵敏度、稳定性好的红外传感器,能够检测到人体或其他物体的热量变化。
b)控制电路设计:将所选红外传感器连接到单片机的引脚上,通过数模转换芯片将传感器获取的模拟信号转换为数字信号,然后通过I/O口输入到单片机中进行处理。
c)报警器设计:选择一款高音量报警器,通过控制电路连接到单片机的输出引脚上,当检测到异常情况时,单片机输出高电平信号,控制报警器发出警报。
2)软件设计:a)系统初始化:对单片机进行初始化设置,包括引脚的配置、中断的设置等。
b)传感器数据处理:通过定时中断采集红外传感器获取的模拟信号,并进行模数转换,将转换后的数据保存到指定的变量中。
c)异常检测:根据实时的传感器数据进行算法判断,当数据超出预设的阈值范围时,判断为异常情况,触发报警功能。
d)报警控制:当发生异常情况时,通过控制指定的输出引脚输出高电平信号,触发报警器发出警报声。
e)系统保护:设计适当的保护措施,如防止误报、稳定性问题等。
三.预期成果通过本设计,预计能够实现以下目标:1)搭建一个基于单片机控制的红外报警器的硬件电路。
2)设计并实现红外报警器的软件系统,包括初始化设置、数据处理、异常检测、报警控制等功能。
基于单片机的红外热释电防盗报警器

基于单片机的红外热释电防盗报警器摘要:随着现在社会的发展,时代进步,高新技术的快速融入,人们的生活发生了巨大的改变,人们置购了大量高新技术的产品,许多高科技产品的使用越来越成为家庭生活的主旋律,因此人们对自己所处环境的安全要求就越来越高,特别是家居安全,不得不时刻留意不速之客的光顾。
许多家庭都安装了报警系统,这有效的保护了大家的财产安全。
在本文中,介绍一种利用热释电红外传感器进行监控,并进行报警。
此次设计的红外热释电防盗器在工作过程中较隐蔽,大大提高了用户的安全系数。
此次设计主要由硬件和软件两个模块组成。
硬件部分有数据采集、状态指示灯、按键设定、单片机STC89C52最小系统、蜂鸣器报警模块和DYP-ME003人体红外传感器部分组成。
关键词: 蜂鸣器报警模块;单片机STC89C52;防盗报警器1 概述1.1 设计背景随着人们生活水平与安全防范意识的提高,人们对自己所处环境的安全性提出了更高要求。
私人用地,公共场所与国家机关等对安全意识与自动报警的迫切需要逐渐被专家,厂商与社会所重视。
尤其是在家居安全方面,不得不时刻留意那些不速之客。
本次设计的被动式红外报警器则采用的传感元件是热释电红外传感器,这种热释电红外传感器能以非接触形式检测出人体辐射的红外线,并将其转变为电压信号,同时,它还能鉴别出运动的生物与其它非生物。
热释电红外传感器既可用于防盗报警装置,也可以用于自动控制、接近开关、遥测等领域。
用它制作的防盗报警器与目前市场上销售的许多防盗报警器材相比,具有如下特点:灵敏度高,控制范围大隐蔽性好,安装方便1.2 设计概述随着电子技术的发展,人类不断研究,不断创新纪录,人们自身的安防意识也在逐渐增强。
此类装置设计的要点:其一是能有效判断是否有人员进入;其二是尽可能大地增加防护范围。
该报警器能探测人体发出的红外线,当人进入报警器的监视区域内,即可发出报警声,适用于家庭、办公室、仓库、实验室等比较重要场合防盗报警。
单片机课程设计-红外热释电报警器

目录1课程设计目的 (2)2 设计介绍 (2)2.1 技术要求 (2)2.2 主要任务 (2)3 基础知识简介 (2)3.1 热释电红外传感器简单介绍 (2)3.2 AT89S51单片机简单概述 (3)4 方案设计 (4)4.1 总体设计思路 (4)4.2 具体电路模块设计 (5)4.2.1 热释电红外传感器原理 (5)4.2.2 调整电路的设计 (5)4.2.3 时钟电路的设计 (6)4.2.4 复位电路的设计 (6)4.2.5 数码管显示报警电路的设计 (7)4.2.6 声音报警电路的设计 (7)4.3 系统硬件电路的选择及说明 (8)5 软件编程及仿真 (8)5.1 软件简介 (8)5.1.1 Proteus软件简介及使用 (8)5.1.2 Keil软件简介 (10)5.2 软件程序的实现 (11)6 课程设计心得体会 (17)7 参考文献 (18)附图1:单片机控制的红外防盗报警器原理图 (19)附图2:仿真原理图 (20)附图3:实物图 (21)1课程设计目的随着时间的推移,计算机革命的完成,信息高速公路的发展,人们生活水平得到很大的提高,对私有财产的保护意识在不断的增强,因而对防盗措施提出了新的要求。
本设计就是为了满足现代住宅防盗的需要而设计的家庭式电子防盗系统。
本次设计所用的这种热释电红外传感器能以非接触形式检测出人体辐射的红外线,并将其转变为电压信号,同时,热释电红外传感器既可用于防盗报警装置,也可用于制动控制、接近开关、遥测等领域。
经过本次课程设计会使我们进一步对单片机有个感观认识,增强动手能力。
使理论与实际相结合。
2 设计介绍2.1 技术要求基于单片机控制的热释电红外报警,将检测到人体红外信号转换成电压信号,经调理电路整形处理为TTL电平送入单片机,单片机对送入信号进行判别,是哪一路报警信号,发出音响报警并通过数码管显示报警位置。
2.2 主要任务1.系统分析与设计:对系统进行调研,详细分析系统,设计出基于单片机控制的热释电红外报警系统方案;2.实现系统的关键技术:热释电传感器调理电路;报警音响电路;报警显示电路;软件控制;3.系统电路的设计与实现:器件选择;地址分配和硬件连接;4.系统软件的设计与实现:单片机代码的实现,计算机控制代码的实现;5.系统调试;6.系统联调;7.写课设报告。
基于51单片机的家用防盗报警系统设计

一、课程设计概述1、课程设计目的以单片机为核心设计家用防盗报警器,实现在有他人非法入侵时,通过热释电红外传感器检测后,进行声光报警并通过RS-485串行口通信,向小区保安室发出报警信号。
同时通过显示器显示入侵时间,控制电机自动关闭窗口,另外用按键可以调整显示内容、复位、取消报警等。
2、课程设计要求1、检测他人非正常入侵范围6米至8米。
2、传感器探测角度:水平120米,垂直60米。
3、供电电源交流220V。
3、课程设计原理人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。
人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。
红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。
热释电红外传感器的结构图及内部电路如图1所示:图1热释电红外传感器内部的热释电晶体具有极化现象,并且随温度的变化而变化。
当恒定的红外辐射照射在探测器上时,热释电晶体温度不变,晶体对外呈电中性,探测器没有电信号输出,因而恒定的红外辐射不能被检测到。
当交变的红外线照射到晶体表面时,晶体温度迅速变化,这时才发生电荷的变化,从而形成一个明显的外电场,这种现象称为热释电效应。
由于热释电晶体输出的是电荷信号,不能直接使用,需要用电阻将其转换为电压形式,该电阻阻抗高达10000兆欧,故引入N沟道结型场效应管接成共漏形式(即源极跟随器)来完成阻抗变换。
图2本设计采用的是双探测元件热释电红外传感器,其结构示意图如图2所示。
该传感器将两个特性相同的热释电晶体逆向串联,用来防止其他红外光引起传感器误动作。
另外,当环境温度改变时,两个晶体的参数会同时发生变化,这样可以相互抵消,避免出现检测误差。
为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,该透镜用透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10到20米范围内人的行动。
单片机设计报告红外热释电家庭防盗报警器

单片机课程设计报告题目红外热释电家庭防盗报警器2014年12月31日1 方案设计与论证1.该设计包括硬件和软件设计两个部分。
模块划分为数据采集、按键设定、报警等。
2.本红外线防盗报警系统由热释电红外传感器、蜂鸣器、单片机控制电路、LED指示电路及软件组成。
3.系统可实现功能。
当人员外出时,可把报警系统设置在外出布防状态,探测器工作起来,当有人闯入时,热释电红外传感器将探测到动作,设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,红外热释电模块送出TTL 电平至STC89C52单片机,经单片机处理运算后驱动执行报警电路使警号发声。
2 硬件电路设计本设计包括硬件和软件设计两个部分。
从设计的要求来分析该设计须包含如下结构:红外感应部分、STC89C52单片机、报警系统三大部分。
电路总原理图如图3-1所示:图3-1 总体设计框图处理器采用51系列单片机STC89C52。
整个系统是在系统软件控制下工作的。
设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,送出TTL 电平至STC89C52单片机。
在单片机内,经软件查询、识别判决等环节实时发出入侵报警状态控制信号。
驱动蜂鸣器及报警指示灯报警。
2.1按键控制电路本电路的设计就是为了控制电路中布防和紧急状态下不同的工作形式,当按下布防按键后, 30秒后进入监控状态,当有人靠近时,热释红外感应到信号,传回给单片机,单片机马上进行报警。
当遇到特殊紧急情况时,可按下紧急报警键,蜂鸣器进行报警。
如图3-8所示。
图3-8按键部分2.2指示灯和报警电路在单片机的I/O 里会输出高低电平,在P20、P21和P22分别接上LED指示灯而P23接上蜂鸣器而蜂鸣器外接个8550的三极管起到开关作用,当三极管达到饱和状态下就驱动了蜂鸣器工作了。
图3-9指示灯和报警电路3 软件设计3.1 主程序按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图所示:图3-10主程序工作流程图3.2 子程序3.2.1 报警判断子程序探头感受到来的脉冲信号后,表示有人闯入监控区,从而经过单片机内部程序处理后,驱动声光报警电路开始报警,持续报警,然后程序开始循环工作并保持红灯闪烁。
单片机课程设计红外热释电报警器

目录1课程设计目旳............................................... 错误!未定义书签。
2 设计简介................................................... 错误!未定义书签。
2.1 技术规定............................................. 错误!未定义书签。
2.2 重要任务............................................. 错误!未定义书签。
3 基础知识简介............................................... 错误!未定义书签。
3.1 热释电红外传感器简朴简介............................. 错误!未定义书签。
3.2 AT89S51单片机简朴概述............................... 错误!未定义书签。
4 方案设计................................................... 错误!未定义书签。
4.1 总体设计思绪......................................... 错误!未定义书签。
4.2 详细电路模块设计..................................... 错误!未定义书签。
4.2.1 热释电红外传感器原理........................... 错误!未定义书签。
4.2.2 调整电路旳设计................................. 错误!未定义书签。
4.2.3 时钟电路旳设计................................. 错误!未定义书签。
4.2.4 复位电路旳设计................................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告题目红外热释电家庭防盗报警器2014年12月31日1 方案设计与论证1.该设计包括硬件和软件设计两个部分。
模块划分为数据采集、按键设定、报警等。
2.本红外线防盗报警系统由热释电红外传感器、蜂鸣器、单片机控制电路、LED指示电路及软件组成。
3.系统可实现功能。
当人员外出时,可把报警系统设置在外出布防状态,探测器工作起来,当有人闯入时,热释电红外传感器将探测到动作,设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,红外热释电模块送出TTL 电平至STC89C52单片机,经单片机处理运算后驱动执行报警电路使警号发声。
2 硬件电路设计本设计包括硬件和软件设计两个部分。
从设计的要求来分析该设计须包含如下结构:红外感应部分、STC89C52单片机、报警系统三大部分。
电路总原理图如图3-1所示:图3-1 总体设计框图处理器采用51系列单片机STC89C52。
整个系统是在系统软件控制下工作的。
设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,送出TTL 电平至STC89C52单片机。
在单片机内,经软件查询、识别判决等环节实时发出入侵报警状态控制信号。
驱动蜂鸣器及报警指示灯报警。
2.1按键控制电路本电路的设计就是为了控制电路中布防和紧急状态下不同的工作形式,当按下布防按键后, 30秒后进入监控状态,当有人靠近时,热释红外感应到信号,传回给单片机,单片机马上进行报警。
当遇到特殊紧急情况时,可按下紧急报警键,蜂鸣器进行报警。
如图3-8所示。
图3-8按键部分2.2指示灯和报警电路在单片机的I/O 里会输出高低电平,在P20、P21和P22分别接上LED指示灯而P23接上蜂鸣器而蜂鸣器外接个8550的三极管起到开关作用,当三极管达到饱和状态下就驱动了蜂鸣器工作了。
图3-9指示灯和报警电路3 软件设计3.1 主程序按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图所示:图3-10主程序工作流程图3.2 子程序3.2.1 报警判断子程序探头感受到来的脉冲信号后,表示有人闯入监控区,从而经过单片机内部程序处理后,驱动声光报警电路开始报警,持续报警,然后程序开始循环工作并保持红灯闪烁。
4 安装与调试本次设计的硬件电路主要由单片机STC89C51组成,在调试电路的过程中也碰到了一些问题。
问题一:单片机无法正常下载程序。
调试步骤:(1)检查单片机和串口电路是否连接错。
(2)检查焊接电路是否有虚焊和漏焊。
问题二:蜂鸣器鸣叫不正常。
调试步骤:检查蜂鸣器的型和位是否接的正确。
故障原因:蜂鸣器的管脚并未完全与锡面板接触。
解决方案:重新焊接使其接触良好。
5 性能测试与结果分析第一步为目测,单片机应用系统电路全部手工焊接在洞洞板上,因此对每一个焊点都要进行仔细的检查。
检查它是否有虚焊、是否有毛剌等。
第二步为万用表测试,先用万用表复核目测中认为可疑的连线或接点,查看它们的通断状态是否与设计规定相符,再检查各种电源线与地线之间是否有短路现象。
第三步为加电检查。
当系统加电时,首先检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近零,接固定电平的引脚端是否电平正确。
第四步是联机检查。
在对硬件电路调试过程中,还遇到了不少问题,第一次把所有的元件都焊上去后,都准备调试了,才发现正负电源的插针离得太近了,不容易接电源,本不该犯的错误,这些都是由于自己的粗心大意造成的,所以说,做任何事情都必需经过“三思而后行”,来不得半点的马虎,否则浪费了时间和精力6 心得体会本设计研究了一种基于单片机技术的热释电智能防盗报警器。
该防盗报警器通过以STC89C52单片机为工作处理器核心,外接热释电红传感器,它是一种新颖的被动式红外探测器件,能够以非接触方式探测出人体发出的红外辐射,并将其转化为相应的电信号输出,同时能有效的抑制人体辐射波长以外的红外光线与可见光的干扰。
平时传感器输出低电平,当有人在探测区范围内移动时输出低电平变为高电平,此高电平输入单片机,作为单片机的外部触发信号处理,经单片机内部软件编程处理后,单片机输出控制信号,驱动声光报警电路开始报警。
该报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低。
随着现代人们安全意识的增强以及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用。
到目前为止我的课程设计也即将告一段落了,在这次的毕业设计中,自己也学习到了很多以前没有没有经历过的知识,让我更加清楚了理论知识和实践能力的差别了,了解到自己的短处,培养了我的独立思考能力,进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力,同时,也发现了自己的不足之处,和一些问题的存在,并有待进一步学习和发展,让自己在未来的工作和学习之中更快的适应和提高自己。
参考文献:[1]胡萍.串口通信的红外报警器的研制[J].计算机与现代化,2010(10):15-16.[2]唐德琴.电子温度测量仪器技术发展战略研究[J].电子科学技术,2009,27(1):1-8[3]李行善.基于串口组件的体系结构[J].电子串口与仪器学报,2010(08):15-16.[4]姜道连等.用于AT89C51设计红外报警器的设计与制作[J].国外电子元器件,2010(12):31-34.[5]冯国进.嵌入式Linux驱动程序设计从入f-J至U精通D田.北京:清华大学出版社,2008[6]蔡文斋.专业级串口调试器设计.现代电子技术,2010.[7]熊如贵.串口通信感应装置[J].电子制作,2009(6):23-31.[8]时德钢等.基于串口通信的红外报警器的研究[J].计算机测量与控制,2009,10(7):480-482.附录:1 电路图P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78R ST 9P3.0(R X D)10P3.1(T XD )11P3.2(IN T0)12P3.3(IN T1)13P3.4(T 0)14P3.5(T 1)15P3.6(W R)16P3.7(R D )17X TA L218X TA L119G ND 20(A8)P 2.021(A9)P 2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(A15)P2.728PS EN 29A LE/PR O G 30EA /VP P 31(AD 7)P0.732(AD 6)P0.633(AD 5)P0.534(AD 4)P0.435(AD 3)P0.336(AD 2)P0.237(AD 1)P0.138(AD 0)P0.039V CC 40U 189C51/C5212M H zC 230C 330R 210K+C 110u F1234K SR ESE TR 12.2KQ 190121234K 11234K 21234K 3G N DV C C O U T人体感应模块V CCV CCV CCD 1LE DrR 42.2k R 310kV CCD 2LE DgR 5220D 3LE DyR 62.2k321P1PO W E R112233445566S12 实物图3 源程序#include <reg52.h> //调用单片机头文件#define uchar unsigned char //无符号字符型宏定义变量范围0~255 #define uint unsigned int //无符号整型宏定义变量范围0~65535#define key_io P1uchar key_can;// 红外热释电平时为0 有输出为1sbit beep = P2^3; //蜂鸣器定义sbit red = P2^2; //红色发光二极管定义sbit green = P2^1; //绿色发光二极管定义sbit yellow = P2^0; //黄色发光二极管定义sbit hw = P1^3; //红外热释传感器定义bit flag_300ms = 0;/****************独立按键处理函数************************/ void key(){static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new == 0) //按键松开{if((key_io & 0x07) == 0x07)key_value ++;elsekey_value = 0;if(key_value >= 5) //按键松开松手检测{key_value = 0;key_new = 1; //按键松开后进入等待按键状态}}else{if((key_io & 0x07) != 0x07) //按键按下key_value ++;elsekey_value =0;if(key_value >= 5) //按键按下消抖{key_value = 0;key_new = 0; //按键松开后进入等待松开按键状态}}key_can = 20;if((key_new == 0) && (key_old == 1)){switch(key_io & 0x07){case 0x06: key_can = 1; break; //得到按键值case 0x05: key_can = 2; break; //得到按键值case 0x03: key_can = 3; break; //得到按键值}}key_old = key_new;}/*************定时器0初始化程序***************/void time_init(){EA = 1; //开总中断TMOD = 0X01; //定时器0工作方式1ET0 = 1; //开定时器0中断TR0 = 1; //允许定时器0定时}uchar flag_alarm ; //报警标志位uchar flag_bufang ; //布防标志位uchar flag_bufang_en ; //布防标志位使能uint flag_value; //用做定时器的变量/******************红外报警处理**********************/ void hongwai_dis(){if(flag_alarm == 1) //报警{red = ~red; //红灯报警beep = ~beep; //蜂鸣器报警}if(flag_bufang_en == 1) //准备开始布防{green = ~green; //绿灯闪}if(flag_bufang == 1) //确认布防{green = 0; //如果延时布防成功绿灯长亮if(hw == 1) //红外有输出{flag_alarm = 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;P2 = 0xff;}}/******************主程序**********************/void main(){time_init();while(1){key();yellow = ~hw; //红外热释电指示灯有输出就亮黄灯if(key_can < 10){key_with(); //按键设置函数}if(flag_300ms == 1){flag_300ms = 0;hongwai_dis(); //红外报警函数}}}/*************定时器0中断服务程序***************/ void time0_int() interrupt 1{static uint value;TH0 = 0x3c;TL0 = 0xb0; // 50msvalue ++;if(value % 6 == 0){flag_300ms = 1;}if(flag_bufang_en == 1){flag_value ++;if(flag_value >= 600) //30秒{flag_bufang = 1;flag_bufang_en = 0;flag_value = 0;}}}。