📄 89c2051.txt
字号:
89C2051报警拨号器的完整源程序!
这是实际应用在商业防盗器的源程序,含有24C02的读写程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; HS98 ALARM---DIALER ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PLAY BIT P1.0 ;音乐片放音
LED1 BIT P1.1 ;第1指示灯
LED2 BIT P1.2 ;第2指示灯
LED3 BIT P1.3 ;第3指示灯
SOFT_HK BIT P1.4 ;软摘机(本机接入)
HARD_HK BIT P1.5 ;硬摘机(外部话机通断)
SCL BIT P1.6 ;数据时钟线
SDA BIT P1.7 ;数据线
CTRL BIT RD ;串行数据控制
BEEP BIT T1 ;蜂鸣器
ORG 0000H ;
LJMP START ;主程序
ORG 000BH ;T0定时中断50ms
LJMP T0_IRQ
ORG 0030H
S009F: MOV R2,#08H
NOP
L00A3: NOP
CLR SCL
RLC A
MOV SDA,C
SETB SCL
DJNZ R2,L00A3
CLR SCL
SETB SDA
SETB SCL
L00B3: JB SDA,$
RET
S00B7: NOP
MOV R2,#08H
NOP
L00BB: NOP
CLR SCL
SETB SDA
SETB SCL
MOV C,SDA
RLC A
DJNZ R2,L00BB
RET
S00C9: NOP
CLR RS0
SETB RS1
NOP
L00CF: NOP
SETB SCL
SETB SDA
CLR SDA
MOV A,#0A0H
LCALL S009F
MOV A,R1
LCALL S009F
MOV A,@R0
LCALL S009F
CLR SCL
CLR SDA
SETB SCL
NOP
SETB SDA
INC R0
INC R1
MOV R5,#1FH
L00F0: MOV R4,#0FFH
L00F2: NOP
NOP
DJNZ R4,L00F2
DJNZ R5,L00F0
DJNZ R7,L00FC
SJMP L00FF
L00FC: LJMP L00CF
L00FF: RET
S0100: NOP
CLR RS0
SETB RS1
NOP
SETB SCL
SETB SDA
CLR SDA
MOV A,#0A0H
LCALL S009F
MOV A,R1
LCALL S009F
CLR SCL
SETB SDA
SETB SCL
NOP
CLR SDA
MOV A,#0A1H
LCALL S009F
L0123: NOP
NOP
DJNZ R7,L013B
LCALL S00B7
CLR SCL
SETB SDA
SETB SCL
MOV @R0,A
CLR SCL
CLR SDA
SETB SCL
SETB SDA
RET
L013B: NOP
LCALL S00B7
CLR SCL
CLR SDA
SETB SCL
MOV @R0,A
INC R0
INC R1
LJMP L0123
S014B: NOP
PUSH PSW
CLR RS0
CLR RS1
MOV R5,#00H
MOV R4,#00H
MOV R2,#00H
JNB 08H,L0161
CLR 08H
SETB LED1
SJMP L0171
L0161: JNB 09H,L016A
CLR 09H
SETB LED2
SJMP L0171
L016A: JNB 0AH,L0171
CLR 0AH
SETB LED3
L0171: NOP
POP PSW
RET
T0_IRQ: NOP
PUSH PSW
PUSH ACC
JNB 00H,L01B0
JNB 01H,L019D
SETB RS0
CLR RS1
DJNZ R6,L0192
SJMP L019A
L0192: MOV TL0,#0DBH
MOV TH0,#7DH
SETB TR0
L019A: LJMP L046B
L019D: SETB RS0
CLR RS1
DJNZ R6,L01A5
SJMP L01AD
L01A5: MOV TL0,#0FCH
MOV TH0,#0F5H
SETB TR0
L01AD: LJMP L046B
L01B0: SETB RS0
SETB RS1
JNB 03H,L01CC
DJNZ R1,L01BF
MOV R1,#9FH
DJNZ R2,L01BF
CLR 03H
L01BF: CPL T1
MOV TL0,#0FFH
MOV TH0,#0FFH
SETB TR0
LJMP L046B
L01CC: JNB 05H,L01E8
DJNZ R1,L01DB
MOV R1,#9FH
DJNZ R2,L01DB
CLR 05H
MOV R2,#07H
SETB 06H
CLR 0BH
L01DB: CPL T1
MOV TL0,#0FFH
MOV TH0,#0FFH
SETB TR0
LJMP L046B
L01E8: JNB 06H,L0202
DJNZ R1,L01F7
MOV R1,#9FH
DJNZ R2,L01F7
CLR 06H
MOV R2,#0FH
SETB 07H
L01F7: MOV TL0,#0FFH
MOV TH0,#0FFH
SETB TR0
LJMP L046B
L0202: JNB 07H,L021A
DJNZ R1,L020D
MOV R1,#9FH
DJNZ R2,L020D
CLR 07H
L020D: CPL T1
MOV TL0,#0FFH
MOV TH0,#0FFH
SETB TR0
LJMP L046B
;------------------------------------------------
;键盘扫描
;
L021A: CLR RS0
CLR RS1
SETB RD
NOP
CLR RD
NOP
NOP
MOV R0,#22H
MOV R3,#03H
L0229: NOP
MOV SCON,#10H
L022D: JNB RI,$
MOV A,SBUF
MOV SCON,#00H
MOV @R0,A
INC R0
DJNZ R3,L0229
;------------------------------------------------
SETB RD
MOV TL0,#0EBH
MOV TH0,#0DBH
SETB TR0
DJNZ R6,L025A
MOV R6,#1FH
JNB 08H,L024E
CPL LED1
SJMP L025A
L024E: JNB 09H,L0255
CPL LED2
SJMP L025A
L0255: JNB 0AH,L025A
CPL LED3
L025A: JB 1FH,L026A
JNB 37H,L026A
SETB 00H
CLR TR0
LCALL S014B
LJMP L046B
L026A: JNB 0EH,L027D
JNB 1EH,L027D
JB 36H,L027D
SETB 00H
CLR TR0
LCALL S014B
LJMP L046B
L027D: NOP
CJNE R4,#0AH,L0284
LCALL S014B
L0284: CJNE R5,#00H,L0289
SJMP L0291
L0289: INC R2
CJNE R2,#0FAH,L0290
MOV R2,#00H
INC R4
L0290: NOP
L0291: MOV A,#00H
JB 10H,L029B
JNB 28H,L029B
MOV A,#0AH
L029B: JB 11H,L02A3
JNB 29H,L02A3
MOV A,#01H
L02A3: JB 12H,L02AB
JNB 2AH,L02AB
MOV A,#02H
L02AB: JB 13H,L02B3
JNB 2BH,L02B3
MOV A,#03H
L02B3: JB 14H,L02BB
JNB 2CH,L02BB
MOV A,#04H
L02BB: JB 15H,L02C3
JNB 2DH,L02C3
MOV A,#05H
L02C3: JB 16H,L02CB
JNB 2EH,L02CB
MOV A,#06H
L02CB: JB 17H,L02D3
JNB 2FH,L02D3
MOV A,#07H
L02D3: JB 18H,L02DD
JNB 30H,L02DD
MOV A,#08H
L02DD: JB 19H,L02E5
JNB 31H,L02E5
MOV A,#09H
L02E5: JB 1AH,L02ED
JNB 32H,L02ED
MOV A,#0BH
L02ED: JB 1BH,L02F5
JNB 33H,L02F5
MOV A,#0CH
L02F5: JB 1CH,L02FD
JNB 34H,L02FD
MOV A,#0DH
L02FD: CJNE A,#00H,L0309
LJMP L045D
L0309: SETB 03H
MOV R2,#00H
MOV R4,#00H
CJNE R5,#00H,L0320
CJNE A,#0DH,L0318
INC R5
SJMP L031D
L0318: SETB 05H
LCALL S014B
L031D: LJMP L0435
L0320: CJNE R5,#01H,L0331
CJNE A,#0CH,L0329
INC R5
SJMP L032E
L0329: LCALL S014B
SETB 05H
L032E: LJMP L0435
L0331: CJNE R5,#02H,L0388
SETB 04H
INC R5
CJNE A,#01H,L0351
SETB 08H
MOV 2AH,#00H
MOV R1,#2BH
SETB RS1
MOV R0,#2AH
MOV R1,#2AH
MOV R7,#01H
LCALL S00C9
CLR RS1
LJMP L0435
L0351: CJNE A,#02H,L036B
SETB 09H
MOV 3DH,#00H
MOV R1,#3EH
SETB RS1
MOV R0,#3DH
MOV R1,#3DH
MOV R7,#01H
LCALL S00C9
CLR RS1
LJMP L0435
L036B: CJNE A,#03H,L0370
SETB 0AH
MOV 50H,#00H
MOV R1,#51H
SETB RS1
MOV R0,#50H
MOV R1,#50H
MOV R7,#01H
LCALL S00C9
CLR RS1
LJMP L0435
L0370: CJNE A,#04H,L0385
MOV 63H,#0EH
MOV R1,#64H
SETB 0BH
LJMP L0435
L0385: DEC R5
SETB 05H
LCALL S014B
LJMP L0435
;---------------------------------------------
L0388: NOP
JNB 0BH,L0390
CJNE A,#0BH,L0389
AJMP L0393
L0389: CJNE A,#0DH,L038A
AJMP L0393
L038A: CJNE A,#0CH,L038B
CJNE R5,#08H,L0393
SETB 04H
MOV R5,#00H
SETB RS1
MOV R0,#63H
MOV R1,#63H
MOV R7,#08H
LCALL S00C9
CLR RS1
CLR 0BH
LJMP L0435
L038B: CJNE R5,#08H,L03A0
LJMP L0393
;----------------------------------------------
L0390: CJNE R5,#14H,L039B
L0393: SETB 05H
LCALL S014B
LJMP L0435
L039B: CJNE A,#0DH,L03A0
SJMP L0393
L03A0: MOV @R1,A
INC R1
INC R5
CJNE A,#0BH,L03EC
CLR C
CJNE R5,#05H,L03AC
SJMP L03AE
L03AC: JNC L03B6
L03AE: SETB 05H
LCALL S014B
LJMP L0435
L03B6: JNB 08H,L03C2
CLR 08H
CLR LED1
MOV 2AH,#01H
SJMP L03D5
L03C2: JNB 09H,L03CE
CLR 09H
CLR LED2
MOV 3DH,#01H
SJMP L03D5
L03CE: MOV 50H,#01H
CLR 0AH
CLR LED3
L03D5: SETB 04H
MOV R5,#00H
SETB RS1
MOV R0,#2AH
MOV R1,#2AH
MOV R7,#3AH
LCALL S00C9
CLR RS1
LJMP L0435
L03EC: CJNE A,#0CH,L0435
CLR C
CJNE R5,#05H,L03F5
SJMP L03F7
L03F5: JNC L03FF
L03F7: SETB 05H
LCALL S014B
LJMP L0435
L03FF: JNB 08H,L040B
CLR 08H
CLR LED1
MOV 2AH,#02H
SJMP L041E
L040B: JNB 09H,L0417
CLR 09H
CLR LED2
MOV 3DH,#02H
SJMP L041E
L0417: MOV 50H,#02H
CLR 0AH
CLR LED3
L041E: SETB 04H
MOV R5,#00H
SETB RS1
MOV R0,#2AH
MOV R1,#2AH
MOV R7,#3AH
LCALL S00C9
CLR RS1
LJMP L0435
L0435: SETB RS0
SETB RS1
JNB 05H,L001F ;
CLR 04H ;
CLR 03H ;
MOV R1,#0FAH ;
MOV R2,#09H ;
L045D: MOV A,22H
XCH A,25H
MOV A,23H
XCH A,26H
MOV A,24H
XCH A,27H
L046B: POP ACC
POP PSW
RETI
L001F: JNB 04H,L002D
SETB 03H
CLR 04H
MOV R1,#0FAH
MOV R2,#0FH
LJMP L045D
L002D: JNB 03H,L0034
MOV R1,#0FAH
MOV R2,#03H
L0034: LJMP L045D
START: CLR SOFT_HK
CLR HARD_HK
MOV SP,#6AH
LCALL LOAD_JU
MOV 20H,#00H
MOV 21H,#00H
MOV R6,#1FH
MOV R5,#00H
MOV R4,#00H
SETB RS1
MOV R0,#2AH
MOV R1,#2AH
MOV R7,#3AH
LCALL S0100
CLR RS1
MOV A,2AH
CJNE A,#01H,L04A1
CLR LED1
L04A1: CJNE A,#02H,L04A6
CLR LED1
L04A6: MOV A,3DH
CJNE A,#01H,L04AD
CLR LED2
L04AD: CJNE A,#02H,L04B2
CLR LED2
L04B2: MOV A,50H
CJNE A,#01H,L04B9
CLR LED3
L04B9: CJNE A,#02H,L04BE
CLR LED3
L04BE: NOP
NOP
MOV TL0,#0EBH
MOV TH0,#0CBH
MOV TMOD,#11H
MOV TCON,#10H
MOV IE,#82H
NOP
NOP
SETB 0EH
;mov 63h,#0eh
;mov 64h,#01h
;mov 65h,#0ah
;mov 66h,#05h
;mov 67h,#07h
;mov 68h,#0ah
;mov 69h,#0fh
L04D3: SJMP L04DB
L04DB: NOP
L04DC: NOP
L04DD: JNB 00H,$
SETB RS0
CLR RS1
MOV R2,2AH
MOV R3,3DH
MOV R4,50H
CJNE R2,#00H,L04FC
CJNE R3,#00H,L04FC
CJNE R4,#00H,L04FC
CLR 00H
LCALL S014B
SETB TR0
SJMP L04DC
L04FC: SETB HARD_HK
CLR 04H
MOV R5,#00H
MOV R7,#00H
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#0FFH
SETB TR0
L050E: CJNE R6,#00H,$
NOP
NOP
L0513: NOP
SETB SOFT_HK
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#0FFH
SETB TR0
L0520: CJNE R6,#00H,$
NOP
L0524: NOP
L0525: NOP
CJNE R5,#1FH,L0537
CLR 00H
CLR HARD_HK
CLR SOFT_HK
LCALL S014B
SETB TR0
LJMP L04D3
L0537: CJNE R7,#00H,L054F
INC R7
INC R5
MOV R1,#2BH
CJNE R2,#01H,L0543
SJMP L054D
L0543: CJNE R2,#02H,L054B
JB 04H,L054B
SJMP L054D
L054B: SJMP L0524
L054D: SJMP L0584
L054F: CJNE R7,#01H,L0567
INC R7
INC R5
MOV R1,#3EH
CJNE R3,#01H,L055B
SJMP L0565
L055B: CJNE R3,#02H,L0563
JB 04H,L0563
SJMP L0565
L0563: SJMP L0525
L0565: SJMP L0584
L0567: CJNE R7,#02H,L057C
MOV R7,#00H
INC R5
MOV R1,#51H
CJNE R4,#01H,L0574
SJMP L0580
L0574: CJNE R4,#02H,L057C
JB 04H,L057C
SJMP L0580
L057C: CPL 04H
SJMP L0525
L0580: CPL 04H
NOP
L0583: NOP
L0584: MOV A,@R1
MOV R0,A
CJNE R0,#0BH,L058C
LJMP L062B
L058C: CJNE R0,#0CH,L0592
LJMP L05FB
L0592: JNB 1DH,L05CE
NOP
L0596: NOP
NOP
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#10H
CLR SOFT_HK
SETB TR0
L05A4: CJNE R6,#00H,$
SETB SOFT_HK
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#0AH
SETB TR0
L05B3: CJNE R6,#00H,$
DJNZ R0,L0596
SETB SOFT_HK
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#87H
SETB TR0
L05C4: CJNE R6,#00H,$
INC R1
LJMP L0583
L05CE: LCALL SEND_P
LJMP L0583
SEND_P: MOV 28H,A
LCALL SEND_PHOCODE
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#1FH
SETB TR0
L05DD: CJNE R6,#00H,$
MOV 28H,#00H
LCALL SEND_PHOCODE
MOV TL0,#0FCH
MOV TH0,#0F5H
MOV R6,#1FH
SETB TR0
L05F0: CJNE R6,#00H,$
INC R1
RET
L05FB: LJMP L0710
L060F: NOP
NOP
NOP
CLR SOFT_HK
MOV TL0,#0DBH
MOV TH0,#7DH
MOV R6,#1FH
SETB TR0
L061E: CJNE R6,#00H,$
CLR 01H
SETB SOFT_HK
LJMP L0513
L062B: LJMP L075F
L0659: NOP
MOV 28H,#00H ;#00H
LCALL SEND_PHOCODE
MOV TL0,#0DBH
MOV TH0,#7DH
MOV R6,#7FH
SETB TR0
MOV 24H,#00H
NOP
L066E: NOP
JB INT1,L069A
INC 24H
MOV R1,#0FFH
NOP
NOP
NOP
L0679: NOP
DJNZ R1,L0679
MOV A,#0FAH
CJNE A,24H,L0695
CLR TR0
CJNE R7,#00H,L0688
MOV R4,#00H
L0688: CJNE R7,#01H,L068D
MOV R2,#00H
L068D: CJNE R7,#02H,L0692
MOV R3,#00H
L0692: LJMP L060F
L0695: CJNE R6,#00H,L066E
SJMP L069F
L069A: MOV 24H,#00H
SJMP L0695
L069F: NOP
JB 0DH,L06A8
SETB 0DH
LJMP L0635
L06A8: LJMP L060F
S06AF: NOP
MOV R3,#08H
NOP
L06B3: NOP
CLR SCL
RLC A
NOP
NOP
MOV SDA,C
NOP
NOP
SETB SCL
NOP
NOP
DJNZ R3,L06B3
CLR SCL
NOP
NOP
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
L06CF: JB SDA,$
RET
SEND_PHOCODE:
NOP
PUSH PSW
CLR RS0
SETB RS1
MOV A,28H
ADD A,#10H
L0052: MOV 28H,A
CJNE A,#3CH,L005D
MOV 28H,#2CH
L005D: CJNE A,#49H,L0063
MOV 28H,#39H
L0063: NOP
CJNE A,#10H,L006C
MOV 28H,#01H
L006C: CJNE A,#1AH,L007E
MOV 28H,#10H
L007E: SETB SCL
NOP
NOP
SETB SDA
NOP
NOP
CLR SDA
NOP
NOP
MOV A,#4AH
LCALL S06AF
MOV A,28H
LCALL S06AF
CLR SCL
NOP
NOP
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
SETB SDA
POP PSW
RET
L0710: NOP
SETB 01H
MOV TH0,#7DH
MOV R6,#5FH
SETB TR0
L071A: CJNE R6,#00H,$
CLR PLAY
MOV TH0,#7DH
MOV R6,#0CFH
SETB TR0
L0726: CJNE R6,#00H,$
SETB PLAY
MOV R6,#0FH
SETB TR0
L072F: CJNE R6,#00H,$
CLR PLAY
MOV TH0,#7DH
MOV R6,#0CFH
SETB TR0
L073B: CJNE R6,#00H,$
SETB PLAY
LJMP L060F
;------------------------------------------------
L075F: NOP
NOP
SETB 01H
MOV TL0,#0DBH
MOV TH0,#7DH
MOV R6,#1FH
SETB TR0
L076D: CJNE R6,#00H,$
SETB 01H
CLR 0DH
L0635: MOV TL0,#0FCH ;#0DBH
MOV TH0,#0F5H ;#7DH
L0780: MOV R6,#01FH ;#0AFH
; SETB INT0
; JB INT0,L0797
;L0789: MOV 28H,#39H
; LCALL SEND_PHOCODE
;L078F: CJNE R6,#00H,L0794
; SJMP L07A7
;L0794: JNB INT0,L078F
;L0797: MOV 28H,#2CH
; LCALL SEND_PHOCODE
;L079D: CJNE R6,#00H,L07A2
; SJMP L07A7
;L07A2: JB INT0,L079D
; SJMP L0789
;L07A7: LJMP L0659
;-----------------------------------------------
clr 01h
LCALL JU_ADJ
MOV R0,#05H
SS0: MOV 29H,#07H
MOV R1,#63H
SS1: MOV A,@R1
SS2: LCALL SEND_P
DJNZ 29H,SS1
DJNZ R0,SS0
setb 01h
LJMP L0659
JU_ADJ:
MOV R1,#05H
MOV R0,#63H
MOV @R0,#0EH
JU_ADJ_1:
INC R0
MOV A,@R0
CLR C
JZ JU_ADJ_3
CJNE A,#0BH,$+3
JNC JU_ADJ_3
JU_ADJ_2:
DJNZ R1,JU_ADJ_1
INC R0
MOV @R0,#0FH
RET
JU_ADJ_3:
MOV R1,#05H
MOV R0,#63H
MOV @R0,#0EH
JU_ADJ_4:
MOV @R0,#00H
DJNZ R1,JU_ADJ_4
INC R0
MOV @R0,#0FH
RET
LOAD_JU:
SETB RS1
MOV R0,#63H
MOV R1,#63H
MOV R7,#08H
LCALL S0100
LCALL JU_ADJ
CLR RS1
RET
;------------------------------------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -