📄 报警检测仪.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0150H
MAIN:MOV SP,#60H
MOV DPTR,#0B000H
MOV A,#03H
MOVX @DPTR,A
CLR A
MOV R0,#2AH
MP0: MOV @R0,A
INC R0
CJNE R0,#30H,MP0
CLR 00H
MOV 21H,#00H
DIS: LCALL DISP
LCALL KS1
JZ MP2
MP1: LJMP SCAN
MP2: LJMP RUN
RUN: JNB 00H,RU1
LJMP DIS
RU1: LCALL AD1
MOV R3,A
MOV 50H,A
LCALL IBTD
MOV 2DH,R4
MOV A,R5
ANL A,#0F0H
SWAP A
MOV 2EH,A
MOV A,R5
ANL A,#0FH
MOV 2FH,A
MOV 2AH,#10H
MOV 2BH,#13H ;---------(1)
MOV 2CH,#13H ;---------(2)
CLR C
MOV A,50H
SUBB A,51H
JC RU2
SETB P1.0
LJMP DIS
RU2: CLR P1.0
LJMP DIS
SCAN: LCALL KEYA
CJNE A,#0BH,SC2
CLR 00H
MOV 21H,#00H
SC1: LJMP SC9
SC2: CJNE A,#0AH,SC3
LJMP SC1 ;--------(3)
sc3: SETB 00H
MOV 2AH,#1EH
MOV 2BH,#13H ;--------(4)
MOV 2CH,#13H ;--------(5)
MOV R4,A ;--------(6)
INC 21H
sc4: MOV A,21H ;--------(7)
CJNE A,#01H,SC5
MOV 2DH,R4 ;--------(8)
SJMP SC8
SC5: CJNE A,#02H,SC6
MOV 2EH,R4 ;--------(9)
SJMP SC8
SC6: CJNE A,#03H,SC7
MOV 2FH,R4 ;--------(10)
SJMP SC8
SC7: MOV 21H,#01H
SJMP SC4
SC8: LCALL DTB
SC9: LJMP DIS
DTB: MOV B,#64H
MOV A,2DH
MUL AB
MOV R6,A
MOV A,B
JZ DTB1
SJMP DTB2
DTB1: MOV B,#0AH
MOV A,2EH
MUL AB
ADD A,R6
JC DTB2
ADD A,2FH
JC DTB2
MOV 51H,A
RET
DTB2: MOV 2AH,#1EH
MOV 2BH,#11H
MOV 2CH,#11H
MOV 2DH,#11H
MOV 2EH,#11H
MOV 2FH,#11H
RET
IBTD: CLR A
MOV R4,A
MOV R5,A
MOV R7,#08H
LOP: CLR C
MOV A,R3
RLC A
MOV R3,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,LOP
RET
DISP: MOV R0,#2AH
MOV R1,#0FEH
MOV DPTR,#0B001H
DLP: INC DPTR
MOV A,@R0
ADD A,#0FH
MOVC A,@A+PC
MOVX @DPTR,A
MOV DPTR,#0B001H
MOV A,R1
MOVX @DPTR,A
ACALL DIMS
RL A
MOV R1,A
INC R0
CJNE R0,#30H,DLP
RET
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,73H,40H,58H,00H,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,77H
DIMS: MOV R7,#02H
DL1: MOV R6,#0FFH
DL2: DJNZ R6,DL2
DJNZ R7,DL1
RET
KEYA: LCALL T12MS
LCALL KS1
JNZ LK1
SJMP KND
LK1: MOV R4,#00H
MOV R2,#0FEH
LK2: MOV DPTR,#0B001H
MOV A,R2
MOVX A,@DPTR
MOV A,#03H
MOVX @DPTR,A
MOV A,R2
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
JB ACC.0,LONE
MOV A,#00H
SJMP LKP
LONE: JB ACC.1,NEXT
MOV A,#06H
LKP: ADD A,R4
PUSH ACC
LK3: LCALL KS1 ;改
JZ BACK ;
LCALL DISP ;
SJMP LK3 ;
BACK: POP ACC ;
KND: RET
NEXT: INC R4
MOV A,R2
JNB ACC.5,KND
RL A
MOV R2,A
SJMP LK2
KS1: MOV DPTR,#0B001H
MOV A,#00H
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
CPL A
ANL A,#03H
RET
T12MS: MOV R7,#18H
TM: MOV R6,#0FFH
TM6: DJNZ R6,TM6
DJNZ R7,TM
RET
AD1: MOV DPTR,#5001H
mov a ,#01h
MOVX @DPTR,A
MOV R2,#20H
DL: DJNZ R2,DL
WEND: JB P3.3,WEND
MOVX A,@DPTR
MOV 50H,A
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -