Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- start:
- mov R0, #0 ;reset rejestru R0
- setb P0.5 ;ustawienie kolumny 1 (*, 7, 4, 1)
- clr P0.6 ;wyzerowanie kolumny 3
- call rowScan ;skok do podprogramu skanującego kolumnę
- setb P0.4 ;ustawienie kolumny 2 (0, 8, 5, 2)
- clr P0.5 ;wyzerowanie kolumny 1
- call rowScan ;skok do podprogramu skanującego kolumnę
- setb P0.6 ;ustawienie kolumny 3 (#, 9, 6, 3)
- clr P0.4 ;wyzerowanie kolumny 2
- call rowScan ;skok do podprogramu skanującego kolumnę
- jmp foundKey ;skok do podprogramu obsługującego znaleziony przycisk
- rowScan: ;skanowanie wierszy danej linii
- jnb P0.0, foundKey ;jeśli w wierszu 1 wciśnięty przycisk - skocz do foundKey
- inc R0 ;jeśli nie zwiększ rejestr R0 o 1
- jnb P0.1, foundKey ;jeśli w wierszu 2 wciśnięty przycisk - skocz do foundKey
- inc R0 ;jeśli nie, zwiększ rejestr R0 o 1
- jnb P0.2, foundKey ;jeśli w wierszu 3 wciśnięty przycisk - skocz do foundKey
- inc R0 ;jeśli nie, zwiększ rejestr R0 o 1
- jnb P0.3, foundKey ;jeśli w wierszu 4 wciśnięty przycisk - skocz do foundKey
- inc R0 ;jeśli nie zwiększ rejestr R0 o 1
- RET ;jeśli nic nie wciśnięte w tej kolumnie wróć do miejsca skąd był
- foundKey: ;podprogram wywołany jeśli znaleziono wciśnięty klawisz
- mov A,R0 ;zapisanie w akumulatorze wartości rejestru R0, czyli numeru wciśniętego klawisza
- jmp checkStar
- checkStar:
- cjne A, #00000000b, checkSeven ;sprawdź czy wciśnięta została gwiazdka, jeśli nie to skocz do etykiety checkSeven
- mov P1,#10001111b ;star
- jmp start ;powrót do podprogramu start
- checkSeven:
- cjne A, #00000001b, checkFour
- mov P1,#11111000b ;seven
- jmp start
- checkFour:
- cjne A, #00000010b, checkOne
- mov P1,#10011001b ;four
- jmp start
- checkOne:
- cjne A, #00000011b, checkZero
- mov P1,#11111001b ;one
- jmp start
- checkZero:
- cjne A, #00000100b, checkEight
- mov P1,#11000000b ;zero
- jmp start
- checkEight:
- cjne A, #00000101b, checkFive
- mov P1,#10000000b ;eight
- jmp start
- checkFive:
- cjne A, #00000110b, checkTwo
- mov P1,#10010010b ;five
- jmp start
- checkTwo:
- cjne A, #00000111b, checkHash
- mov P1,#10100100b ;two
- jmp start
- checkHash:
- cjne A, #00001000b, checkNine
- mov P1,#10001001b ;hash
- jmp start
- checkNine:
- cjne A, #00001001b, checkSix
- mov P1,#10010000b ;nine
- jmp start
- checkSix:
- cjne A, #00001010b, checkThree
- mov P1,#10000001b ;six
- jmp start
- checkThree:
- cjne A, #00001011b, nothing
- mov P1,#10110000b ;three
- jmp start
- nothing:
- mov P1,#11111111b ;clear
- jmp start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement