规划一个根据单片机的声光报警电路。要求:使用按键触发外部中止0,蜂鸣器发音,发光二极管点亮,声光报警推迟1S后中止(使用定时器TO延时)。蜂鸣器由P1.2操控,发光二极管由P2.0操控。规划硬件电路并给出其完好的程序。
/*典型过错一*/
/*ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTE0
ORG 000BH
AJMP INT120
ORG 0030H
MAIN: MOV R0,#00H
SETB IT0
SETB EX0
SETB EA
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
SETB ET0
HERE: AJMP HERE
INTE0: CLR P1.2
CLR P2.0
CLR EX0;可有可无
SETB TR0
RETI
ORG 0080H
INT120: MOV TH0,#4CH
MOV TL0,#00H
INC R0
HERE0:CJNE R0,#14H,HERE0;典型过错1
;此程序已经在定时器T0中止内部,使用
;此程序等候T0中止,中止无从进入。所以
;程序在此行成死循环,即停在此处。声光
;报警发动但停不下来。
SETB P1.2
SETB P2.0
CLR ET0
RETI
END
*/
/*典型过错二*/
/*ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTE0
ORG 000BH
AJMP INT120
ORG 0030H
MAIN: MOV R0,#00H
SETB IT0
SETB EX0
SETB EA
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
SETB ET0
HERE: AJMP HERE
INTE0: CLR P1.2
CLR P2.0
CLR EX0;可有可无
SETB TR0
RETI
ORG 0080H
INT120: MOV TH0,#4CH
MOV TL0,#00H
INC R0
CJNE R0,#14H,HERE;典型过错2
;此程序已经在定时器T0中止内部,使用
;此程序等候T0中止,中止无从进入。所以
;程序在此行成死循环,即停在此处。声光
;报警发动但停不下来。和上例相同。
SETB P1.2
SETB P2.0
CLR ET0
RETI
END
*/
/*正确答案*/
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INTEX0
ORG 000BH
AJMP INTT0
ORG 0030H
MAIN:MOV R0,#00H
SETB EX0
SETB IT0
MOV TMOD,#01H
MOV TH0,#4CH
MOV TL0,#00H
SETB EA
SETB ET0
HERE:CJNE R0,#14H,HERE
MOV R0,#00H
SETB P2.0
SETB P1.2
CLR TR0
AJMP HERE
INTEX0: SETB TR0
CLR P2.0
CLR P1.2
RETI
INTT0: MOV TH0,#4CH
MOV TL0,#00H
INC R0
RETI
END