$NOPAGING
$MOD252
ORG 0000H
MOV TMOD, #20h
MOV SCON, #52h
MOV PCON, #80h
MOV TH1, #0E8h ; 2400bps & SMOD=1
MOV TCON, #40h ; SETB TR1
MOV 50h, #'H'
MOV 51h, #'E'
MOV 52h, #'L'
MOV 53h, #'L'
MOV 54h, #'O'
MOV 55h, #10d ; LF
MOV 56h, #13d ; CR
;-------------------------------------------------
;Main Program
;-------------------------------------------------
SERIAL:
LCALL Char_Get
CPL P1.0
LCALL Ser_Out
LCALL Char_Sent
SJMP SERIAL
;-------------------------------------------------
;Character sent subroutine
;-------------------------------------------------
Char_Sent:
MOV R0, #07h ; Loop counter ..
MOV R1, #50h
S_Loop:
MOV A, @R1
LCALL Ser_Out
INC R1
DJNZ R0, S_Loop
RET
Ser_Out:
JNB TI, $
CLR TI
MOV SBUF, A
RET
;-------------------------------------------------
;Character receive subroutine
;-------------------------------------------------
Char_Get:
JNB RI, char_get
CLR RI
MOV A, SBUF
CLR ACC.7
RET
; --------------------------------------------------
END