Está en la página 1de 2

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.


C:\Users\Arthur\Desktop\Proyecto Quinto\PUerto\Serial_Paralelo\Serial_Paralelo.asm

;Descripcion: Programa de prueba para la recepción


;de datos por el puerto serie a otro microcontrolador

.include "m8def.inc"

;Definición de registros

.def temp = r16


.def data = r17
.def datat = r18
.def baderas = r19
.def datat0 = r20
.def aux = r21
.def aux1 = r22

;Definición de vector de interrupciones


.org 0x000 rjmp reset ;Reset
.org 0x001 rjmp USART_T ;interrupcion externa INT0

.org 0x00B rjmp USART_RXC ;recepcion USART

reset:
ldi temp, low(RAMEND) ;iniciar stack pointer
out SPL, temp
ldi temp, high(RAMEND)
out SPH, temp

ldi temp, 0XFF ;Configura puerto B como salida


out DDRB, temp
ldi temp, 0X00 ;Configura puerto C como ENTRADAS
out DDRC, temp
ldi temp, 0X20 ;Configura puerto d como entradas
out DDRD, temp

;Definimos velocidad de 19200 baudios @ 4MHz


ldi temp, 12
out UBRRL, temp
;Habilitaremos el receptor y el transmisor
ldi temp, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)
out UCSRB, temp ;Habilitar RX(recepcion), TX(transmicion) y RXCI(Inter
rupcion de recepcion)
ldi temp, (1<<URSEL)|(3<<UCSZ0)
out UCSRC, temp ;Formato: 8 datos, 1 bit stop

ldi temp, (3<<isc00) ;INT0 disparada por flanco de bajada. carga un numero
apartir de esta posicion
out mcucr, temp
ldi temp, (1<<int0) ;habilitacion de INT0
out gicr, temp
sei

;Subrutina de interrupcion: Lectura de un caracter

inicio: ;Inicio del programa principal

rjmp INICIO

USART_T:

ldi aux, 0x3F


in datat, pinc
and datat, aux

Page: 1
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
C:\Users\Arthur\Desktop\Proyecto Quinto\PUerto\Serial_Paralelo\Serial_Paralelo.asm

ldi datat0, 0
ldi aux1, 0
ldi aux, 0xC0
in datat0, pind
mov aux1, datat0
ror aux1
rol datat0
or datat0, aux1
and datat0, aux
or datat, datat0
out udr, datat

reti

USART_RXC:
;Esperamos a que el dato sea recibido
sbis UCSRA, RXC
rjmp USART_RXC

in data, UDR ;lee el valor de UDR


mov aux1, data

or data, aux1
out portb, data
reti

Page: 2

También podría gustarte