Advertisement
Guest User

Untitled

a guest
Apr 30th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. LJMP START
  2.  
  3. ; LCD registers ----------------------------------
  4.  LCDstatus equ 0FF2EH
  5.  LCDcontrol equ 0FF2CH
  6.  LCDdataWR equ 0FF2DH
  7.  LCDdataRD equ 0FF2FH
  8. // LCD control bytes ----------------------------------
  9. #define HOME 0x80 // put curcor to second line
  10. #define INITDISP 0x38 // LCD init (8-bit mode)
  11. #define HOM2 0xc0 // put curcor to second line
  12. #define LCDON 0x0e // LCD nn, cursor off, blinking off
  13. #define CLEAR 0x01 // LCD display clear
  14.  
  15. ORG 0100H
  16.  
  17. P5 EQU 0F8H
  18. P7 EQU 0DBH
  19.  
  20.  LCDcntrlWR MACRO x
  21.  LOCAL loop
  22.  loop:
  23.   MOV DPTR,#LCDstatus
  24.  MOVX A,@DPTR
  25.  JB ACC.7,loop ; check if LCD busy
  26.  MOV DPTR,#LCDcontrol ; write to LCD control
  27.  MOV A, x
  28.  MOVX @DPTR,A
  29.   ENDM
  30.  
  31.  LCDcharWR MACRO
  32.  LOCAL loop1,loop2
  33.  
  34.  PUSH ACC
  35.  loop1: MOV DPTR,#LCDstatus
  36.  MOVX A,@DPTR
  37.  JB ACC.7,loop1 ; check if LCD busy
  38.  
  39.  loop2: MOV DPTR,#LCDdataWR ; write data to LCD
  40.  POP ACC
  41.  MOVX @DPTR,A
  42.  ENDM
  43.  
  44.  init_LCD MACRO
  45.  LCDcntrlWR #INITDISP
  46.  LCDcntrlWR #CLEAR
  47.  LCDcntrlWR #LCDON
  48.  ENDM
  49.    
  50. START:
  51. MOV DPH, #80H
  52. MOV DPL, #77H
  53. MOV A, #31H
  54. MOVX @DPTR, A
  55. MOV DPH, #80H
  56. MOV DPL, #7BH
  57. MOV A, #32H
  58. MOVX @DPTR, A
  59. MOV DPH, #80H
  60. MOV DPL, #7DH
  61. MOV A, #33H
  62. MOVX @DPTR, A
  63. MOV DPH, #80H
  64. MOV DPL, #7EH
  65. MOV A, #41H
  66. MOVX @DPTR, A
  67. MOV DPH, #80H
  68. MOV DPL, #0B7H
  69. MOV A, #34H
  70. MOVX @DPTR, A
  71. MOV DPH, #80H
  72. MOV DPL, #0BBH
  73. MOV A, #35H
  74. MOVX @DPTR, A
  75. MOV DPH, #80H
  76. MOV DPL, #0BDH
  77. MOV A, #36H
  78. MOVX @DPTR, A
  79. MOV DPH, #80H
  80. MOV DPL, #0BEH
  81. MOV A, #42H
  82. MOVX @DPTR, A
  83. MOV DPH, #80H
  84. MOV DPL, #0D7H
  85. MOV A, #37H
  86. MOVX @DPTR, A
  87. MOV DPH, #80H
  88. MOV DPL, #0DBH
  89. MOV A, #38H
  90. MOVX @DPTR, A
  91. MOV DPH, #80H
  92. MOV DPL, #0DDH
  93. MOV A, #39H
  94. MOVX @DPTR, A
  95. MOV DPH, #80H
  96. MOV DPL, #0DEH
  97. MOV A, #43H
  98. MOVX @DPTR, A
  99. MOV DPH, #80H
  100. MOV DPL, #0E7H
  101. MOV A, #2AH
  102. MOVX @DPTR, A
  103. MOV DPH, #80H
  104. MOV DPL, #0EBH
  105. MOV A, #30H
  106. MOVX @DPTR, A
  107. MOV DPH, #80H
  108. MOV DPL, #0EDH
  109. MOV A, #23H
  110. MOVX @DPTR, A
  111. MOV DPH, #80H
  112. MOV DPL, #0EEH
  113. MOV A, #44H
  114. MOVX @DPTR, A
  115. MOV R4, #0
  116. MOV R5, #0
  117.  
  118.     PETLA:
  119.     init_LCD
  120. MOV R0, #7FH
  121. MOV A, R0
  122. MOV P5, A
  123. MOV A, P7
  124. ANL A, R0 ;W AKUMULATORZE JEST TO CO WPISALISMY DO R0
  125. MOV R1, A
  126. CLR C
  127. SUBB A, R0
  128. JZ NEXT1 ;JEZELI '0' PRZESKAKUJEMY DO KOLEJNEGO BLOKU
  129. MOV A, R1 ; JEZELI NIE WYSZLO '0' TO PRZYWRACAMY WARTOSC AKUMULATORA
  130. MOV DPH, #80H
  131. MOV DPL,A  
  132. LCDcharWR              
  133. MOVX A,@DPTR
  134. MOV P1, A
  135. PETLA2:
  136. JZ PETLA
  137.  
  138. NEXT1:
  139. MOV R0, #0BFH
  140. MOV A, R0
  141. MOV P5, A
  142. MOV A, P7
  143. ANL A, R0 ;W AKUMULATORZE JEST TO CO WPISALISMY DO R0
  144. MOV R1, A
  145. CLR C
  146. SUBB A, R0
  147. JZ NEXT2 ;JEZELI '0' PRZESKAKUJEMY DO KOLEJNEGO BLOKU
  148. MOV A, R1 ; JEZELI NIE WYSZLO '0' TO PRZYWRACAMY WARTOSC AKUMULATORA
  149. MOV DPH, #80H
  150. MOV DPL,A    
  151.  LCDcharWR
  152. MOVX A,@DPTR
  153. MOV P1, A
  154.  
  155. NEXT2:
  156. MOV R0, #0DFH
  157. MOV A, R0
  158. MOV P5, A
  159. MOV A, P7
  160. ANL A, R0 ;W AKUMULATORZE JEST TO CO WPISALISMY DO R0
  161. MOV R1, A
  162. CLR C
  163. SUBB A, R0
  164. JZ NEXT3 ;JEZELI '0' PRZESKAKUJEMY DO KOLEJNEGO BLOKU
  165. MOV A, R1 ; JEZELI NIE WYSZLO '0' TO PRZYWRACAMY WARTOSC AKUMULATORA
  166. MOV DPH, #80H
  167. MOV DPL,A
  168. LCDcharWR
  169. MOVX A,@DPTR
  170. MOV P1, A
  171.  
  172. NEXT3:
  173. MOV R0, #0EFH
  174. MOV A, R0
  175. MOV P5, A
  176. MOV A, P7
  177. ANL A, R0 ;W AKUMULATORZE JEST TO CO WPISALISMY DO R0
  178. MOV R1, A
  179. CLR C
  180. SUBB A, R0
  181. JZ PETLA2 ;JEZELI '0' PRZESKAKUJEMY DO KOLEJNEGO BLOKU
  182. MOV A, R1 ; JEZELI NIE WYSZLO '0' TO PRZYWRACAMY WARTOSC AKUMULATORA
  183. MOV DPH, #80H
  184. MOV DPL,A
  185. LCDcharWR
  186. MOVX A,@DPTR
  187. MOV P1, A
  188.     JMP START
  189. NOP
  190. NOP
  191. NOP
  192. JMP $
  193. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement