Académique Documents
Professionnel Documents
Culture Documents
"m16def.inc"
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
; 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
Resultado de la ejecucin del programa, quedando en la espera del envo de cualquier letra desde el Terminal Virtual
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.
E a
"m16def.inc"
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
; 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
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.
El microcontrolador no transmite
El microcontrolador si transmite
Respuesta a la Z mayscula
Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin
.NOLIST .INCLUDE .LIST ; .DEF .DEF .DEF ; .DSEG HEADER: BUFFER: ; .CSEG ; PROGP:
"m16def.inc"
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
; 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
; 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