Advertisement
Guest User

Untitled

a guest
May 8th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. INIT EQU 038H
  2. CLEAR EQU 01H
  3. ON EQU 06H
  4.  
  5. CMD_WR EQU 0FF2CH
  6. DATA_WR EQU 0FF2DH
  7. CMD_READ EQU 0FF2EH
  8. DATA_READ EQU 0FF2FH
  9.  
  10. CURSOR EQU  40H
  11. CRS_ADD EQU 80H
  12.  
  13.     M EQU 77
  14.  
  15. ORG 0
  16.    
  17.  
  18.     LCALL INIT_LCD
  19.     MOV A, #13H
  20.     LCALL CUR_XY
  21.     MOV A, #M
  22.     LCALL WR_CH
  23. ;   MOV DPTR, #STR_1
  24. ;   LCALL WR_STR
  25.  
  26. ;   MOV DPTR, #STR_2
  27. ;   LCALL WR_STR
  28. ;
  29. ;   LCALL ASC
  30.     SJMP $ 
  31. ;-----------------------------------
  32. INIT_LCD:
  33.     MOV A, #INIT
  34.     LCALL CMD_LCD
  35.     MOV A, #CLEAR
  36.     LCALL CMD_LCD
  37.     MOV A, #ON
  38.     LCALL CMD_LCD
  39.  
  40. ;------------------------------------
  41. ; Zapis komendy     A - kod komendy
  42. ;------------------------------------
  43. CMD_LCD:
  44.     PUSH ACC
  45.     MOV DPTR, #CMD_READ
  46. LOOP:
  47.     MOVX A, @DPTR
  48.     JB ACC.7, LOOP
  49.     MOV DPTR, #CMD_WR
  50.     POP ACC
  51.     MOVX @DPTR, A
  52.     RET
  53. ;-----------------------------------------
  54. ; Wypisanie znaku, A - kod ascii zanku
  55. ;-----------------------------------------
  56. WR_CH:
  57.     PUSH ACC
  58.     MOV DPTR, #CMD_READ
  59. LOOP1:
  60.     MOVX A, @DPTR
  61.     JB ACC.7, LOOP1
  62.     MOV DPTR, #DATA_WR
  63.     POP ACC
  64.     MOVX @DPTR, A
  65.     RET
  66. ;-----------------------------------------
  67. ; Wypisanie stringa, DPTR - adres poczatku str
  68. ;-----------------------------------------
  69. WR_STR:
  70.     PUSH ACC
  71.     CLR A
  72.     MOVC A, @A+DPTR
  73.     JZ END_STR
  74.     PUSH DPH
  75.     PUSH DPL
  76.     LCALL WR_CH
  77.     POP DPL
  78.     POP DPH
  79.     INC DPTR
  80.     POP ACC
  81.     SJMP WR_STR
  82.  
  83. END_STR:
  84.     POP ACC
  85.     RET
  86.  
  87. ;---------------------------------------------
  88. ; Ustawiannie kursora na poczatku dolnej linii
  89. ;---------------------------------------------
  90. CUR:
  91.      PUSH ACC
  92.      MOV A, #CURSOR
  93.      ADD A, #CRS_ADD
  94.      LCALL CMD_LCD
  95.      POP ACC
  96.      RET
  97.  
  98. ;---------------------------------------------
  99. ; Ustawiannie kursora na pozycji A = ---y |xxxx
  100. ;---------------------------------------------
  101. CUR_XY:
  102.     PUSH ACC
  103.     MOV R1, #0
  104.     JB ACC.4, Y
  105.     SJMP X
  106. Y:
  107.     MOV R1, #40H
  108. X: 
  109.     ANL A, #00001111B
  110.     ADD A, R1
  111.     ADD A, #CRS_ADD
  112.     LCALL CMD_LCD
  113.     POP ACC
  114.     RET
  115. ;----------------------------------------------
  116. ASC:
  117.     MOV R1,#25
  118. LOOPIK:
  119.     MOV A, R1
  120.     ADD A, #65
  121.     LCALL WR_CH
  122.     DJNZ R1,LOOPIK
  123.     RET
  124.  
  125.  
  126. STR_1: DB 'ABCDEFGHIJKLMNOP', 0
  127. STR_2: DB 'RSTUWYZ123456789', 0
  128.  
  129.  
  130.  
  131. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement