Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- READ_STATUS EQU 0FF2EH
- WRITE_CMD EQU 0FF2CH
- WRITE_DATA EQU 0FF2DH
- INIT_LCD EQU 038H
- CLEAR_LCD EQU 001H
- TURN_ON_LCD EQU 06H
- CURSOR_SECOND_LINE EQU 40H
- SHIFT_RIGHT EQU 14H
- CURSOR_HIDE EQU 0CH
- ORG 0
- START:
- LCALL INITIALIZE_LCD
- LCALL HIDE_CURSOR
- MOV A, #7
- LCALL SET_CURSOR
- MOV A, #'H'
- LCALL WRITE_CHAR
- MOV A, #'W'
- LCALL WRITE_CHAR
- MOV A, #':'
- LCALL WRITE_CHAR
- MOV A, #' '
- LCALL WRITE_CHAR
- ;LCALL CLEAR_DISPLAY
- MOV A, #3
- SETB ACC.4
- LCALL SET_CURSOR
- MOV DPTR, #INPUT_STRING
- LCALL WRITE_STRING
- SJMP $
- INITIALIZE_LCD:
- MOV A, #INIT_LCD
- LCALL WRITE_TO_CMD
- MOV A, #CLEAR_LCD
- LCALL WRITE_TO_CMD
- MOV A, #TURN_ON_LCD
- LCALL WRITE_TO_CMD
- RET
- WRITE_TO_CMD:
- PUSH ACC
- MOV DPTR, #READ_STATUS
- WRITE_TO_CMD_LOOP:
- MOVX A, @DPTR
- JB ACC.7, WRITE_TO_CMD_LOOP
- MOV DPTR, #WRITE_CMD
- POP ACC
- MOVX @DPTR, A
- RET
- WRITE_CHAR:
- PUSH ACC
- MOV DPTR, #READ_STATUS
- WRITE_CHAR_LOOP:
- MOVX A, @DPTR
- JB ACC.7, WRITE_CHAR_LOOP
- MOV DPTR, #WRITE_DATA
- POP ACC
- MOVX @DPTR, A
- RET
- WRITE_STRING:
- CLR A
- MOVC A, @A+DPTR
- JZ WRITE_STRING_END
- PUSH DPH
- PUSH DPL
- LCALL WRITE_CHAR
- POP DPL
- POP DPH
- INC DPTR
- SJMP WRITE_STRING
- WRITE_STRING_END:
- RET
- SET_CURSOR:
- JNB ACC.4, SET_CURSOR_FIRST_LINE
- CLR ACC.4
- ADD A, #CURSOR_SECOND_LINE
- SET_CURSOR_FIRST_LINE:
- ADD A, #80H
- CALL WRITE_TO_CMD
- RET
- SHIFT_CURSOR_RIGHT:
- MOV A, #SHIFT_RIGHT
- CALL WRITE_TO_CMD
- RET
- CLEAR_DISPLAY:
- MOV A, #CLEAR_LCD
- CALL WRITE_TO_CMD
- RET
- HIDE_CURSOR:
- MOV A, #CURSOR_HIDE
- CALL WRITE_TO_CMD
- RET
- INPUT_STRING: DB 'HELLO WORLD', 0
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement