Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

SOME STUPID TOOK THIS QUESTION AND ANSWERED IT (AS HE/SHE CLAIMS ) BUT THE ANSWER WAS ACTULLY PART OF THE GIVEN INFO. IN THE PROBLEM

SOME STUPID TOOK THIS QUESTION AND ANSWERED IT (AS HE/SHE CLAIMS ) BUT THE ANSWER WAS ACTULLY PART OF THE GIVEN INFO. IN THE PROBLEM ITSELF :)

WRITE ME A WORKING PROGRAM THAT I CAN RUN ON EDSIM SOFTWARE FOR 8051 MICROCONTROLLER PLEASE I HAVE HAD ENOUGH HARD TIME GETTING MY Q'S ANSWERED BY CHEGG E X P E R T :)

Using the example hw5 lcd.asm (attached with the assignment) as a starting point, write an LCD code that will display your name on the LCD in the EdSim51 simulator. Your first name should be displayed on the first line, and your last name on the second line.

provide COMMENTS IN ALL CAPS for each line you add, be detailed

content of the file:

; Initialize the LCD and then

; send the string STR to the it

;

RS EQU P1.3

E EQU P1.2

D7 EQU P1.7

D6 EQU P1.6

D5 EQU P1.5

D4 EQU P1.4

ORG 0100H

STR: DB "First Last"

NULL: DB 0

ORG 0000H

ACALL INIT_DISPLAY ; initialize LCD

MOV DPTR, #STR

LOOP:

CLR A

MOVC A, @A+DPTR

JZ DONE

ACALL SEND_DATA

INC DPTR

SJMP LOOP

DONE:

SJMP $

; ---- procedure send_cmd -------

SEND_CMD:

CLR RS ; RS = 0 => command

ACALL SEND

RET

; --- end procedure send_cmd ----

; ---- procedure send_data ------

SEND_DATA:

SETB RS ; RS = 1 => data

ACALL SEND

RET

; --- end procedure send_data ---

; ---- procedure init_display ---

INIT_DISPLAY:

; RS = 0 => command

CLR RS

; high nibble = 0010 = 001(DL)

; DL = 0 => 4-bit mode

CLR D7

CLR D6

SETB D5

CLR D4 ; DL = 0 => 4-bit

; negative Edge on E

; send data

SETB E

CLR E

ACALL DELAY

; send the same high nibble again

; then send the lower nibble

; high nibble = 0010

; low nibble = 1000 = N F - -

; N = 1 ==> 2 lines

; F = 0 ==> 5 x 7 dots per font

MOV A,#00101000B

ACALL SEND

; Display ON command

; high nibble = 0000

; low nibble = 1DCB = 1000

; D = 1 ==> display on

; C = 1 ==> Cursor on

; B = 1 ==> Cursor blinking

MOV A,#0FH

ACALL SEND

; Entry Mode set command

; high nibble = 0000

; low nibble = 01(1/D)S = 0110

; 1/D = 1 ==> increment cursor

; S = 0 ==> Don't shift display

MOV A,#06H

ACALL SEND

RET

; -- end procedure init_display -

; --- procedure send -----

SEND:

MOV C, ACC.7

MOV D7, C

MOV C, ACC.6

MOV D6, C

MOV C, ACC.5

MOV D5, C

MOV C, ACC.4

MOV D4, C

SETB E

CLR E

ACALL DELAY

MOV C, ACC.3

MOV D7, C

MOV C, ACC.2

MOV D6, C

MOV C, ACC.1

MOV D5, C

MOV C, ACC.0

MOV D4, C

SETB E

CLR E

ACALL DELAY

RET

; -- end procedure send --

; ------- procedure delay -------

DELAY:

MOV R0, #100

DJNZ R0, $

RET

; ----- procedure delay end ------

; ---- procedure long delay -----

LDELAY:

MOV R1, #10

LL: MOV R0, #100

DJNZ R0, $

DJNZ R1, LL

RET

; --- procedure long delay end ---

part B

Modify your code from part a to make your name flashes. The name should be ON for a period of time OFF for the same period. For the purpose of this problem, use an update frequency of 200 in the simulator.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

AWS Certified Database Study Guide Specialty DBS-C01 Exam

Authors: Matheus Arrais, Rene Martinez Bravet, Leonardo Ciccone, Angie Nobre Cocharero, Erika Kurauchi, Hugo Rozestraten

1st Edition

1119778956, 978-1119778950

More Books

Students also viewed these Databases questions

Question

Example. Evaluate 5n+7 lim 7-00 3n-5

Answered: 1 week ago