Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- start:
- MOV R0,#0 ;zerowanie R0 – pierwszym klawiszem jest 0 scan row0
- SETB P0.3 ;ustawienie row3
- CLR P0.0 ;zerowanie row0
- CALL colScan ;wywołanie podprogramu skanującego kolumne
- JB F0,delay ;jeżeli F0 jest 1,skocz na koniec tego programu ponieważ naciśniety klawisz
- ; został znaleziony jego nr zapisuje siędo R0
- ;scan row1
- SETB P0.0 ;ustawienie row0
- CLR P0.1 ;zerowanie row1
- CALL colScan ;wywołanie podprogramu skanującego kolumnę
- JB F0,delay ; jeżeli F0 jest 1,skocz na koniec tego programu ponieważ naciśniety klawisz
- ; został znaleziony jego nr zapisuje siędo R0
- ; scan row2
- SETB P0.1 ;ustawienie row1
- CLR P0.2 ;zerowanie row2
- CALL colScan ;wywołanie podprogramu skanującego kolumne
- JB F0,delay ; jeżeli F0 jest 1,skocz na koniec tego programu ponieważ naciśniety klawisz
- ; został znaleziony jego nr zapisuje siędo R0
- ; scan row3
- SETB P0.2 ;ustawienie row2
- CLR P0.3 ;czyszczenie row3
- CALL colScan ;wywołanie podprogramu skanującego kolumne
- JB F0,delay ;(ponieważ naciśnięty klawisz został znaleziony jego nr zapisuje się do R0)
- JMP start ;powrót do skanowania row0
- ;podprogram do skanowania kolumny
- colScan:
- JNB p0.4,gotkey ;jeżeli col 0 wyczyszczona (0) – klawisz znaleziony
- INC R0 ;w przeciwnym razie pójdzie do następnego klawisza
- JNB p0.5,gotkey ;jeżeli col 1 wyczyszczona (0)– klawisz znaleziony
- INC R0 ;inkrementacja
- JNB p0.6,gotkey ;jeżeli col 2 jest wyczyszczona (0)– klawisz znaleziony
- INC R0 ;w przeciwnym razie pójdzie do następnego klawisza
- RET ;powrót z podprogramu – klawisz nie znaleziony
- ;podprogram gdy klawisz znaleziony
- gotkey:
- SETB F0 ;ustaw F0
- RET ;I powróć z podprogramu
- delay: ;podprogram zajmujący się silnikiem
- setb p3.1 ;ustawienie obrotów silnika w lewo
- clr p3.0
- mov acc,#120 ;załadowanie do akumulatora wartości która opóźni przejście do ;kolejnej komendy
- djnz acc,$ ;dekrementacja I skok po wyzerowaniu akumulatora
- clr p3.1 ;ustawienie obrotów silnika w prawo
- setb p3.0
- mov acc,#120 ;ponowne załadowanie opóźnienia
- djnz acc,$
- jmp delay ;skok do początku pętli
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement