Você está na página 1de 4

setup:

LDI R16, 0B11111111; carrega todos os pinos como saída


OUT DDRD, R16

LDI R17, 0B00000000; carrega todos os pinos como entrada


OUT DDRC, R17

LDI R17, 0B00000001; habilita o pull-up do pino PC0


OUT PORTC, R17

;loop principal
rotinainicial:
SBIC PINC, PC0; leitura do pino PC0
RJMP rotinainicial
RJMP numero1

;loops de parada
parada1:
LDI R16, 0B00001000; aciona o led correspondente ao nº1
OUT PORTD, R16
SBIS PINC, PC0
rjmp parada1
rjmp rotinainicial

parada2:
LDI R16, 0B01000001; aciona o led correspondente ao nº2
OUT PORTD, R16
SBIS PINC, PC0
rjmp parada2
rjmp rotinainicial

parada3:
LDI R16, 0B01001001; aciona o led correspondente ao nº3
OUT PORTD, R16
SBIS PINC, PC0
rjmp parada3
rjmp rotinainicial

parada4:
LDI R16, 0B01100011; aciona o led correspondente ao nº4
OUT PORTD, R16
SBIS PINC, PC0
rjmp parada4
rjmp rotinainicial

parada5:
LDI R16, 0B01101011; aciona o led correspondente ao nº5
OUT PORTD, R16
SBIS PINC, PC0
rjmp parada5
rjmp rotinainicial

parada6:
LDI R16, 0B01110111; aciona o led correspondente ao nº6
OUT PORTD, R16
SBIS PINC, PC0
rjmp parada6
rjmp rotinainicial

;loops de verificação
rotina1:
SBIC PINC, PC0; leitura do pino PC0
RJMP numero2
RJMP rotina1

rotina2:
SBIC PINC, PC0; leitura do pino PC0
RJMP numero3
RJMP rotina2

rotina3:
SBIC PINC, PC0; leitura do pino PC0
RJMP numero4
RJMP rotina3

rotina4:
SBIC PINC, PC0; leitura do pino PC0
RJMP numero5
RJMP rotina4

rotina5:
SBIC PINC, PC0; leitura do pino PC0
RJMP numero6
RJMP rotina5

rotina6:
SBIC PINC, PC0; leitura do pino PC0
RJMP numero1
RJMP rotina6

;contagem
numero1:
LDI R16, 0B00001000; aciona o led correspondente ao nº1
OUT PORTD, R16
call atraso
SBIS PINC, PC0
RJMP parada1
RJMP rotina1

numero2:
LDI R16, 0B01000001; aciona o led correspondente ao nº2
OUT PORTD, R16
call atraso
SBIS PINC, PC0
RJMP parada2
RJMP rotina2

numero3:
LDI R16, 0B01001001; aciona o led correspondente ao nº3
OUT PORTD, R16
call atraso
SBIS PINC, PC0
RJMP parada3
RJMP rotina3

numero4:
LDI R16, 0B01100011; aciona o led correspondente ao nº4
OUT PORTD, R16
call atraso
SBIS PINC, PC0
RJMP parada4
RJMP rotina4

numero5:
LDI R16, 0B01101011; aciona o led correspondente ao nº5
OUT PORTD, R16
call atraso
SBIS PINC, PC0
RJMP parada5
RJMP rotina5

numero6:
LDI R16, 0B01110111; aciona o led correspondente ao nº6
OUT PORTD, R16
call atraso
SBIS PINC, PC0
RJMP parada6
RJMP rotina6

;ATRASO

Atraso:
LDI R19, 45
volta:
DEC R17
BRNE volta
DEC R18 //Decrementa r18
BRNE volta // enquanto R18>0 fica decremento r18
DEC R19 //Decrementa r18
BRNE volta // enquanto R18>0 fica decremento r18
RET

Você também pode gostar