Advertisement
Cianekjrr

Untitled

Jun 18th, 2019
623
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; wprowadzanie danych do RAM
  2. MOV 30H, #'A'       ;wprowadzenie litery A pod adres 30H
  3. MOV 31H, #'7'
  4. MOV 32H, #'X'
  5. MOV 33H, #'1'
  6. MOV 34H, #'S'
  7. MOV 35H, #'1'
  8. MOV 36H, #0         ;koniec wprowadzania danych
  9.  
  10. ; Inicjalizacja wyświetlacza
  11. CLR P1.3 ; clear RS - ;wskazuje, że instrukcja została wysłana do modułu
  12.  
  13. ; ustawienie funkcji
  14. CLR P1.7
  15. CLR P1.6
  16. SETB P1.5
  17. CLR P1.4            ;ustawienie wysokiej części bajta
  18. SETB P1.2
  19. CLR P1.2
  20. CALL delay          ;wywołanie podprogramu delay
  21.  
  22. ;ustawienie funkcji do wysyłania po raz pierwszy - informuje moduł, że będzie pracował w rodzaju 4-bitowym
  23. SETB P1.2
  24. CLR P1.2            ;zbocze opadające na E
  25.                     ; ta sama funkcja ustawia wysoką część bajtu do wysyłania po raz drugi
  26. SETB P1.7 ; ustawienie poziomu na P1.7
  27. SETB P1.2
  28. CLR P1.2            ;zbocze opadające na E
  29.                     ; funkcja ustawia niski poziom do wysyłania
  30. CALL delay          ; oczekiwania na BF w celu czyszczenia
  31.  
  32. ; zestaw trybów wprowadzania
  33. ; zestaw do zwiększania bez przesuwania
  34. CLR P1.7
  35. CLR P1.6
  36. CLR P1.5
  37. CLR P1.4            ;ustawienie wysokiego poziomu
  38. SETB P1.2
  39. CLR P1.2            ;opadające zbocze na E
  40. SETB P1.6
  41. SETB P1.5           ;ustawienie niskiego poziomu
  42. SETB P1.2
  43. CLR P1.2            ;opadające zbocze na E
  44. CALL delay          ;wywołanie podprogramu delay
  45.  
  46. ; sterowanie włączanie i wyłączaniem wyświetlacza
  47. CLR P1.7
  48. CLR P1.6
  49. CLR P1.5
  50. CLR P1.4            ;ustawienie wysokiego poziomu
  51. SETB P1.2
  52. CLR P1.2
  53. SETB P1.7
  54. SETB P1.6
  55. SETB P1.5
  56. SETB P1.4           ;ustawienie niskiego poziomu
  57. SETB P1.2
  58. CLR P1.2            ;opadające zbocze na E
  59. CALL delay          ;wywołanie podprogramu delay
  60.  
  61. ;wysyłanie danych
  62. SETB P1.3           ;clear RS - wskazuje, że dane są wysyłane do modułu ,
  63. MOV R1, #30H        ;dana, która będzie wysłana do LCD jest zapisywana do RAM ; w rejestrze R1, zaczynając od lokacji 30H
  64.  
  65. loop:
  66. MOV A, @R1          ;przesunięcie danej z pod adresu R1 do akumulatora A
  67. JZ finish           ;Jeśli A jest równe 0, to wtedy koniec danych został osiągnięty - ;skok do pętli finish
  68. CALL sendCharacter  ;wywołanie podprogramu wysyłania litery do modułu LCD
  69. INC R1              ;incrementacja R1 - przejście do następnej części danych JMP loop ; skok do loop
  70. JMP loop
  71.  
  72. finish:
  73. JMP $               ;pętla nieskończona
  74. sendCharacter:      ;podprogram wysyłania litery
  75. MOV C, ACC.7        ;wstawienie 7 bitu akumulatora do etykiety przeniesienia C
  76. MOV P1.7, C         ;Podanie na P1.7 wartości C (0 lub 1)
  77. MOV C, ACC.6        ;wstawienie 6 bitu akumulatora do etykiety przeniesienia C
  78. MOV P1.6, C         ;Podanie na P1.6 wartości C (0 lub 1)
  79. MOV C, ACC.5        ;wstawienie 5 bitu akumulatora do etykiety przeniesienia C
  80. MOV P1.5, C         ;Podanie na P1.5 wartości C (0 lub 1)
  81. MOV C, ACC.4        ;wstawienie 4 bitu akumulatora do etykiety przeniesienia C
  82. MOV P1.4, C         ;Podanie na P1.5 wartości C (0 lub 1)
  83. SETB P1.2
  84. CLR P1.2            ;opadające zbocze na E
  85. MOV C, ACC.3        ;wstawienie 3 bitu akumulatora do etykiety przeniesienia C
  86. MOV P1.7, C         ;Podanie na P1.7 wartości C (0 lub 1)
  87. MOV C, ACC.2        ;wstawienie 2 bitu akumulatora do etykiety przeniesienia C
  88. MOV P1.6, C         ;Podanie na P1.6 wartości C (0 lub 1)
  89. MOV C, ACC.1        ;wstawienie 1 bitu akumulatora do etykiety przeniesienia C
  90. MOV P1.5, C         ;Podanie na P1.5 wartości C (0 lub 1)
  91. MOV C, ACC.0        ;wstawienie 0 bitu akumulatora do etykiety przeniesienia C
  92. MOV P1.4, C         ;Podanie na P1.4 wartości C (0 lub 1) - ustawienie dolnej części ;bajtu
  93. SETB P1.2
  94. CLR P1.2            ;opadające zbocze na E
  95. CALL delay          ;wywołanie podprogramu delay
  96.  
  97. delay:
  98. MOV R0, #50         ;wstawienie do rejestru R0 wartości 50
  99. DJNZ R0, $          ;dekrementacja tak długo aż R0 nie osiągnie wartość 0
  100. RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement