
; serial communication
;set serial receive for 19200/8/n/1
#include 8051.H
         .org 0000H

Main	acall	Init		; initialise
run	acall	TXT		; call send
	sjmp	run
	.end


Init	mov	TMOD,	#20h 	; Timer 1 in Auto-reload mode 
	mov 	IE,	#00h 	; reset intterupts
	mov 	PCON,	#80h	; set SMOD for 19200 baud
	mov	SCON,	#50h	; serial mode 1, REN=1
	mov	TH1,	#253	; load T1 for 19200 baud
	mov	R1,	#00H	; reset car. index
	mov	R0,	#00h
	setb	TR1		; start timer
	acall	FILL_MEM
	mov	A,	#'X'
	acall	SEND
	ret			; return


TXT	mov	R0,	#00h
TXT2	mov	A,	@R0	; caracter index
	jnz	SND		; jump to morse convert if A is a caracter
	ret
SND	acall	SEND
	inc	R0		; inc car. pointer
	sjmp	TXT2




SEND	clr	TI		; Be sure the bit is initially clear
	mov	SBUF,	A	; send character
	jnb	TI,	$	; Pause until the TI bit is set. 
	ret			; return


FILL_MEM
	mov	R0,	#00h
	mov	@R0,	#'A'
	inc	R0
	mov	@R0,	#'B'
	inc	R0
	mov	@R0,	#'C'
	inc	R0
	mov	@R0,	#'D'
	inc	R0
	mov	@R0,	#'E'
	inc	R0
	mov	@R0,	#'F'
	inc	R0
	mov	@R0,	#00h
	ret
