1、 报警器信号端口: 按键1表示刷卡信号,按键2表示人体感应信号,信号为高 电平有效 。功能: 1 未刷卡时,若检测到信号2即有人闯入时,启动报警器一直到信号消失2 刷卡后,5s内无人进入,则刷卡无效3 刷卡后,5s内有一人进入,不报警,取消刷卡效果,如果还有人进入,则启动报警器程序:KET0 EQU P1.0KET1 EQU P1.1FMQ EQU P1.2LED EQU P1.3KWEI BIT 00H ;开起位,即允许位TWEI BIT 01H ;按键弹起位,防止多次判断,为1时表示未弹起,表示0时按键弹起或开始无按键状态ORG 0000HAJMP STARTORG 000BHLJMP I
2、T_T0ORG 0030HSTART:MOV SP,#60HMOV TMOD,#01H ;定时器初始化,用定时器1,定时50MsMOV TH0,#3CHMOV TL0,#0B0HSETB ET0SETB EACLR KWEI ;为0表示不不允许有人CLR TWEI ;开始无按键状态CLR FMQ ;关闭蜂鸣器CLR LED ;关闭报警灯CLR KET0 ;输出低电平,为读取信号做准备CLR KET1MAIN: LCALL KEYLJMP MAINKEY: JNB KET0,KEY0 ;判断是否有信号1,如果注没有转到KEY0JB TWEI,KRET0 ;判断前一次按键是否弹起,如果没有转到KR
3、ET0MOV R2,#100 ;定时5S即100次50Ms,用于检测5S钟内,信号2是否响应SETB TR0 ;已经检测到信号,启动定时器SETB KWEI ;开允许位,高电平允许SETB TWEI ;弹起位为1,表示已经有按键RET KEY0: JNB KET1,KRET ;判断是否有信号2,如果没有转到KRETCLR TR0 ;信号2有响应,则关闭定时器JB TWEI,KRET0 ;判断前一次按键是否弹起,如果没有转到KRET0SETB TWEI ;弹起位为1,表示已经有按键JB KWEI,LOOP ;是否允许,如果允许,转到LOOPSETB FMQ ;此时为不允许信号状态,启动蜂鸣器SETB LED ;启动报警灯RETLOOP: CLR KWEI ;此时为允许状态,正常运行,且关闭允许RETKRET: CLR FMQ ;此时表示没有按键,关闭蜂鸣器,CLR LED ;关闭报警灯.CLR TWEI ;TWEI变为0,为无按键状态,表示按键已经弹起KRET0: RETIT_T0: MOV TH0,#3CHMOV TL0,#0B0HDJNZ R2,TRET ;是否到了5S钟,没到转到TRET,继续运行定时器CLR KWEI ;到了5S,即在5S内,信号2无响应,刚关闭允许位CLR TR0 ;关闭定时器TRET: RETIEND