⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 89c2051.txt

📁 2051开发的商业用自动拨号防盗器源程序
💻 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 + -