Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include"m16def.inc"
- .org 0x0
- rjmp main
- main:
- //Declaramos pila
- ldi r16, low(RAMEND)
- out spl, r16
- ldi r16, high(RAMEND)
- out sph, r16
- //Ponemos puertoC en lectura
- clr r16
- out ddrc, r16
- in r16, pinc
- ldi r17, 0 ;Contador de coincidencias inicializado en 0
- ldi r18, 50 ;Contador de numeros a comparar (tenemos 50 datos)
- //Preparamos puntero z
- ldi zh, high(tablavalores<<1)
- ldi zl, low(tablavalores<<1)
- //Hacemos el loop donde compara y agrega cuantos números son iguales
- decremento: lpm r19, z+
- cpse r16, r19
- rjmp contador
- inc r17
- contador: dec r18
- brne decremento
- //Preparo puerto A de salida
- ser r16
- out ddra, r16
- //Guardamos el numero de veces que se repitió el numero, encendemos LED y desplegamos numero de repeticiones
- sts 0x70, r17
- lds r16, 0x70
- out porta, r16
- sbi portb, 7
- //Creamos tabla en ROM
- .org 0x300
- tablavalores:
- .db 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 7, 24, 25, 26, 27, 28
- .db 7, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 7, 46, 47, 7, 49, 50
- fin: rjmp fin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement