You are on page 1of 2

bin_bcd:

push r16
push r17
lds r16,dato
clr r17
bin_bcd_c:subi r16,100
brcs bin_bcd_d
inc r17
rjmp bin_bcd_c
bin_bcd_d:sts dig2,r17
clr r17
subi r16,-100
bin_bcd_d1:subi r16,10
brcs bin_bcd_u
inc r17
rjmp bin_bcd_d1
bin_bcd_u:sts dig1,r17
subi r16,-10
sts dig0,r16
pop r17
pop r16
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;inicialisacion
inicializacion:
push r16
push r17
ldi zl,low(inicial<<1)
ldi zh,high(inicial<<1)
ldi aux,5
dt:lpm tempo,z+
out porta,tempo
sbi portc,0
call retardo
cbi portc,0
dec aux
brne dt
pop r17
pop r16
ret
inicial: .db 0b00111000(38),
0b00001110(0e),0b00001111(0f),
0b00000001(01),0X80
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;retardo
retardo:
push r16
push r17
ldi r16,125
ldi r17,250
retardo1:
dec r16
brne retardo1
dec r17
brne retardo1
pop r17
pop r16
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

bcd_7seg:
push r17
push r16
push zh
push zl
push yh
push yl
push xh
push xl
ldi xh,high(bcd0)
ldi xl,low(bcd0)
ldi yh,high(dig0)
ldi yl,low(dig0)
bcd_7seg_0:
ldi zh,high(tabla<<1)
ldi zl,low(tabla<<1)
ld r16,x+
add zl,r16
clr r16
adc zh,r16
lpm r16,z
st y+,r16
dec r17
brne bcd_7seg_0
pop xl
pop xh
pop yl
pop yh
pop zl
pop zh
pop r16
pop r17
ret

sts eicra=00010101

sts pcicr=00000010; 4 puerto interrupt

out eimsk=00000111

sts pcmsk1=00000111

sei
out 0cr0a
out tccr0a=01000010,toogle a,_,ctc
out tccr0b=000000001;-.-.ctc,reloj(3)(no,1,8,64,256,1024)

You might also like