ORG 0000H AJMP MAIN ORG 0003H AJMP KEYPRESS ORG 000BH AJMP TIMEOUT ORG 001BH AJMP TIMEOUT SENDDUAN BIT P3.0 JIEDUAN BIT P3.1 INTRPO BIT P3.2 JIEXUAN BIT P3.3 SENDLIGHT BIT P3.4 JIELIGHT BIT P3.5 CS BIT P3.7 DATADUAN BIT P1.6 CLK BIT P1.7 JIANWEI EQU R5 JIANMA EQU R6 SHANGJIAN EQU 07H;R7 OPENKEY EQU 81H CLOSEKEY EQU 00H CHUT0 EQU 11H CHUT1 EQU 11H BUFBEGIN EQU 18H OPENT1 EQU 88H CLOSET1 EQU 00H OPENT0 EQU 82H CLOSET0 EQU 00H DATABEG1 EQU 0AAH DATABEG2 EQU 33H ORG 0030H MAIN: MOV IE,#80H MOV IP,#00H MOV P3,#0FFH CLR CS SETB P1.0 SETB P1.1 SETB P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 MOV R3,#80H MOV R0,00H CYCLE1: MOV @R0,#00H INC R0 DJNZ R3,CYCLE1 MOV PSW,#00H MOV SP,#07H MOV TMOD,#11H MOV TCON,#00H START: MOV SP,#07H SETB SENDDUAN CLR F0 SETB EXO WAITKEY: MOV C,F0 JNC WAITKEY CJNC JIANMA,#1BH,SEND LCALL LEARNP LJMP START SEND: LCALL SENDP LJMP START SENDP: SETB SENDDUAN CLR F0 MOV TMOD,#CHUT1 CLR SENDLIGHT MOV A,JIANMA CJNE A,SHANGJIAN,SAME SAME: MOV R0,#BUFBEGIN CLR TR1 LJMP NEXT3 RETURN: CLR ET1 SETB SENDDUAN SETB SENDLIGHT CLR F0 LCALL DELAY RET NEXT3: CPL F0 JB F0,SEND1 SEND0: CLR C ;1 MOV A,#0FFH SUBB A,@R0 MOV R2,A ;1 INC R0 ;1 MOV A,#0FFH ;1 SUBB A,@R0 ;1 MOV R3,A INC R0 CLR C MOV A,#4FH ADDC A,R2 MOV R2,A MOV A,R3 ADDC A,#00H MOV R3,A MOV TL1,R2 MOV TH1,R3 SETB TR1 ;1 SETB ET1 ;1 SEND1: CLR C MOV A,#0FFH SUBB A,@RO MOV TL1,A INC R0 MOV A,#0FFH SUBB A,@R0 MOV TH1,A INC R0 SETB TR1 SETB ET1 NEXT6: CLR SENGGUAN MOV R3,#03H NEXT4: DJNZ R3,NEXT4 SETB SENDDUAN MOV R3,#07H NEXT5: DJNZ R3,#NEXT5 SJMP NEXT6 TIMA1OUT: CLR ET1 ;2 CLR TR1 ;2 SETB SENDDUAN ;1 CJNE@R0,#DATABEG2,TIM1NT2 MOV DPTR,#RETURN ;2 MOV R1,SP ;2 MOV @R1,DPH ;2 DEC R1 ;1 MOV @R1,DPL ;2 RETI ;2 TIM1NET2: DEC R0 TIM1NET1: CPL F0 ;1 JB F0,SEND11 ;2 SEND00: MOV DPTR,#SENDO ;11 MOV R1,SP MOV @R1,DPH DEC R1 MOV @R1,DPL RETI SEND11: MOV DPTR,#SEND1 ;11 MOV R1,SP MOV @R1,DPH DEC R1 MOV @R1,DPL RETI LEARNP: MOV R2,#02H NEXT91: MOV R3,#0FFH NEXT81: MOV R4,#0FFH NEXT71: DJNZ R4,NEXT71 DJNZ R3,NEXT81 GJNZ R2,NEXT91 CLR F0 SETB EX0 MOV R2,#0AH MEXT9: MOV R3,#0FFH NEXT8: MOV R4,#0FFH NEXT7: JB F0,NEXT10 DJNZ R4,NEXT7 DJNZ R3,MEXT8 DJNZ R2,NEXT9 CLR EX0 RET NEXT10: CJNE JIANMA,#1BH,NEXT11 LJMP NEXT111 NEXT11: RET NEXT111: CLR JIELIGHT CLR JIEXUAN CLR F0 MOV R0,#BUFBEGIN SETB ET0 MOV TCON,#00H MOV TMOD,#CHUT0 MOV TL0,#00H MOV TH0,#00H MOV R2,#02H NEXT92: MOV R3,#0FFH NEXT82: MOV R4,#0FFH NEXT72: DJNZ R4,NEXT72 DJNZ R3,NEXT82 DJNZ R2,NEXT92 CLR TR0 L1: MOV C,JIEDUAN JC L1 L4: SETB TR0 L2: MOV C,JIEDUAN CLR TR0 MOV @R0,TL0 INC R0 MOV TH0,#00H MOV TL0,#00H L6: SETB TR0 L3: MOV C,JIEDUAN JC L3 CLR TR0 CLR C MOV A,TL0 ADDC A,#13H MOV @R0,A INC R0 MOV TH0,#00H MOV TL0,#00H SETB TR0 L5: MOV C,JIEDUAN JNC L5 CLR TR0 CLR C ;1 MOV A,TL0 ;1 ADDC A,#13H ;1 MOV @R0,A ;2 INC R0 MOV A,TH0 ADDC A,#00H MOV @R0,A INC R0 MOV TH0,#00H MOV TL0,#00H SJMP L6 SHUJIAN: SETB JIEXUAN MOV @R0,#DATABEG1 INC R0 MOV @R0,#DATABEG2 SETB EX0 CLR F0 NEXT13: JB F0,NEXT12 LJMP NEXT13 NEXT12: LCALL WRITEP SETB JIELIGHT RET TIME0OUT CLR ET0 CLR TR0 MOV DPTR,#SHUJIAN MOV @R1,DPH DEC R1 MOV @R1,DPL RETI KEYPRESS: CLR EX0 MOV R3,#0DH CYCLE3: MOV R4,#0FFH CYCLE2: DJNZ R4,CYCLE2 DJNZ R3,CYCLE3 MOV C,INTRPO JNC NEXT1 RETI NEXT1: SETB F0 MOV C,P1.0 MOV ACC.0,C MOV C,P1.1 MOV ACC.1,C MOV C,P1.2 MOV ACC.2,C CLR P1.0 CLR P1.1 CLR P1.2 SETB P1.3 SETB P1.4 SETB P1.5 MOV C,P1.3 MOV ACC.3,C MOV C,P1.4 MOV ACC.4,C MOV C,P1.5 MOV ACC.5,C ANL A,300111111B MOV JIANMA,A SETB P1.0 SETB P1.1 SETB P1.2 CLR P1.3 CLR P1.4 CLR P1.5 LCALL JIANWEIP RETI JIANWEIP: CJNE JIANMA,#36H,NEXT14 MOV JIANWEI,#01H LJMP LAST NEXT14: CJNE JIANMA,#35H,NEXT15 MOV JIANWEI,#02H LJMP LAST NEXT15: CJNE JIANMA,#35H,NEXT16 MOV JIANWEI,#03H LJMP LAST NEXT16: CJNE JIANMA,#2EH,NEXT17 MOV JIANWEI,#04H LJMP LAST NEXT17: CJNE JIANMA,#2DH NEXT18 MOV JIANWEI, #05H LJMP LAST NEXT18: CJNE JIANMA,#2BH,NEXT19 MOV JIANWEL,#06H LJMP LAST NEXT19: CJNE JIANMA,#1EH,NEXT20 MOV JIANWEI,#07H LJMP LAST NEXT20: CJNE JIANMA,#1DH,NEXT21 MOV JIANWEL,#09H LJMP LAST NEXT21: CJNE JIANMA,#1BH,NEXT22 MOV JIANWEI,#09H LJMP LAST NEXT22: CLR FO LAST: RET READP: MOV RO,BUFBEGIN MOV A,JIANWEI MOV B,50 MUL AB MOV R3,A SHU JU DI ZHI INC R3 LCALL READCOM READNET2: MOV A,R3 LCALL WRITEADRESS LCALL READBYTE CJNE ,#DATABEG1,READNET1 MOV A R3 INC A LACLL WRITEADRESS LCALL READBYTE CJNE A,#DATABEG2,READNET1 CLR CS RET READNET1: MOV @RO,A INC RO INC R3 LJMP READNET2 WRITEP: MOV RO,BUFBEGIN MOV A,JIAWEI MOV B,50 MUL AB MOV R3,A ;KAI SHI SHU JU DI ZHI INC R3 LCALL EWEN WRITNET1: LACLL WRITECOM MOV,R3 LCALL WRITEADRESS MOV A,@RO CJNE A,#DATABEG1,WRITNET2 INC RO MOV A,@RO CJNE A,DATABEG2,WRITNET3 LCALL EWDS CLR CS RET WRITNRT3: DEC RO WRITNET2: LCALL WRITEBYTE INC RO INC R3 LJMP WRITNE1 RET WRITBYTE: MOV R2,#08H BOUT1: CLR CLK RLC A MOV DATADUAN,C NOP SETB CLK NOPDJNZ R2,BOUT1 CLRDATADUAN RET READBYTE: SETB DATAUAN MOV R2,#08H BIN1: CLR CLK NOP SETB CLK NOP MOV C,DATADUAN RLC A DJNZ R2,BIN1 RET READCOM: CLR CS CLR CLK SETB DATADUAN SETB CS NOP SETB CLK ;1 NOP CLR CLK NOP SETB CLK ;1 NOP CLR DATAUAN CLR CLK NOP SETB CLK ;0 RET WRITECOM: CLR CS NOP CLR CLK SETB DATADUAN SETB CS NOP SETB CLK ;1 NOP CLR DATADUAN NOP CLR CLK NOP SETB CLK ;0 NOP SETB DATADUAN NOP CLR CLK NOP SETB CLK ;1 RET WRITEADRESS: MOV R2,#07H RLC A ;TIAO GUO DI 7 WEI BOUT2: CLR CLK RLC A MOV DATADUAN,C NOP DJNA R2,BOUT2 CLR DATAUAN RET EQEN: CLR CS CLR CLK SETB DATADUAN SETB CS SETB CLK ;1 NOP CLR CLK NOP CLR DATADUAN SETB CLK ;0 NOP NOP CLR CLK NOP SETB CLK ;0 NOP NOP SETB DATADUAN CLR CLK NOP SETB CLK ;1 NOP NOP SETB CLK ;1 NOP NOP CLR CLK NOP NOP CLR CS RET EWDS: CLR CS CLR CLK SETB DATADUAN SETB CS SETB CLK ;1 NOP CLR CLK NOP CLR DATADUAN SETB CLK ;0 NOP NOP CLR CLK NOP SETB CLK ;0 NOP NOP CLR CLK NOP NOP RETB CLK ;0 NOP NOP SETB CLK ;0 NOP NOP CLR CLK NOP NOP SETB CLK ;0 NOP NOP CLR CS CLR CLK RET DELAY: MOV R3,#96H DEL1: MOV R4,#OFFH DEL2: DJNZ R4,DEL2 DJNZ R3,#DEL1 RET END
|
|