LEDDO: ; START DOING JOB HERE
MOVX A, @R0
LCALL SENTONEBYTE1
CJNE R0, #LASTBUFFER, NEXTSENT1
MOV R0, #HEADBUFFER
JMP NEXTSENT2
NEXTSENT1:
INC R0 ;POINT TO NEXT BUFFER
NEXTSENT2:
JMP LED
LED2:
;LCALL MARKZZ
LED3:
LCALL DELAY2
JMP LED3
INITIAL_UART1:
MOV SCON, #01000000B ;SET AS BAUD VERIABLE, NO ODD/EVEN CHECK SM0,SM1,SM2,REN,TB8,RB8,TI,RI
MOV TL1, #136 ;219(18M= 2usx16=32US) 226=38400 196=19200 136=9600
MOV TH1, #136
SETB TR1 ;RUN TIMER_1
;SETB PS ;SERIAL PORT PRORITY HIGH
SETB ES ;ENABLE UART1 INTERRUPT
RET
INITIAL_UART2:
MOV S2CON, #01010000B ;SET AS BAUD VERIABLE, NO ODD/EVEN CHECK S2SM0,S2SM1,S2SM2,S2REN,S2TB8,S2RB8,S2TI,S2RI
MOV BRT, #136 ;226=38400 136=9600
;MOV IP2, #01H ;UART INTERUUPT PARITY HIGH
MOV IE2, #01H ;ENABLE UART2 INTERRUPT
RET
INITIAL_UART2_38400:
MOV S2CON, #01010000B ;SET AS BAUD VERIABLE, NO ODD/EVEN CHECK S2SM0,S2SM1,S2SM2,S2REN,S2TB8,S2RB8,S2TI,S2RI
MOV BRT, #226 ;226=38400 136=9600
;MOV IP2, #01H ;UART INTERUUPT PARITY HIGH
MOV IE2, #01H ;ENABLE UART2 INTERRUPT
RET
SENTONEBYTE1:
PUSH ACC
PUSH PSW
CHECKBUSY1:
JB 40H, CHECKBUSY1
SETB 40H ;MARK BUSY BIT
MOV SBUF, A
POP PSW
POP ACC
RET
SENTONEBYTE2:
PUSH ACC
PUSH PSW
CHECKBUSY2:
JB 41H, CHECKBUSY2
SETB 41H ;MARK BUSY BIT
MOV S2BUF, A
POP PSW
POP ACC
RET
UART1:
;/*----------------------------
;UART1 INTERRUPT SERVICE ROUTINE
;----------------------------*/
PUSH ACC
PUSH PSW
JNB RI, UART1CHECKTI
MOV A, SBUF ;READ THE CHARACTER FROM THE SERIAL PORT
MOVX @R1, A
CJNE R1, #LASTBUFFER, NEXTB1
MOV R1, #HEADBUFFER
JMP NEXTB1A
NEXTB1:
INC R1
NEXTB1A:
CLR RI ;CLEAR RI BIT
JMP UART1EXIT
UART1CHECKTI:
CLR TI ;CLEAR TI BIT
CLR 40H ;CLEAR BUSY BIT
UART1EXIT:
POP PSW
POP ACC
RETI
UART2:
;/*----------------------------
;UART2 INTERRUPT SERVICE ROUTINE
;----------------------------*/
PUSH ACC
PUSH PSW
MOV A, S2CON ;READ UART2 CONTROL REGISTER
ANL A, #00000001B ;ANL, IF S2RI=0 THEN 0
JZ UART2CHECKTI
MOV A, S2BUF
MOVX @R1, A
CJNE R1, #LASTBUFFER, NEXTB2
MOV R1, #HEADBUFFER
JMP NEXTB2A
NEXTB2:
INC R1
NEXTB2A:
ANL S2CON, #11111110B ;CLEAR S2RI BIT
JMP UART2EXIT
UART2CHECKTI:
ANL S2CON, #11111101B ;CLEAR S2TI BIT
CLR 41H ;CLEAR BUSY BIT
UART2EXIT:
POP PSW
POP ACC
RETI
RESET:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"R"
LCALL SENTONEBYTE2
MOV A ,#"E"
LCALL SENTONEBYTE2
MOV A ,#"S"
LCALL SENTONEBYTE2
MOV A ,#"E"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET
ROLE1:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"R"
LCALL SENTONEBYTE2
MOV A ,#"O"
LCALL SENTONEBYTE2
MOV A ,#"L"
LCALL SENTONEBYTE2
MOV A ,#"E"
LCALL SENTONEBYTE2
MOV A ,#"1"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET
CLSSF0:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"C"
LCALL SENTONEBYTE2
MOV A ,#"L"
LCALL SENTONEBYTE2
MOV A ,#"S"
LCALL SENTONEBYTE2
MOV A ,#"S"
LCALL SENTONEBYTE2
MOV A ,#"F"
LCALL SENTONEBYTE2
MOV A ,#"0"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET
BAUD6:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"B"
LCALL SENTONEBYTE2
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"U"
LCALL SENTONEBYTE2
MOV A ,#"D"
LCALL SENTONEBYTE2
MOV A ,#"6"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET
CONN1:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"C"
LCALL SENTONEBYTE2
MOV A ,#"0"
LCALL SENTONEBYTE2
MOV A ,#"N"
LCALL SENTONEBYTE2
MOV A ,#"N"
LCALL SENTONEBYTE2
MOV A ,#"1"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET
STAT:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"S"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET
VERSION:
MOV A ,#"A"
LCALL SENTONEBYTE2
MOV A ,#"T"
LCALL SENTONEBYTE2
MOV A ,#"+"
LCALL SENTONEBYTE2
MOV A ,#"V"
LCALL SENTONEBYTE2
MOV A ,#"E"
LCALL SENTONEBYTE2
MOV A ,#"R"
LCALL SENTONEBYTE2
MOV A ,#"S"
LCALL SENTONEBYTE2
MOV A ,#"I"
LCALL SENTONEBYTE2
MOV A ,#"O"
LCALL SENTONEBYTE2
MOV A ,#"N"
LCALL SENTONEBYTE2
MOV A ,#13
LCALL SENTONEBYTE2
MOV A ,#10
LCALL SENTONEBYTE2
RET