Advertisement
Cianekjrr

Untitled

Jun 18th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. mov 20h,#11000000b   ;wyświetlanie liczby 0
  2. mov 21h,#11000000b   ;wyświetlanie liczby 0
  3. mov 22h,#11000000b   ;wyświetlanie liczby 0
  4. mov 23h,#10010000b   ;wyświetlanie liczby 9
  5. mov 24h,#10000000b   ;wyświetlanie liczby 8
  6. mov 25h,#11111000b   ;wyświetlanie liczby 7
  7. mov 26h,#10000010b   ;wyświetlanie liczby 6
  8. mov 27h,#10010010b   ;wyświetlanie liczby 5
  9. mov 28h,#10011001b   ;wyświetlanie liczby 4
  10. mov 29h,#10110000b   ;wyświetlanie liczby 3
  11. mov 2Ah,#10100100b   ;wyświetlanie liczby 2
  12. mov 2Bh,#11111001b   ;wyświetlanie liczby 1
  13.  
  14.  
  15. MOV P1,#0ffh         ;zgaszenie wszystkich diod
  16.  
  17. start:
  18. MOV R0, #20h         ;zapisanie wartości 20 do R0
  19.  
  20. ; scan row0
  21. SETB P0.3            ;ustawienie row3
  22. CLR P0.0             ;zerowanie row 0
  23. CALL colScan         ;wywołanie podprogramu skanującego kolumnę
  24. JB F0,delay          ;jeżeli F0 jest 1, skocz na koniec tego programu
  25.  
  26. ;scan row1
  27. INC R0              ;inkrementacja R0
  28. SETB P0.0           ;ustawienie row0
  29. CLR P0.1            ;zerowanie row1
  30. CALL colScan        ;wywołanie podprogramu skanującego kolumnę  
  31. JB F0, delay        ;jeżeli F0 jest 1, skocz na koniec tego programu  
  32.                
  33. ;scan row2
  34. INC R0              ;inkrementacja R0
  35. SETB P0.1           ;ustawienie row1
  36. CLR P0.2            ;zerowanie row2
  37. CALL colScan        ;wywołanie podprogramu skanującego kolumnę      
  38. JB F0,delay         ;jeżeli F0 jest 1, skocz na koniec tego programu  
  39.    
  40.  
  41. ;scan row3
  42. INC R0              ;inkrementacja R0
  43. SETB P0.2           ;ustawienie row2
  44. CLR P0.3            ;czyszczenie row3
  45. CALL colScan        ;wywołanie podprogramu skanującego kolumnę    
  46. JB F0, delay        ;jeżeli F0 jest 1, skocz na koniec tego programu  
  47. JMP start           ;skok bezwarunkowy
  48.  
  49. delay:
  50. mov P1,@R0          ;przypisanie wartości zawartej w komórce o adresie zawartym w R0 do P1 (wyświetlenie wartości klawisza)
  51. JMP $               ;pusta pętla
  52.  
  53. ;skanowanie kolumny
  54. colScan:
  55. JNB P0.4, gotKey    ;jeżeli col 0 wyczyszczona – klawisz znaleziony
  56. INC R0              ; w przeciwnym razie pójdzie do następnego klawisza
  57. JNB P0.5, gotKey    ;jeżeli col 1 jest wyczyszczona (0) – klawisz znaleziony  
  58. INC R0              ;inkrementacja R0  
  59. JNB P0.6, gotKey    ;jeżeli col 2 jest wyczyszczona (0)– klawisz znaleziony  
  60. RET                 ;powrót z podprogramu
  61.  
  62. gotKey:
  63. SETB F0             ;ustawienie flagi
  64. RET                 ;powrót z podprogramu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement