You are on page 1of 3

c) Cdigos

.cseg
.org 0x00

configuracion_puertos: //configuramos puertos de entrada y de salida

ldi r16,0b00000000
out ddrc,r16 //puerto C de entrada
ldi r16,0b01111111
out ddrd,r16 //puerto D de salida

interruptor: //Aqui sondeamos si el switch esta abierto o
cerrado
in r17,pinc
andi r17,0b00000001
cpi r17,0b00000000 //Si esta abierto saltara a la cuenta ascendente
breq ascendente //y si esta cerrado seguira con la siguiete
instruccion
//que es la cuenta descentende


descendente: //Al comenzar la cuenta descendente
ldi r20,0b01100111 //Mostramos el numero 9 en el display
out portd,r20 //enseguida, despues de cada pulsada
rcall pulsado //la cuenta ir descendiendo
ldi r20,0b01111111
out portd,r20
rcall pulsado
ldi r20,0b00000111
out portd,r20
rcall pulsado
ldi r20,0b01111100
out portd,r20
rcall pulsado
ldi r20,0b01101101
out portd,r20
rcall pulsado
ldi r20,0b01100110
out portd,r20
rcall pulsado
ldi r20,0b01001111
out portd,r20
rcall pulsado
ldi r20,0b01011011
out portd,r20
rcall pulsado
ldi r20,0b00000110
out portd,r20
rcall pulsado
ldi r20,0b00111111
out portd,r20
rcall pulsado
rjmp interruptor //Al llegar la cuenta a 0 (cero), se volvera a consultar
//si el interruptor esta abierto o cerrado
//y asi ver que tipo de cuenta se har


ascendente: //Al empezar la cuenta ascendente, el display lo pondremos
ldi r20,0b00111111 //en (cero), y luego ir ascendiendo hasta llegar a 9
out portd,r20
rcall pulsado
ldi r20,0b00000110
out portd,r20
rcall pulsado
ldi r20,0b01011011
out portd,r20
rcall pulsado
ldi r20,0b01001111
out portd,r20
rcall pulsado
ldi r20,0b01100110
out portd,r20
rcall pulsado
ldi r20,0b01101101
out portd,r20
rcall pulsado
ldi r20,0b01111100
out portd,r20
rcall pulsado
ldi r20,0b00000111
out portd,r20
rcall pulsado
ldi r20,0b01111111
out portd,r20
rcall pulsado
ldi r20,0b01100111
out portd,r20
rcall pulsado
rjmp interruptor //Al llegar la cuenta a 9, se volvera a consultar
//si el interruptor esta abierto o cerrado
//y asi ver que tipo de cuenta se har


pulsado: //Esta es la rutina para el pulsador
in r18,pinc //para que comience la cuenta, ya sea
andi r18,0b00000010 //ascendente o descendente, se tiene que
cpi r18,0b00000010 //pulsar y soltar el boton
breq soltado
rjmp pulsado
soltado:
in r18,pinc
andi r18,0b00000010
cpi r18,0b00000000
breq retorno
rjmp soltado
retorno:ret









PRIMERA PRACTICA DE MICROCONTROLADORES

a) Diagrama de flujo
Pulsador















b) Circuito Esquemtico

INICIO
Configurar Puertos
PC0 = 1
Cuenta
descendente
Cuenta
ascendente
no
si
Sub rutina para
el pulsador
Sub rutina para
el pulsador
pulsador = 1
pulsador = 0
INICIO
FIN
no
no
si
si
si

You might also like