Cpe-342 Msi

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

CPE-342 MSI

LAB # 8

To interface a HD44780 controller-based 16x2 Liquid Crystal Display


(LCD) with 8051 MCU using Assembly Language programming

Name Asad Rehan

Registration No# FA17-BCE-005

Batch FA17-BCE-A

Instructor’s Name Sir Usman Rafique


Objectives :
• To explain the interfacing of ADC0804 with the AT89C51 MCU using PROTEUS.
• To interface an Analogue to Digital Converter (ADC) with 8051 MCU using Assembly
Language programming
Lab Tasks:
TASK 2:

Write a complete assembly language program to displays a character


Code:
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,#0C0H ;ROW 1, COL 0 TO START
ACALL COMM
ACALL DELAY
MOV A,#0FH;ROW 0, COL 1 TO START
ACALL COMM
ACALL DELAY
MOV A,#'%' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
; MOV A,#1EH ;ROW 0, COL 1 TO START
; ACALL DISPLAY
; ACALL DELAY
;LCD COMMAND SUBROUTINE
COMM:
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
DISPLAY:
MOV LCD,A ;SEND ACC. DATA ON LCD PORT
SETB 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

TASK 3:
Code:
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 1 TO START
ACALL COMM
ACALL DELAY
MOV A,#'C' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'U' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'I' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#' ' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'L' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'A' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'H' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'O' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'R' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'E' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#0C0H ;ROW 0, COL 0 TO START
ACALL COMM
ACALL DELAY
MOV A,#0FH;ROW 0, COL 1 TO START
ACALL COMM
ACALL DELAY
MOV A,#'F' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'A' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'1' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY

MOV A,#'7' ;ROW 0, COL 1 TO START


ACALL DISPLAY
ACALL DELAY
MOV A,#'-' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'B' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'C' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'E' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'-' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'0' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'0' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
MOV A,#'3' ;ROW 0, COL 1 TO START
ACALL DISPLAY
ACALL DELAY
; MOV A,#1EH ;ROW 0, COL 1 TO START
; ACALL DISPLAY
; ACALL DELAY
;LCD COMMAND SUBROUTINE
COMM:
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

DISPLAY:
MOV LCD,A ;SEND ACC. DATA ON LCD PORT
SETB 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:

Conclusion:
This lab experiment proved to be crucially helpful in understanding basic concepts of different
scenarios related to this specific microcontroller and so with the help of proteus and different simulation
softwares, this purpose was achieved.

You might also like