Skip to content

Instantly share code, notes, and snippets.

@abdul-rehman-2050
Created October 10, 2018 11:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abdul-rehman-2050/0b425d5518bdf53c425312dcc4da685f to your computer and use it in GitHub Desktop.
Save abdul-rehman-2050/0b425d5518bdf53c425312dcc4da685f to your computer and use it in GitHub Desktop.
;====================================
; @copyright-Abdul Rehman
; @Licence Creative Common
; This code used to display simple character...
; on character lcd with 8051 microcontroller in assembly langauge
;====================================
LCD_DATA_PORT EQU P0
RS BIT P2.0
EN BIT P2.1
;====================================
ORG 0H
;------------------------------------
MAIN:
ACALL LCD_INIT
MOV A,#'D'
ACALL LCD_WRITE_DATA
ACALL DELAY1
ACALL DELAY1
MOV A,#'O'
ACALL LCD_WRITE_DATA
ACALL DELAY1
MOV A,#'N'
ACALL LCD_WRITE_DATA
ACALL DELAY1
MOV A,#'E'
ACALL LCD_WRITE_DATA
ACALL DELAY1
MOV A,#'.'
ACALL LCD_WRITE_DATA
ACALL DELAY1
MOV A,#'.'
ACALL LCD_WRITE_DATA
ACALL DELAY1
MOV A,#'.'
ACALL LCD_WRITE_DATA
ACALL DELAY1
;-----------------------------------
MLOOP:
SJMP MLOOP
;-------------------------------------
; LCD INTERFACING CODE IN 8BIT MODE
;-------------------------------------
LCD_INIT:
MOV A,#38H ;THIS COMMAND TELLS LCD TO INITIALIZE 5x7 2LINE
ACALL LCD_WRITE_CMD
ACALL DELAY1
MOV A,#0FH ;DISPLAY ON, CURSOR ON
ACALL LCD_WRITE_CMD
ACALL DELAY1
RET
LCD_CLR:
;CLEAR ALL CHARACTERS FROM LCD DISPLAY
MOV A,#0H
ACALL LCD_WRITE_DATA
RET
LCD_WRITE_CMD:
;THIS FUNCTION WILL PUT COMMAND
;INTO LCD's COMMAND REGISTER
MOV LCD_DATA_PORT,A
CLR RS
SETB EN
NOP
NOP
NOP
CLR EN
RET
LCD_WRITE_DATA:
;THIS FUNCTION WILL DISPLAY
;DATA ONTO LCD
MOV LCD_DATA_PORT,A
SETB RS
SETB EN
NOP
NOP
NOP
NOP
CLR EN
RET
;===================================
DELAY1:
MOV R6,#255
D1L1:
MOV R7,#255
DJNZ R7,$
DJNZ R6,D1L1
RET
;===================================
END
@Toliak
Copy link

Toliak commented Oct 1, 2021

Thank you! Are you sure that clear (line 70) is 0x00 DATA?
This doc describes, that in order to clear LCD microcontroller should provide 0x01 COMMAND to LCD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment