You are on page 1of 2

.include "m164pdef.

inc"

.equ F_crystal=8000000
.equ bauds=9600

.cseg
.org 0x00
rjmp inicio
.org 0x28
rjmp dato

inicio:
ldi r16,(1<<0)|(1<<1)
out ddrb,r16
com r16
out portb,r16
clr r16
out ddra,r16
out portc,r16
com r16
out porta,r16
out ddrc,r16
ldi r16,(1<<1)
out ddrd,r16

;configurar puertos

ldi r16,low(ramend)
out spl,r16
ldi r16,high(ramend)
out sph,r16

ldi r16, high((F_crystal/(16*bauds))-1)


sts ubrr0h,r16
ldi r16, low((F_crystal/(16*bauds))-1)
sts ubrr0l,r16

ldi R16,0b10011000
sts ucsr0b,r16

ldi r16,0b0000_0110
sts ucsr0c,r16
sei

lazo:

rjmp lazo

dato:
lds r16,ucsr0a
sbrc r16,2
rjmp error_paridad
sbrc r16,4
rjmp error_trama

lds r16,udr0
out portc,r16
esp_tx:
lds r16,ucsr0a
sbrs r16,5
rjmp esp_tx
in r16,pina
sts udr0,r16

reti

error_paridad:
sbi portb,0
RJMP error_paridad

error_trama:
sbi portb,1
rjmp error_trama

reti

You might also like