Advertisement
OscarAHB

Untitled

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