Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mov 20,#11111111b ;nie zapala
- mov 21,#11111110b ;liczba zapalająca D0
- mov 22,#11111111b ;nie zapala
- mov 23,#11110111b ;nie zapala
- mov 24,#11111111b ;nie zapala
- mov 25,#01111111b ;liczba zapalająca D7
- mov 26,#10111111b ;liczba zapalająca D6
- mov 27,#11011111b ;liczba zapalająca D5
- mov28,#11101111b ;liczba zapalająca D4
- mov29,#11110111b ;liczba zapalająca D3
- mov30,#11111011b ;liczba zapalająca D2
- mov31,#11111101b ;liczba zapalająca D1
- MOV P1,#0ffh ;zgaszenie wszystkich diod
- start:
- MOV R0, #20 ;zapisanie wartości 20 do R0
- ; scan row0
- SETB P0.3 ;ustawienie row3
- CLR P0.0 ;zerowanie row 0
- CALL colScan ;wywołanie podprogramu skanującego kolumnę
- JB F0,delay ;jeżeli F0 jest 1, skocz na koniec tego programu
- ; scan row1
- INC R0 ;inkrementacja R0
- 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
- ; scan row2
- INC R0 ;inkrementacja R0
- SETB P0.1 ;ustawienie row1
- CLR P0.2 ;zerowanie row2
- CALL colScan ;wywołanie podprogramu skanującego kolumnę
- JB F0,delay ; jeżeli F0 jest 1, skocz na koniec tego programu
- ; scan row3
- INC R0 ;inkrementacja R0
- SETB P0.2 ;ustawienie row2
- CLR P0.3 ;czyszczenie row3
- CALL colScan ;wywołanie podprogramu skanującego kolumnę
- JB F0, delay ;jeżeli F0 jest 1, skocz na koniec tego programu
- JMP start ;skok bezwarunkowy
- delay:
- mov P1,@R0 ;adresowanie pośrednie
- JMP $ ;pusta pętla
- ;skanowanie kolumny
- colScan:
- JNB P0.4, gotKey ;jeżeli col 0 wyczyszczona – klawisz znaleziony
- INC R0 ;w przeciwnym razie pójdzie do następnego klawisza
- JNB P0.5, gotKey ;jeżeli col 1 jest wyczyszczona (0) – klawisz znaleziony
- INC R0 ;inkrementacja R0
- JNB P0.6, gotKey ;jeżeli col 2 jest wyczyszczona (0)– klawisz znaleziony
- RET
- gotKey:
- SETB F0 ;klawisz znaleziony – ustaw F0
- RET ;powróć z podprogramu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement