资源描述
报警器
信号端口: 按键1表示刷卡信号,按键2表示人体感应信号,信号为高 电平有效 。
功能: 1 未刷卡时,若检测到信号2即有人闯入时,启动报警器一直到信号消失
2 刷卡后,5s内无人进入,则刷卡无效
3 刷卡后,5s内有一人进入,不报警,取消刷卡效果,如果还有人进入,则启动报警器
程序:KET0 EQU P1.0
KET1 EQU P1.1
FMQ EQU P1.2
LED EQU P1.3
KWEI BIT 00H ;开起位,即允许位
TWEI BIT 01H ;按键弹起位,防止多次判断,为1时表示未弹起,表示0时按键弹起或开始无按键状态
ORG 0000H
AJMP START
ORG 000BH
LJMP IT_T0
ORG 0030H
START:MOV SP,#60H
MOV TMOD,#01H ;定时器初始化,用定时器1,定时50Ms
MOV TH0,#3CH
MOV TL0,#0B0H
SETB ET0
SETB EA
CLR KWEI ;为0表示不不允许有人
CLR TWEI ;开始无按键状态
CLR FMQ ;关闭蜂鸣器
CLR LED ;关闭报警灯
CLR KET0 ;输出低电平,为读取信号做准备
CLR KET1
MAIN: LCALL KEY
LJMP MAIN
KEY: JNB KET0,KEY0 ;判断是否有信号1,如果注没有转到KEY0
JB TWEI,KRET0 ;判断前一次按键是否弹起,如果没有转到KRET0
MOV R2,#100 ;定时5S即100次50Ms,用于检测5S钟内,信号2是否响应
SETB TR0 ;已经检测到信号,启动定时器
SETB KWEI ;开允许位,高电平允许
SETB TWEI ;弹起位为1,表示已经有按键
RET
KEY0: JNB KET1,KRET ;;判断是否有信号2,如果没有转到KRET
CLR TR0 ;信号2有响应,则关闭定时器
JB TWEI,KRET0 ;判断前一次按键是否弹起,如果没有转到KRET0
SETB TWEI ;弹起位为1,表示已经有按键
JB KWEI,LOOP ;是否允许,如果允许,转到LOOP
SETB FMQ ;此时为不允许信号状态,启动蜂鸣器
SETB LED ;启动报警灯
RET
LOOP: CLR KWEI ;此时为允许状态,正常运行,且关闭允许
RET
KRET: CLR FMQ ;此时表示没有按键,关闭蜂鸣器,
CLR LED ;关闭报警灯.
CLR TWEI ;TWEI变为0,为无按键状态,表示按键已经弹起
KRET0: RET
IT_T0: MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,TRET ;是否到了5S钟,没到转到TRET,继续运行定时器
CLR KWEI ;到了5S,即在5S内,信号2无响应,刚关闭允许位
CLR TR0 ;关闭定时器
TRET: RETI
END
展开阅读全文