Advertisement
Cianekjrr

Untitled

Jun 16th, 2019
1,237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. start:
  2. mov R0, #0  ;reset rejestru R0
  3.  
  4. setb P0.5   ;ustawienie kolumny 1 (*, 7, 4, 1)
  5. clr P0.6    ;wyzerowanie kolumny 3
  6. call rowScan    ;skok do podprogramu skanującego kolumnę
  7.  
  8. setb P0.4   ;ustawienie kolumny 2 (0, 8, 5, 2)
  9. clr P0.5    ;wyzerowanie kolumny 1
  10. call rowScan    ;skok do podprogramu skanującego kolumnę
  11.  
  12. setb P0.6   ;ustawienie kolumny 3 (#, 9, 6, 3)
  13. clr P0.4    ;wyzerowanie kolumny 2
  14. call rowScan    ;skok do podprogramu skanującego kolumnę
  15.  
  16. jmp foundKey    ;skok do podprogramu obsługującego znaleziony przycisk
  17.  
  18.  
  19. rowScan:        ;skanowanie wierszy danej linii
  20. jnb P0.0, foundKey          ;jeśli w wierszu 1 wciśnięty przycisk - skocz do foundKey
  21. inc R0          ;jeśli nie zwiększ rejestr R0 o 1
  22. jnb P0.1, foundKey          ;jeśli w wierszu 2 wciśnięty przycisk - skocz do foundKey
  23. inc R0          ;jeśli nie, zwiększ rejestr R0 o 1
  24. jnb P0.2, foundKey          ;jeśli w wierszu 3 wciśnięty przycisk - skocz do foundKey
  25. inc R0          ;jeśli nie, zwiększ rejestr R0 o 1
  26. jnb P0.3, foundKey          ;jeśli w wierszu 4 wciśnięty przycisk - skocz do foundKey
  27. inc R0          ;jeśli nie zwiększ rejestr R0 o 1
  28. RET             ;jeśli nic nie wciśnięte w tej kolumnie wróć do miejsca skąd był
  29.  
  30. foundKey:           ;podprogram wywołany jeśli znaleziono wciśnięty klawisz
  31. mov A,R0        ;zapisanie w akumulatorze wartości rejestru R0, czyli numeru wciśniętego klawisza
  32. jmp checkStar
  33.  
  34. checkStar:
  35. cjne A, #00000000b, checkSeven  ;sprawdź czy wciśnięta została gwiazdka, jeśli nie to skocz do etykiety checkSeven
  36. mov P1,#10001111b ;star
  37. jmp start           ;powrót do podprogramu start
  38.  
  39. checkSeven:
  40. cjne A, #00000001b, checkFour
  41. mov P1,#11111000b ;seven
  42. jmp start
  43.  
  44. checkFour:
  45. cjne A, #00000010b, checkOne
  46. mov P1,#10011001b ;four
  47. jmp start
  48.  
  49. checkOne:
  50. cjne A, #00000011b, checkZero
  51. mov P1,#11111001b ;one
  52. jmp start
  53.  
  54. checkZero:
  55. cjne A, #00000100b, checkEight
  56. mov P1,#11000000b ;zero
  57. jmp start
  58.  
  59. checkEight:
  60. cjne A, #00000101b, checkFive
  61. mov P1,#10000000b ;eight
  62. jmp start
  63.  
  64. checkFive:
  65. cjne A, #00000110b, checkTwo
  66. mov P1,#10010010b ;five
  67. jmp start
  68.  
  69. checkTwo:
  70. cjne A, #00000111b, checkHash
  71. mov P1,#10100100b ;two
  72. jmp start
  73.  
  74. checkHash:
  75. cjne A, #00001000b, checkNine
  76. mov P1,#10001001b ;hash
  77. jmp start
  78.  
  79. checkNine:
  80. cjne A, #00001001b, checkSix
  81. mov P1,#10010000b ;nine
  82. jmp start
  83.  
  84. checkSix:
  85. cjne A, #00001010b, checkThree
  86. mov P1,#10000001b ;six
  87. jmp start
  88.  
  89. checkThree:
  90. cjne A, #00001011b, nothing
  91. mov P1,#10110000b ;three
  92. jmp start
  93.  
  94. nothing:
  95. mov P1,#11111111b ;clear
  96. jmp start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement