;|--------------------------------------------------------------------------|
;|TITOLO:	si sfrutta l'interfaccia seriale per costruire un tx seriale|
;|		asincrona. Viene trasmessa una stringa solo come esempio;   |
;|		basta cambiare il buffer dei dati per trasmettere qualunque |
;|		dato si desideri.					    |
;|--------------------------------------------------------------------------|

		$MOD51
		ORG 0000H
START:		MOV SCON,#52H
		MOV TMOD,#20H
		MOV TCON,#40H
		MOV TH1,#0FBH
MAIN:		MOV DPTR,#MESSAGGIO	;PUNTA ALLA STRINGA DA TRASMETTERE
STROUT:		CLR A			;SPIAZZAMENTO DEL DPTR = 0
		MOVC A,@ A+DPTR		;PROSSIMO CARATTERE IN A
		JZ MAIN
CHAROUT:	JNB TI,$		;LOOP INFINITO SE TX OCCUPATA
		CLR TI			;OCCUPO NUOVAMENTE TX
		MOV SBUF,A		;INIZIO TRASMISSIONE
		INC DPTR		;SALTA PROSSIMO CARATTERE
		JMP STROUT		;LOOP PER PROX CARATTERE
MESSAGGIO:	DB 'Ciao trasmette 8051', 13,10,0
		END