Você está na página 1de 3

Anexo#1

Codigo:

;Inform
;Ruben Arauz
.def contador = R16 ; se define R16 como el contador
.def tempo = R17 ; este es un registro auxiliar
.cseg
.org 0x0000 ; todos los programas inician en 0x0000
rjmp inicio
inicio:
clr contador
; inicio la cuenta en cero
ldi tempo,0b11111111 ; para definir al Puerto A como salida se debe
out ddra,tempo ; poner 1L en cada uno de los bits del DDRA
//+++++++++++++++++++++ASCENDENTE+++++++++++++++++
lazo:
out porta,contador ; envo del contenido de contador al Puerto A
ldi tempo,0xf9 ; se inicia una rutina de retardo
salto:
dec tempo ; salto se repite 249 veces
brne salto ; hasta que la bandera Z=1
inc contador ; incremento del contador en una unidad
cpi contador,255 ; compara si contador = 255
breq lazo1 ; salta a conteo descendente si contador llega al max = 255
rjmp lazo
//++++++++++++++++++++DESCENDENTE++++++++++++++++
lazo1:
out porta,contador ; envo del contenido de contador al Puerto A
ldi tempo,0xf9 ; se inicia una rutina de retardo
salto1:
dec tempo ; salto se repite 249 veces
brne salto1 ; hasta que la bandera Z=1
dec contador ; decremento del contador en una unidad
cpi contador,0 ; compara si contador=0
breq lazo ; vuelve al lazo si contador no es = 0, e inicia nuevamente
; si llega al mximo 255, al incrementar vuelve a 0
rjmp lazo1

Capturas de Pantalla:

Circuito:
Analizador Lgico:

Você também pode gostar