Advertisement
Cianekjrr

Untitled

Jun 18th, 2019
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. start:
  2. MOV R0,#0       ;zerowanie R0 – pierwszym klawiszem jest 0 scan row0
  3. SETB P0.3       ;ustawienie row3
  4. CLR P0.0        ;zerowanie row0
  5. CALL colScan    ;wywołanie podprogramu skanującego kolumne
  6. JB F0,delay     ;jeżeli F0 jest 1,skocz na koniec tego programu ponieważ naciśniety klawisz
  7.                 ; został znaleziony jego nr zapisuje siędo R0
  8.    
  9. ;scan row1
  10. SETB P0.0       ;ustawienie row0   
  11. CLR P0.1        ;zerowanie row1
  12. CALL colScan    ;wywołanie podprogramu skanującego kolumnę
  13. JB F0,delay     ; jeżeli F0 jest 1,skocz na koniec tego programu ponieważ naciśniety klawisz
  14.                 ; został znaleziony jego nr zapisuje siędo R0
  15.  
  16. ; scan row2
  17. SETB P0.1       ;ustawienie row1
  18. CLR P0.2        ;zerowanie row2
  19. CALL colScan    ;wywołanie podprogramu skanującego kolumne
  20. JB F0,delay     ; jeżeli F0 jest 1,skocz na koniec tego programu ponieważ naciśniety klawisz
  21.                 ; został znaleziony jego nr zapisuje siędo R0
  22.  
  23. ; scan row3
  24. SETB P0.2       ;ustawienie row2
  25. CLR P0.3        ;czyszczenie row3
  26. CALL colScan    ;wywołanie podprogramu skanującego kolumne
  27. JB F0,delay     ;(ponieważ naciśnięty klawisz został znaleziony jego nr zapisuje się do R0)
  28. JMP start       ;powrót do skanowania row0
  29.  
  30.  
  31. ;podprogram do skanowania kolumny
  32. colScan:
  33. JNB p0.4,gotkey ;jeżeli col 0 wyczyszczona (0) – klawisz znaleziony
  34. INC R0          ;w przeciwnym razie pójdzie do następnego klawisza
  35. JNB p0.5,gotkey ;jeżeli col 1 wyczyszczona (0)– klawisz znaleziony
  36. INC R0          ;inkrementacja
  37. JNB p0.6,gotkey ;jeżeli col 2 jest wyczyszczona (0)– klawisz znaleziony
  38.  
  39. INC R0          ;w przeciwnym razie pójdzie do następnego klawisza
  40. RET             ;powrót z podprogramu – klawisz nie znaleziony
  41.                
  42. ;podprogram gdy klawisz znaleziony
  43. gotkey:        
  44. SETB F0         ;ustaw F0
  45. RET             ;I powróć z podprogramu
  46.  
  47.  
  48. delay:          ;podprogram zajmujący się silnikiem  
  49. setb p3.1       ;ustawienie obrotów silnika w lewo
  50. clr p3.0
  51. mov acc,#120    ;załadowanie do akumulatora wartości która opóźni przejście do ;kolejnej komendy
  52. djnz acc,$      ;dekrementacja I skok po wyzerowaniu akumulatora
  53. clr p3.1        ;ustawienie obrotów silnika w prawo
  54. setb p3.0      
  55. mov acc,#120    ;ponowne załadowanie opóźnienia
  56. djnz acc,$
  57. jmp delay       ;skok do początku pętli
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement