Advertisement
Guest User

Untitled

a guest
Apr 17th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;ZADAMNIE 1 WYUISZ NAPIS PO LITERCE NA EKLRANIE "EWELINA WRUC"
  2.  
  3. LJMP START
  4.  
  5.  ; PUBLIC       putcharLCD, putstrLCD, initLCD, putctrlLCD
  6.   ; LCD registers           ----------------------------------
  7.   LCDstatus  equ 0FF2EH        
  8.   LCDcontrol equ 0FF2CH
  9.   LCDdataWR  equ 0FF2DH
  10.  LCDdataRD  equ 0FF2FH              
  11.  
  12.  // LCD control bytes       ---------------------------------
  13.  
  14. #define  HOME     0x80    // put curcor to second line  
  15. #define  INITDISP 0x38    // LCD init (8-bit mode)  
  16. #define  HOM2     0xc0    // put curcor to second line  
  17. #define  LCDON    0x0e    // LCD nn, cursor off, blinking of
  18. #define  CLEAR    0x01    // LCD display clear
  19.  
  20. ORG 0100H
  21.  
  22.  
  23. wait_lcd_busy:
  24.             MOV    DPTR,#LCDstatus
  25.             MOVX   A,@DPTR
  26.             JB     ACC.7,wait_lcd_busy       ; check if LCD busy
  27. RET
  28.  
  29. wr_cmd MACRO command
  30.             LCALL wait_lcd_busy
  31.  
  32.             MOV    DPTR,#LCDcontrol ; write to LCD control
  33.             MOV    A, command
  34.             MOVX   @DPTR,A
  35.             ENDM
  36.  
  37.  
  38. ;-------------
  39. ; Putch from A
  40. ;-------------
  41. lcd_putch_procedure:
  42.         PUSH ACC
  43.         LCALL wait_lcd_busy
  44.        
  45.         MOV     DPTR,#LCDdataWR; Set the datapointer to the adress when the LCD is mapped for char writing
  46.        
  47.         POP     ACC
  48.         MOVX    @DPTR, A                ; write data to LCD
  49.         RET
  50.  
  51. lcd_putch MACRO char
  52.         MOV A, char
  53.         LCALL lcd_putch_procedure
  54.         ENDM
  55.  
  56. lcd_init  MACRO
  57.          wr_cmd #INITDISP
  58.          wr_cmd #CLEAR
  59.          wr_cmd #LCDON  
  60. ENDM
  61.  
  62.  
  63. START:
  64.     lcd_init
  65.    
  66.     lcd_putch #'W'
  67.     lcd_putch #34H
  68.     lcd_putch #20H
  69.     lcd_putch #5aH       
  70.     lcd_putch #59H
  71.     lcd_putch #43H
  72.     lcd_putch #49H
  73.     lcd_putch #45H
  74.     lcd_putch #4dH
  75.  
  76.     wr_cmd #HOM2
  77.     wr_cmd #0xFF
  78.  
  79.     lcd_putch #48H
  80.     lcd_putch #45H
  81.     lcd_putch #48H
  82.     lcd_putch #45H
  83.     lcd_putch #48H
  84.     lcd_putch #45H
  85.     lcd_putch #48H
  86.     lcd_putch #45H
  87.  
  88.  
  89. NOP
  90. NOP
  91. NOP
  92. JMP $
  93. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement