Vous êtes sur la page 1sur 13

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag.

PROGRAMA DE TRANSMISIN DE UN TEXTO


Programa para comprobar con el Terminal Virtual que posee el simulador del PROTEUS, la transmisin de un texto mediante el USART (Receptor y Transmisor Universal Sincrnico y Asincrnico) que posee el ATmega16, sin utilizar interrupciones y configurado en el modo asincrnico. Circuito de comprobacin y Cdigo del programa:

.NOLIST .INCLUDE .LIST ; .DEF .DEF .DEF ; .CSEG

"m16def.inc"

AUX1 = R16 AUX2 = R17 AUX3 = R18

JMP PROGP ; PROGP: ; PROGRAMACIN DEL REGISTRO DE CONTROL C ; URSEL=1 PARA ACCEDER AL REGISTRO UCSRC ; UMSEL=0 TRABAJAR EN EL MODO ASINCRNICO ; UPM1:0=00 DESHABILITAR LA PARIDAD ; USBS=1 DOS BITS DE PARADA ; UCSZ1:0=11 TAMAO DEL CARACTER DE 8 BITS ; UCPOL=0 POLARIDAD DEL RELOJ NO SE USA EN ASINCRNICO LDI AUX1,0B10001110 OUT UCSRC,AUX1
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 2

; PROGRAMACIN DEL REGISTRO DE CONTROL B ; RXCIE=0 DESHABILITA LAS INTERRUPCIONES EN LA RECEPCIN ; TXCIE=0 DESHABILITA LAS INTERRUPCIONES EN LA TRANSMISIN ; UDRIE=0 DESHABILITA LAS INTERRUPCIONES DATOS VACO ; RXEN=1 HABILITA LA RECEPCIN ; TXEN=1 HABILITA LA TRANSMISIN ; UCSZ2=0 TAMAO DEL CARACTER DE 8 BITS ; RXB8=0 NOVENO BIT DE LA RECEPCIN ; TXB8=0 NOVENO BIT DE LA TRANSMISIN LDI AUX1,0B00011000 OUT UCSRB,AUX1 ; PROGRAMACIN DE LA VELOCIDAD DE TRANSMISIN ; URSEL=0 PARA ACCEDER AL REGISTRO UBRRC ; TRES BITS RESERVADOS EN 000 ; UBRR11:8=0000 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,0B00000000 OUT UBRRH,AUX1 ;UBRR7:0 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,25 ;BR=2400 CON U2X=0 OUT UBRRL,AUX1 ; PARA ENVIAR UN MENSAJE SEND: LDI ZL,LOW(MSJ<<1) LDI ZH,HIGH(MSJ<<1) SEND1: LPM AUX2,Z+ OUT UDR,AUX2 ; LAZO HASTA QUE ENCIENDA LA BANDERA TRANSMISIN COMPLETA SEND2: IN AUX1,UCSRA SBRS AUX1,TXC RJMP SEND2 ; BORRAR LA BANDERA DE TRANSMISIN COMPLETA ; MANTENER EL VALOR DE U2X LDI AUX1,0B01100000 ;U2X=0 OUT UCSRA,AUX1 ; ULTIMO CARACTER CPI AUX2,0x0A BRNE SEND1 ; LAZO HASTA QUE ENCIENDA LA BANDERA RECEPCIN COMPLETA RECIBE: IN AUX1,UCSRA SBRS AUX1,RXC RJMP RECIBE IN AUX1,UDR ; RJMP SEND ; 0x00,"EJEMPLO: TRANSMISION DE UN TEXTO.",0x0D,0x0A MSJ: .DB ; .EXIT ; FIN DEL MODULO FUENTE

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 3

Resultado de la ejecucin del programa, quedando en la espera del envo de cualquier letra desde el Terminal Virtual

Resultado despus de que se han enviado tres letras

Resultado con el Terminal Virtual configurado al Baud Rate de 1200


Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 4

Resultado con el Terminal Virtual configurado al Baud Rate de 4800 El simulador del PROTEUS tambin posee como instrumentos de medida un Analizador Lgico, mediante el cual se puede observar las formas de ondas que se transmiten y se reciben; por lo cual se implementa el siguiente circuito, donde el canal A0 se conecta a la lnea de transmisin y el canal A1 a la lnea de recepcin.

Una vez que se arranca la simulacin, para observar el resultado en el analizador lgico se configura el disparo con transicin negativa en el canal A0, la resolucin con la que se captura la informacin a 1 microsegundo y la escala con la que se muestran las seales a 1 milisegundo; se activa la captura con el botn respectivo y se enva cualquier letra mediante el terminal virtual.

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 5

E a

Resultado cuando se enva una a minscula

PROGRAMA PARA IDENTIFICAR UN CARACTER ESPECFICO QUE SE RECIBE


Programa para comprobar el instante en que mediante el Terminal Virtual se enva al microcontrolador un caracter especfico; como por ejemplo la letra Z mayscula. Cdigo del programa: .NOLIST .INCLUDE .LIST ; .DEF .DEF .DEF ; .CSEG

"m16def.inc"

AUX1 = R16 AUX2 = R17 AUX3 = R18

JMP

PROGP

; PROGP: ; PROGRAMACIN DEL REGISTRO DE CONTROL C ; URSEL=1 PARA ACCEDER AL REGISTRO UCSRC ; UMSEL=0 TRABAJAR EN EL MODO ASINCRNICO
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 6

; UPM1:0=00 DESHABILITAR LA PARIDAD ; USBS=1 DOS BITS DE PARADA ; UCSZ1:0=11 TAMAO DEL CARACTER DE 8 BITS ; UCPOL=0 POLARIDAD DEL RELOJ NO SE USA EN ASINCRNICO LDI AUX1,0B10001110 OUT UCSRC,AUX1 ; PROGRAMACIN DEL REGISTRO DE CONTROL B ; RXCIE=0 DESHABILITA LAS INTERRUPCIONES EN LA RECEPCIN ; TXCIE=0 DESHABILITA LAS INTERRUPCIONES EN LA TRANSMISIN ; UDRIE=0 DESHABILITA LAS INTERRUPCIONES DATOS VACO ; RXEN=1 HABILITA LA RECEPCIN ; TXEN=1 HABILITA LA TRANSMISIN ; UCSZ2=0 TAMAO DEL CARACTER DE 8 BITS ; RXB8=0 NOVENO BIT DE LA RECEPCIN ; TXB8=0 NOVENO BIT DE LA TRANSMISIN LDI AUX1,0B00011000 OUT UCSRB,AUX1 ; DUPLICACIN DE LA VELOCIDAD LDI AUX1,0B00000010 ;U2X=1 OUT UCSRA,AUX1 ; PROGRAMACIN DE LA VELOCIDAD DE TRANSMISIN ; URSEL=0 PARA ACCEDER AL REGISTRO UBRRC ; TRES BITS RESERVADOS EN 000 ; UBRR11:8=0000 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,0B00000000 OUT UBRRH,AUX1 ;UBRR7:0 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,12 ;BR=9600 CON U2X=1 OUT UBRRL,AUX1 ; PARA ENVIAR UN MENSAJE SEND: LDI ZL,LOW(MSJ<<1) LDI ZH,HIGH(MSJ<<1) SEND1: LPM AUX2,Z+ OUT UDR,AUX2 ; LAZO HASTA QUE ENCIENDA LA BANDERA TRANSMISIN COMPLETA SEND2: IN AUX1,UCSRA SBRS AUX1,TXC RJMP SEND2 ; BORRAR LA BANDERA DE TRANSMISIN COMPLETA ; MANTENER EL VALOR DE U2X LDI AUX1,0B01100010 OUT UCSRA,AUX1 ; ULTIMO CARACTER CPI AUX2,0x0A BRNE SEND1 ; ; LAZO HASTA QUE ENCIENDA LA BANDERA RECEPCIN COMPLETA RECIBE: IN AUX1,UCSRA SBRS AUX1,RXC RJMP RECIBE
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 7

IN AUX1,UDR ; COMPRUEBA QUE SEA UNA LETRA ESPECFICA CPI AUX1,'Z' BRNE RECIBE ; RJMP SEND ; 0x00,"EJEMPLO: RECEPCION DE UNA LETRA ESPECIFICA.",0x0D,0x0A MSJ: .DB ; .EXIT ; FIN DEL MODULO FUENTE

Resultado de la ejecucin del programa, quedando en la espera del envo de la letra Z mayscula desde el Terminal Virtual

Resultado cuando se ha recibido la letra Z mayscula Para observar el resultado en el analizador lgico se configura el disparo con transicin negativa en el canal A1, la resolucin con la que se captura la informacin a 5 microsegundos y la escala con la que se muestran las seales a 0,25 milisegundos; se activa la captura con el botn respectivo y se envan letras mediante el terminal virtual.

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 8

El microcontrolador no transmite

Respuesta a letras diferentes a la Z mayscula

El microcontrolador si transmite

Respuesta a la Z mayscula
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 9

PROGRAMA PARA RETRANSMITIR UN TEXTO QUE SE RECIBE


Programa para recibir un texto enviado por el Terminal Virtual, almacenarlo en memoria y volverlo a retransmitirlo. Cdigo del programa:

.NOLIST .INCLUDE .LIST ; .DEF .DEF .DEF ; .DSEG HEADER: BUFFER: ; .CSEG ; PROGP:

"m16def.inc"

AUX1 = R16 AUX2 = R17 AUX3 = R18

.BYTE 3 .BYTE 100

JMP

PROGP

LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1 ; PROGRAMACIN DEL REGISTRO DE CONTROL C ; URSEL=1 PARA ACCEDER AL REGISTRO UCSRC ; UMSEL=0 TRABAJAR EN EL MODO ASINCRNICO ; UPM1:0=00 DESHABILITAR LA PARIDAD ; USBS=1 DOS BITS DE PARADA ; UCSZ1:0=11 TAMAO DEL CARACTER DE 8 BITS ; UCPOL=0 POLARIDAD DEL RELOJ NO SE USA EN ASINCRNICO LDI AUX1,0B10001110 OUT UCSRC,AUX1 ; PROGRAMACIN DEL REGISTRO DE CONTROL B ; RXCIE=0 DESHABILITA LAS INTERRUPCIONES EN LA RECEPCIN ; TXCIE=0 DESHABILITA LAS INTERRUPCIONES EN LA TRANSMISIN ; UDRIE=0 DESHABILITA LAS INTERRUPCIONES DATOS VACO ; RXEN=1 HABILITA LA RECEPCIN ; TXEN=1 HABILITA LA TRANSMISIN ; UCSZ2=0 TAMAO DEL CARACTER DE 8 BITS ; RXB8=0 NOVENO BIT DE LA RECEPCIN ; TXB8=0 NOVENO BIT DE LA TRANSMISIN LDI AUX1,0B00011000 OUT UCSRB,AUX1
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 10

; DUPLICACIN DE LA VELOCIDAD LDI AUX1,0B00000010 ;U2X=1 OUT UCSRA,AUX1 ; PROGRAMACIN DE LA VELOCIDAD DE TRANSMISIN ; URSEL=0 PARA ACCEDER AL REGISTRO UBRRC ; TRES BITS RESERVADOS EN 000 ; UBRR11:8=0000 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,0B00000000 OUT UBRRH,AUX1 ;UBRR7:0 REGISTRO DEL BAUD RATE CON 1 MHz LDI AUX1,12 ;BR=9600 CON U2X=1 OUT UBRRL,AUX1 ; ENCABEZADO DE LA RETRANSMISIN LDI AUX1,'>' STS HEADER+0,AUX1 STS HEADER+1,AUX1 STS HEADER+2,AUX1 ; PARA ENVIAR EL MENSAJE DE INICIO INICIO: LDI ZL,LOW(MSJ01<<1) LDI ZH,HIGH(MSJ01<<1) RCALL SEND ; PARA ALMACENAR EL MENSAJE QUE LLEGA SERIALMENTE LDI XL,LOW(BUFFER) LDI XH,HIGH(BUFFER) RECIBE: IN AUX1,UCSRA SBRS AUX1,RXC RJMP RECIBE IN AUX1,UDR ; ALMACENA LOS CARACTERES ST X+,AUX1 ; COMPRUEBA QUE SEA FIN DEL MENSAJE CPI AUX1,0x0D BRNE RECIBE ; PARA SEPARAR LDI ZL,LOW(MSJ04<<1) LDI ZH,HIGH(MSJ04<<1) RCALL SEND ; PARA CONFIRMAR LA RECEPCIN LDI ZL,LOW(MSJ02<<1) LDI ZH,HIGH(MSJ02<<1) RCALL SEND ; PARA RE-ENVIAR EL MENSAJE LDI XL,LOW(HEADER) LDI XH,HIGH(HEADER) RSND: LD AUX2,X+ OUT UDR,AUX2 ; LAZO HASTA QUE ENCIENDA LA BANDERA TRANSMISIN COMPLETA RSND1: IN AUX1,UCSRA SBRS AUX1,TXC RJMP RSND1
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 11

; BORRAR LA BANDERA DE TRANSMISIN COMPLETA ; MANTENER EL VALOR DE U2X LDI AUX1,0B01100010 OUT UCSRA,AUX1 ; LTIMO CARACTER CPI AUX2,0x0D BRNE RSND ; ; PARA CONFIRMAR LA TRANSMISIN LDI ZL,LOW(MSJ03<<1) LDI ZH,HIGH(MSJ03<<1) RCALL SEND ; PARA SEPARAR LDI ZL,LOW(MSJ04<<1) LDI ZH,HIGH(MSJ04<<1) RCALL SEND ; RJMP INICIO ; SUBRUTINA PARA ENVIAR UN MENSAJE SEND: LPM AUX2,Z+ OUT UDR,AUX2 ; LAZO HASTA QUE ENCIENDA LA BANDERA TRANSMISIN COMPLETA SEND1: IN AUX1,UCSRA SBRS AUX1,TXC RJMP SEND1 ; BORRAR LA BANDERA DE TRANSMISIN COMPLETA ; MANTENER EL VALOR DE U2X LDI AUX1,0B01100010 OUT UCSRA,AUX1 ; LTIMO CARACTER CPI AUX2,0x0A BRNE SEND RET ; 0x00,"EJEMPLO: RETRANSMISION DE UN MENSAJE",0x0D,0x0A,0x0D MSJ01: .DB MSJ02: .DB "MENSAJE RECIBIDO",0x0D,0x0A MSJ03: .DB "MENSAJE RETRANSMITIDO ",0x0D,0x0A MSJ04: .DB 0x0D,0x0A ; .EXIT ; FIN DEL MODULO FUENTE

Para la comprobacin del programa se han enviado los siguientes textos, terminando cada uno de ellos con la tecla ENTER que enva el caracter 0x0D, que corresponde al Retorno del carro en los terminales: Primer texto Segundo texto Tercer texto Hola Escuela Politcnica Nacional 911 es el telefono de emergencia

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 12

En espera del primer texto que se enve desde el Terminal Virtual

Respuesta al envo del primer texto y en espera del segundo

Respuesta al envo del segundo texto y en espera del tercero

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS Ejercicios para comprobar el funcionamiento del USART Pag. 13

Respuesta al tercer texto y en espera de un nuevo texto

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

Vous aimerez peut-être aussi