Advertisement
Guest User

ptm3

a guest
Apr 2nd, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     LJMP START
  2.  
  3.     LCDstatus equ 0FF2EH
  4.     LCDcontrol equ 0FF2CH
  5.     LCDdataWR equ 0FF2DH
  6.  
  7.     #define HOME 0x80
  8.     #define INITDISP 0x38
  9.     #define HOM2 0xc0
  10.     #define LCDON 0x0e
  11.     #define CLEAR 0x01
  12.  
  13. ORG 0100H
  14.  
  15.     LCDcntrlWR MACRO x
  16.              LOCAL loop
  17.       loop:
  18.              MOV    DPTR,#LCDstatus
  19.              MOVX   A,@DPTR
  20.              JB     ACC.7,loop       ; check if LCD busy
  21.    
  22.              MOV    DPTR,#LCDcontrol ; write to LCD control
  23.              MOV    A, x
  24.              MOVX   @DPTR,A
  25.             ENDM
  26.    
  27.   LCDcharWR MACRO
  28.             LOCAL loop1,loop2
  29.    
  30.             PUSH    ACC
  31.   loop1:    MOV     DPTR,#LCDstatus
  32.             MOVX    A,@DPTR
  33.             JB      ACC.7,loop1            ; check if LCD busy
  34.    
  35.   loop2:    MOV     DPTR,#LCDdataWR        ; write data to LCD
  36.             POP     ACC
  37.             MOVX    @DPTR,A
  38.             ENDM
  39.    
  40.   init_LCD  MACRO
  41.              LCDcntrlWR #INITDISP
  42.              LCDcntrlWR #CLEAR
  43.              LCDcntrlWR #LCDON  
  44.          ENDM
  45.    
  46.  
  47. START:
  48.         init_LCD
  49.         MOV A,#42H
  50.         LCDcharWR
  51.         MOV A, #41H
  52.         LCDcharWR
  53.         LCDcntrlWR #HOM2
  54.         MOV A,#42H
  55.         LCDcharWR
  56.         MOV A, #41H
  57.         LCDcharWR
  58.         MOV A, #4EH
  59.         LCDcharWR
  60.         MOV A, #41H
  61.         LCDcharWR
  62.         MOV A, #4CH
  63.         LCDcharWR
  64.  
  65.  
  66.       NOP
  67.       NOP
  68.       NOP
  69.       JMP $
  70.       END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement