"Teoría es cuando se sabe todo y nada funciona. Práctica es cuando todo funciona y nadie sabe porqué. En este recinto se conjugan Teoría y Práctica: nada funciona y nadie sabe porqué..."

---------------------------------------------------------------


Ejemplo de Comunicación Serie con la UART del mC51

Este es un ejemplo para configurar la UART y comunicar el microcontrolador mC51 serialmente con otro dispositivo. Usa las rutinas anteriormente diseñadas D_LCD, TECLADO y ASCII4B. Este ejemplo recibe un dato enviado por otro dispositivo, por ejemplo una PC através de la hiperterminal de windows, recibe este dato y lo despliega en una pantalla LCD, además de leer un teclado matricial y enviar el código ascii de la tecla solicitada (0 a F) hacia un dispositivo externo que podría ser una PC para visualizarlo en la hiperterminal de windows. Esta debe ser configurada a 9600 bits por segundo, 8 bits de datos, sin paridad y 1 bit de stop.

;------------------------------------------------------------

org 0H
INI_PRG:
acall INI_UART

RECIBIR:
jnb RI,TECLA ;espera fin de recepción
clr RI
mov A,SBUF ;recibe dato de PC
acall D_LCD ;despliega información en LCD

TECLA:
acall TECLADO ;lee el teclado matricial
cjne A,#10H,ENVIAR ;hay alguna tecla?
sjmp RECIBIR

ENVIAR:
acall ASCII4B ;genera ascii de la tecla
mov SBUF,A ;transmite información a PC
jnb TI,RECIBIR ;espera fin de transmisión
clr TI ;prepara nueva transmisión
sjmp RECIBIR


;**********************************
; Rutina de configuracion de la UART
;---------------------------------------------


INI_UART:
mov SCON,#50H ;transmisión en modo 1, habilita recepción serial
mov TMOD,#20H ;timer 1 en modo 2 autorrecargable
mov TH1,#0FDH ;baud_rate a 9600 @ 11.0592 MHz
mov TL1,#0FDH
setb TR1 ;inicia el baud_rate
ret
;---------------------------------------------

end