Mohamed M. Fathy Ahmed Abdelsalam
Published

AVR 4-Bit LCD Interface in Assembly

Interfacing an LCD to AVR microcontroller using only one port (PORT B).

BeginnerFull instructions provided1 hour3,065
AVR 4-Bit LCD Interface in Assembly

Things used in this project

Story

Read more

Schematics

Connection Diagram

Code

Avr Assembly code for interfaceing the LCD in 4 bit mode

Assembly x86
;*********************************************************
;======================================
;||PROGRAM FOR LCD DISPLAY 4 BIT MODE||
;======================================
; AUTHOR   : ENG/MOHAMED MOHAMED FATHY AHMED ABDELSALAM
; DATE     : 13 SEPTEMBER 2004
; PLATFORM : AT90S8515 AVR MICROCONTROLLER
;*********************************************************
;=================	
;||INTIALIZATION||
;=================	
.INCLUDE"8515DEF.INC"
.ORG 0X0000
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,0XFF
OUT DDRB,R16
;=======================
;= LCD CONNECTION      =
;= --------------      =
;= PORTB.0--------->RS =
;= PORTB.1--------->EN =
;= PORTB.2--------->NC =
;= PORTB.3--------->NC = 
;= PORTB.4--------->D4 =
;= PORTB.5--------->D5 =
;= PORTB.6--------->D6 =
;= PORTB.7--------->D7 =
;=======================
;*********************************************************
;=====================
;||LCD CONFIGURATION||
;=====================
LDI R17,0X2C     
RCALL SEND_COMMAND
LDI R17,0X0C       
RCALL SEND_COMMAND
LDI R17,0X80
RCALL SEND_COMMAND
LDI R17,0X01
RCALL SEND_COMMAND
;*********************************************************
;================================
;||SENDING DATA TO BE DISPALIED||
;================================
LDI R17,'M'
RCALL SEND_DATA
LDI R17,'A'
RCALL SEND_DATA
LDI R17,'G'
RCALL SEND_DATA
LDI R17,'D'
RCALL SEND_DATA
LDI R17,'A'
RCALL SEND_DATA
LDI R17,0XC0           ;START AT THE
RCALL SEND_COMMAND     ; SECOND ROW
LDI R17,'G'
RCALL SEND_DATA
LDI R17,'A'
RCALL SEND_DATA
LDI R17,'B'
RCALL SEND_DATA
LDI R17,'E'
RCALL SEND_DATA
LDI R17,'R'
RCALL SEND_DATA
AGAIN: RJMP AGAIN
;*********************************************************
;=================
;||FUCTIONS PART||
;=================
;////////////////////////////////
;//FUNCTION 1 SENDING COMMANDS//
;//////////////////////////////
SEND_COMMAND:
RCALL LCD_READY
MOV R1,R17
ANDI R17,0XF0
OUT PORTB,R17
CBI PORTB,0
SBI PORTB,1
CBI PORTB,1
MOV R17,R1
SWAP R17
ANDI R17,0XF0
OUT PORTB,R17
CBI PORTB,0
SBI PORTB,1
CBI PORTB,1
RET
;////////////////////////////
;//FUNCTION 2 SENDING DATA//
;//////////////////////////
SEND_DATA:
RCALL LCD_READY
MOV R1,R17
ANDI R17,0XF0
OUT PORTB,R17
SBI PORTB,0
SBI PORTB,1
CBI PORTB,1
MOV R17,R1
SWAP R17
ANDI R17,0XF0;
OUT PORTB,R17
SBI PORTB,0
SBI PORTB,1
CBI PORTB,1
RET
;///////////////////////////////////////
;//FUNCTION 3 EXCECUTION CONFIRMATION//
;/////////////////////////////////////
LCD_READY:
LDI R30,0XFF
LDI R31,0X0F
DECO1:SBIW ZH:ZL,0X01
BRNE DECO1
RET
;*********************************************************

Credits

Mohamed M. Fathy Ahmed Abdelsalam

Mohamed M. Fathy Ahmed Abdelsalam

8 projects • 22 followers

Comments