📄 alarm.asm
字号:
;本程序是一个以89C51为核心的声光报警器控制程序
;系统的晶振频率12MHz,外界报警触发脉冲接至INT0,报警复位按钮接P1.2,喇叭接P1.1
;当外界报警脉冲触发报警后,LED(接P1.0)以1Hz的频率闪动,同时喇叭种发出"Wu,Wa......"的警笛声
;该声音由1kHz和500Hz方波以0.5秒为间隔交替发声
;值班人员按动报警复位钮后声光报警停止。
HISOUND BIT 00H ;高音标志
LED BIT P1.0 ;驱动LED接口
SPEAKER BIT P1.1 ;喇叭
STOP BIT P1.2 ;复位按钮
BR2 EQU 0AH ;1区R2
ORG 0
LJMP START
ORG 3
LJMP ALARM
ORG 0BH
LJMP T0S
ORG 1BH
LJMP T1S
ORG 30H
START: MOV SP,#60H
MOV BR2,#10
SETB IT0
SETB ET0
SETB ET1
SETB EX0
SETB PT0
SETB EA
SETB HISOUND
SETB LED ;熄灭LED
CLR SPEAKER
MOV TMOD,#11H
MOV TH0,#0FEH
MOV TL0,#0CH
MOV TH1,#3CH
MOV TL1,#0B0H
SETB STOP ;允许报警复位按钮输入
LOOP: JB STOP,LOOP
LCALL DELAY ;消除开关抖动
JB STOP,LOOP
CLR TR0
CLR TR1
SETB LED ;熄灭LED
CLR SPEAKER
SJMP LOOP
ALARM: SETB TR0
SETB TR1
RETI
T0S: CLR TR0
JB HISOUND,T0S1
MOV TH0,#0FCH
MOV TL0,#18H
SJMP T0S2
T0S1: MOV TH0,#0FEH
MOV TL0,#0CH
T0S2: SETB TR0
CPL SPEAKER
RETI
T1S: PUSH PSW
SETB RS0
CLR RS1
CLR TR1
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
DJNZ R2,T1S1
MOV R2,#10
CPL HISOUND
CPL LED
T1S1: POP PSW
RETI
DELAY: MOV R6,#20
L1: MOV R7,#250
L2: NOP
NOP
DJNZ R7,L2
DJNZ R6,L1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -