;DESIGNATING PINS
;A EQU 0E0H
BREG EQU 0F0H
PSW EQU 0D0H
SP EQU 81H
DPTRL EQU 82H
DPTRH EQU 83H
P0 EQU 80H
P1 EQU 90H
P2 EQU 0A0H
P3 EQU 0B0H
IPC EQU 0B8H
IEC EQU 0A8H
TMOD EQU 89H
TCON EQU 88H
TH0 EQU 8CH
TL0 EQU 8AH
TH1 EQU 8DH
TL1 EQU 8BH
TH2 EQU 0CDH
TL2 EQU 0CCH
RCAP2H EQU 0CBH
RCAP2L EQU 0CAH
SCON EQU 98H
SBUF EQU 99H
PCON EQU 97H
;DESIGNATING RAM LOCATIONS
LSBHR EQU 30H
MSBMN EQU 31H
LSBMN EQU 32H
MSBHR EQU 33H
MSBMN1 EQU 34H
MSBHR1 EQU 35H
LSBMN1 EQU 36H
LSBHR1 EQU 37H
MSBMN2 EQU 38H
MSBHR2 EQU 39H
LSBMN2 EQU 3AH
LSBHR2 EQU 3BH
MCMDTBL EQU 3CH
LCMDTBL EQU 3DH
MSPTBL EQU 3EH
LSPTBL EQU 3FH
OFSET EQU 40H
TXBUF EQU 41H
BLINK EQU 42H
REC1 EQU 43H
REC2 EQU 44H
REC3 EQU 45H
REC4 EQU 46H
REC5 EQU 47H
REC6 EQU 48H
REC7 EQU 49H
REC8 EQU 4AH
REC9 EQU 4BH
REC10 EQU 4CH
REC11 EQU 4DH
REC12 EQU 4EH
REC13 EQU 4FH
DIS EQU 50H
FLG EQU 51H
DEL EQU 52H
SLG EQU 53H
OFST EQU 54H
MSTR EQU 55H
SLVR EQU 56H
ATUL EQU 57H
DIXIT EQU 58H
STATUS EQU 59H
UPKEY EQU 5AH
SLAVE EQU 5BH
MASTER EQU 5CH
DISBB EQU 5EH
DISBA EQU 5FH
DISBC EQU 60H
DISBLKA EQU 61H
DISBLKB EQU 62H
DISBLKC EQU 63H
SDY1 EQU 64H
SDY2 EQU 65H
SDY3 EQU 66H
SDY4 EQU 67H
ADY1 EQU 68H
ADY2 EQU 69H
ADY3 EQU 6AH
ADY4 EQU 6BH
ORG 0000H
RESET: LJMP START ;RESET VECTOR
ORG 0023H
INTR: LJMP RXINTR ;INTERRUPT VECTOR
ORG 0030H
;@@@@@@@@@@@@@@@@@@@@@@@@ MAIN ROUTINE @@@@@@@@@@@@@@@@@@@@@@
START: NOP
LCALL INIT
LCALL SLAVE1
SO: MOV UPKEY,#00H
BDATA: MOV A,BLINK
CJNE A,#01H,SDATA
LCALL BLDATA
SDATA: MOV A,DIS
CJNE A,#01H,ADATA
LCALL SDYDATA
ADATA: MOV A,BLINK
CJNE A,#00H,BATUL
LCALL SCKEY
BATUL: MOV A,SLG
CJNE A,#01H,DXT
LCALL DSPLAMP
LCALL DELAY
LJMP SO
DXT: LCALL DELAY
LCALL DSPLAMP
;SETB P1.5 BUZZER GET OFF BEFORE ACK COMMAND
LJMP SO
;@@@@@@@@@@@@@@@@@@@@@@@@ INITILISATION @@@@@@@@@@@@@@@@@@@@@@@
INIT: CLR A
MOV PSW,#00H
MOV SP,#09H
MOV PCON,#00H
MOV TL1,#00H
MOV TH1,#0FAH
MOV TCON,#40H
MOV TMOD,#20H
MOV SCON,#52H
MOV IEC,#90H
MOV SBUF,#00H
SETB P3.0
SETB P3.1
SETB P3.6
SETB P3.7
SETB P1.5
MOV REC1,#00H
MOV REC2,#00H
MOV REC3,#00H
MOV REC4,#00H
MOV REC5,#00H
MOV REC6,#00H
MOV REC7,#00H
MOV REC8,#00H
MOV REC9,#00H
MOV REC10,#00H
MOV REC11,#00H
MOV REC12,#00H
MOV REC13,#00H
MOV BLINK,#00H
MOV UPKEY,#00H
MOV SLAVE,#00H
MOV FLG,#01H
MOV DEL,#01H
MOV R2,#00H
MOV R7,#00H
MOV MSBHR1,#53H
MOV LSBHR1,#50H
MOV MSBMN1,#4FH
MOV LSBMN1,#54H
MOV MSBHR,#53H
MOV LSBHR,#50H
MOV MSBMN,#4FH
MOV LSBMN,#54H
MOV MSBHR2,#53H
MOV LSBHR2,#50H
MOV MSBMN2,#4FH
MOV LSBMN2,#54H
MOV DISBA,#00H
MOV DISBB,#00H
MOV DISBC,#00H
MOV DISBLKA,#00H
MOV DISBLKB,#00H
MOV DISBLKC,#00H
LCALL DSPLCD
LCALL DELAY
LCALL DELAY
MOV DIS,#00H
MOV SLG,#00H
MOV MSTR,#00H
MOV SLVR,#00H
MOV ATUL,#01H
MOV DIXIT,#2BH
MOV SLAVE,#00H
MOV STATUS,#00H
MOV MASTER,#00H
RET
;@@@@@@@@@@@@@@@@@@@@@@@@ DIP SWITCH SELECTION @@@@@@@@@@@@@@@@@@
SLAVE1: MOV MCMDTBL,#07H
MOV LCMDTBL,#4AH
MOV MSPTBL,#07H
MOV LSPTBL,#02H
RET
;@@@@@@@@@@@@@@@@@@@@@@@@ KEY SCANNING FOR REQXFR @@@@@@@@@@@@@@@@
SCKEY: LCALL DELA
MOV A,P1
ORL A,#8FH
ANL A,#0EFH
MOV P1,A
LCALL DELA
MOV P2,#0FFH
NOP
MOV A,P2
ANL A,#10H
JZ REQ
MOV A,SLAVE
CJNE A,#01H,OUT1
LCALL DELA
MOV A,P1
ORL A,#8FH
ANL A,#0EFH
MOV P1,A
LCALL DELA
MOV P2,#0FFH
NOP
MOV A,P2
ANL A,#20H
JZ ACK
OUT1: RET
ACK: MOV UPKEY,#03H
MOV OFSET,#20H
;MOV A,FLG
;CJNE A,#01H,OUT1
LCALL TXRPM
RET
REQ: MOV UPKEY,#04H
MOV OFSET,#30H
LCALL TXRPM
RET
;@@@@@@@@@@@@@@@@@@@@@@@@ DISPLAY DATA @@@@@@@@@@@@@@@@@@@@@@@
SDYDATA: MOV MSBHR1,SDY1
MOV LSBHR1,SDY2
MOV MSBMN1,SDY3
MOV LSBMN1,SDY4
MOV MSBHR,#20H
MOV LSBHR,#20H
MOV MSBMN,#20H
MOV LSBMN,#20H
MOV ADY1,MSBHR1
MOV ADY2,LSBHR1
MOV ADY3,MSBMN1
MOV ADY4,LSBMN1
LCALL DSPLCD
MOV DIS,#00H
RET
;@@@@@@@@@@@@@@@@@@@@@@@@ BLINKING DATA @@@@@@@@@@@@@@@@@@@@@@@
BLDATA: MOV A,BLINK
ANL A,#01H
JNZ RUT
RET
RUT: MOV A,DEL
ANL A,#01H
JZ BLANK
MOV MSBHR,REC5
MOV LSBHR,REC6
MOV MSBMN,REC7
MOV LSBMN,REC8
LCALL DSPLCD
LCALL DELAY
LCALL DELAY
MOV DEL,#00H
RET
BLANK: MOV MSBHR,#20H
MOV LSBHR,#20H
MOV MSBMN,#20H
MOV LSBMN,#20H
LCALL DSPLCD
LCALL DELAY
LCALL DELAY
MOV DEL,#01H
LCALL DELA
MOV A,P1
ORL A,#9BH
ANL A,#0FBH
MOV P1,A
LCALL DELA
MOV P2,#0FFH
NOP
MOV A,P2
ANL A,#20H
JNZ OUT
MOV UPKEY,#01H
MOV OFSET,#00H
;MOV A,FLG
;CJNE A,#01H,OUT
LCALL TXRPM
OUT: RET
;@@@@@@@@@@@@@@@@@@@@@@@@ KEY TRANSMIT ROUTINE @@@@@@@@@@@@@@@@@@@@@
TXRPM: MOV A,UPKEY
ANL A,#00H
MOV UPKEY,A
MOV TXBUF,#00H
MOV IEC,#00H
MOV SCON,#52H
SETB P3.0
SETB P3.1
MOV DPTRH,MCMDTBL
MOV DPTRL,LCMDTBL
MOV R1,#70H
REPT: MOV A,OFSET
MOVC A,@A+DPTR
MOV TXBUF,A
MOV @R1,A
LCALL TXD
INC DPTR
INC R1
MOV A,TXBUF
CJNE A,#0AH,REPT
SETB P1.7
MOV IEC,#90H
MOV FLG,#00H
MOV TXBUF,#00H
RET
TXD: MOV A,SCON
ANL A,#02H
JZ TXD
MOV A,#50H
MOV SCON,A
MOV A,TXBUF
MOV SBUF,A
RET
;@@@@@@@@@@@@@@@@@@@@@@@@ RECEIVE ROUTINE @@@@@@@@@@@@@@@@@@@@@
RXINTR: MOV A,SCON
ANL A,#02H
JNZ RESTR
MOV IEC,#00H
MOV SCON,#50H
MOV R1,#43H
MOV A,SBUF
MOV @R1,A
CJNE A,#24H,LOOP
SJMP STRCVD
LOOP: MOV IEC,#90H
RETI
RESTR: MOV SCON,#50H
RETI
STRCVD: MOV R1,#43H
MOV R2,#0CH
RDAG: INC R1
RPT: MOV A,SCON
ANL A,#01H
JZ RPT
MOV A,SCON
ANL A,#50H
MOV SCON,A
MOV A,SBUF
MOV @R1,A
DJNZ R2,RDAG
INTERUPT: MOV R1,#43H ;'$'
MOV A,@R1
XRL A,#24H
JNZ ERR0
MOV R1,#4DH ;'*'
MOV A,@R1
XRL A,#2AH
JNZ ERR0
MOV R1,#44H ;'C'
MOV A,@R1
XRL A,#43H
JNZ ERR0
;@@@@@@@@@@@@@@@@@@@@@@@@ TIME CMDD @@@@@@@@@@@@@@@@@@@@@@@@@
MOV R1,#45H
MOV A,@R1
XRL A,#54H
JNZ BLKG
MOV R1,#46H
MOV A,@R1
XRL A,#49H
JNZ ERR0
MOV R1,#47H
MOV A,@R1
XRL A,#4DH
JNZ ERR0
MOV R1,#48H
MOV A,@R1
XRL A,#45H
JNZ ERR0
LJMP TIME
ERR0: LJMP FINISH
;@@@@@@@@@@@@@@@@@@@@@@@ BLINKING CMD @@@@@@@@@@@@@@@@@@@@@@@
BLKG: MO