You are on page 1of 2

Lab2

TASK1 :
ORG 0000H

LJMP MAIN

RS EQU P3.3 ;P3.3 IS REG. SELECT

RW EQU P3.4 ;P3.4 IS READ/WRITE

EN EQU P3.5 ;P3.5 IS ENABLE

LCD EQU P1 ;PORT1 IS LCD DATA PORT

ORG 0030H

MAIN:

; MOV DPTR,#NAME ;LOAD STRING'S BASE ADDRESS

MOV A,#38H ;LCD IS 2 LINE

ACALL COMM

ACALL DELAY

MOV A,#01H ;CLEAR LCD

ACALL COMM

ACALL DELAY

MOV A,#0CH ;TURN CURSOR OFF

ACALL COMM

ACALL DELAY

MOV A,#06H ;CURSOR AUTO-RIGHT MOVE

ACALL COMM

ACALL DELAY

MOV A,#80H ;ROW 0, COL 0 TO START

ACALL COMM

ACALL DELAY

MOV A,#0FH ;ROW 0, COL 0 TO START

ACALL COMM

ACALL DELAY

MOV A,#1EH ;ROW 0, COL 0 TO START

ACALL COMM

ACALL DELAY

;place here the instructions to turn on the ;blinking block cursor

;LCD COMMAND SUBROUTINE

COMM:
Lab2

MOV LCD,A ;SEND ACC. DATA ON LCD PORT

CLR RS ;SELECT COMMAND REG.

CLR RW ;WRITE MODE

SETB EN ;EN IS HIGH

ACALL DELAY ;REMAIN EN HIGH

CLR EN ;H->L TRANSITION

RET

;DELAY TO COMPLETE THE PROCESSING OF LCD INSTRUCTION

DELAY:

MOV R3,#05

LOOP1: MOV R4,#255

LOOP2: DJNZ R4,LOOP2

DJNZ R3,LOOP1

RET

END

PROTEUS RESULT

You might also like