Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mov 20h,#11000000b ;wyświetlanie liczby 0
- mov 21h,#11000000b ;wyświetlanie liczby 0
- mov 22h,#11000000b ;wyświetlanie liczby 0
- mov 23h,#10010000b ;wyświetlanie liczby 9
- mov 24h,#10000000b ;wyświetlanie liczby 8
- mov 25h,#11111000b ;wyświetlanie liczby 7
- mov 26h,#10000010b ;wyświetlanie liczby 6
- mov 27h,#10010010b ;wyświetlanie liczby 5
- mov 28h,#10011001b ;wyświetlanie liczby 4
- mov 29h,#10110000b ;wyświetlanie liczby 3
- mov 2Ah,#10100100b ;wyświetlanie liczby 2
- mov 2Bh,#11111001b ;wyświetlanie liczby 1
- MOV P1,#0ffh ;zgaszenie wszystkich diod
- start:
- MOV R0, #20h ;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 ;przypisanie wartości zawartej w komórce o adresie zawartym w R0 do P1 (wyświetlenie wartości klawisza)
- 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 ;powrót z podprogramu
- gotKey:
- SETB F0 ;ustawienie flagi
- RET ;powrót z podprogramu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement