Escolar Documentos
Profissional Documentos
Cultura Documentos
2*1 = 2
1*1 = 1
/*
* contadorad.asm
*
* Created: 16/05/2015 11:40:35
* Author: Jonathan Cacuango de la Torre
*/
.include "m164pdef.inc"
// definir variables
.def contador=r16 ;variable q utilizo como contador
.def tempo=r17 ;variable temporal
.def maximo=r18 ;
.cseg
.org 0x0000 ;inicio del programa
ldi contador,0 ;inicialio variable en cero
ldi tempo,0b11111111 ;almaceno el numero 255
ldi maximo,255 ;cargo el numero maximo al q va a llegar el contador
out ddra,tempo ;decalro como salida el puerto A
lazo: ;lazo mas externo
out porta,contador ;cargo en el puerto A la var contador
;ciclo de retraso
ldi tempo,255 ;cargo el numero 255
salto: ;es un ciclo de retraso
dec tempo ;decremento la variable tempo
brne salto ;comparo si es cero
inc contador ;incremento el contador
cp contador,maximo ;realizo una comparacion si llego al numero max deseado
brne lazo ;regreso a salto
decremento: ;ciclo de decremento
out porta,contador ;cargo el contador en el puerto A
;ciclo de retraso
ldi tempo,255 ; cargo 255 en la variabl temporal
salto1:
dec tempo ;deremento el contador
brne salto1 ;regreso a salto1
dec contador ;decremento el contador
brne decremento ;regreso a decremento
rjmp lazo ;regreso al lazo principal
3. Adicionalmente realizar lo que el instructor solicite
.include"m164pdef.inc"
//definir variables
.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
ldi contador,1 ; 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
lazo: out porta,contador ; envo del contenido de contador al Puerto A
ldi r19,10
salto: ;ciclo de retraso
ldi tempo,10 ; se inicia una rutina de retardo
salto1: ;ciclo de retraso
ldi r18,80
salto2: ;ciclo de retraso
dec r18 ; salto se repite 80 veces
brne salto2 ; hasta que la bandera Z=1
dec tempo ;salto que se repite 10 veces
brne salto1
dec r19 ;salto que se repite 10 veces
brne salto
rol contador ; desplazo el bit hacia la izquierda
rjmp lazo ; repitir el proceso indefinidamente