Escolar Documentos
Profissional Documentos
Cultura Documentos
PREPARATORIO:
SISTEMAS MICROPROCESADOS
Prctica #: 09
Realizado por:
(Espacio Reservado)
Fecha de entrega: ____ /____ /____
da
mes
ao
Grupo: 6B
Calificacin:
f.___________________
Recibido por
Comentarios:
_______________________________________________________________________
_
tempo= R16
cont=R17
aux=r18
stop=R19
up=R1
down=R2
dig0=R20
dig1=R21
dig2=R22
.org 0x0
rjmp inicio
.org 0x2
rjmp conteo_up
.org 0x4
rjmp conteo_down
.org 0x24
rjmp conteo_out
inicio:
ldi tempo,0xf
out ddra,tempo
ldi tempo,0x7f
out ddrc,tempo
clr tempo
out ddrb,tempo
out ddrd,tempo
; pull up
in tempo,mcucr
andi tempo,0b11111011
out mcucr,tempo
ser tempo
out portc,tempo
out portd,tempo
ldi tempo,0xf0
out porta,tempo
ldi tempo,0b1000000
out portc,tempo
; stack
clr stop
lazo:
mov tempo,stop
sbrs tempo,0
rjmp normal
rjmp pasado
normal:
in tempo,gifr
sbrs tempo,7
rjmp pasado
ldi tempo,0b11100000
out gifr,tempo
lds tempo,0x60
cp tempo,cont
brcc pasado
sbi
porta,6
cbi porta,7
rjmp display
pasado:
ldi tempo,0b01100000
out gifr,tempo
cbi porta,6
sbi porta,7
cpi cont,0
brcs reinicio
rjmp display
display:
sbis porta,4
rjmp continue1
sbis porta,5
rjmp continue2
rjmp continue3
continue1:
lds tempo,0x61
rjmp barrido
continue2:
lds tempo,0x62
rjmp barrido
continue3:
mov tempo,cont
rjmp barrido
barrido:
rcall bin_bcd
mov tempo,dig0
rcall bcd_7seg
out portc,tempo
ldi tempo,0b11111110
out porta,tempo
rcall retardo
ser tempo
out porta,tempo
mov tempo,dig1
rcall bcd_7seg
out portc,tempo
ldi tempo,0b11111101
out porta,tempo
rcall retardo
ser tempo
out porta,tempo
mov tempo,dig2
rcall bcd_7seg
out portc,tempo
ldi tempo,0b11111011
out porta,tempo
rcall retardo
ser tempo
out porta,tempo
rjmp lazo
bin_bcd:
ldi dig2,0
lazo_100:
subi tempo,100
brcs decenas
inc dig2
rjmp lazo_100
decenas:
ldi aux,100
add tempo,aux
ldi dig1,0
lazo_10:
subi tempo,10
brcs unidades
inc dig1
rjmp lazo_10
unidades:
ldi aux,10
add tempo,aux
mov dig0,tempo
ret
bcd_7seg:
ldi zl,low(tabla*2)
ldi zh,high(tabla*2)
add zl,tempo
clr tempo
adc zh,tempo
lpm tempo,z
ret
retardo:
lazo_ret:
ldi tempo,255
nop
nop
nop
dec tempo
brne lazo_ret
ret
tabla:
.db
.db
.db
.db
.db
0b00111111,0b00000110
0b01011011,0b01001111
0b01100110,0b01101101
0b01111101,0b00000111
0b01111111,0b01101111
conteo_up:
push tempo
push dig0
push dig1
push dig2
push aux
in tempo,sreg
push tempo
inc cont
inc up
sts 0x61,up
pop tempo
out sreg,tempo
pop aux
pop dig2
pop dig1
pop dig0
pop tempo
reti
conteo_down:
push tempo
push dig0
push dig1
push dig2
push aux
in tempo,sreg
push tempo
dec cont
inc down
sts 0x62,down
pop tempo
out sreg,tempo
pop aux
pop dig2
pop dig1
pop dig0
pop tempo
reti
;0,1
;2,3
;4,5
;6,7
;8,9
conteo_out:
push tempo
push dig0
push dig1
push dig2
push aux
in tempo,sreg
push tempo
inc stop
pop tempo
out sreg,tempo
pop aux
pop dig2
pop dig1
pop dig0
pop tempo
reti
BIBILOGRAFIA: