源程序
?????????
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?
評論