HD44780 compatible LCD display that has its own (simple) processor. To communica

richer than simply turning LEDs on and off; the labs earlier this semester introduced you to the LCD panel and interrupts to produce timing (delay) information.
The boards we are using have a Hitachi HD44780 compatible LCD display that has its own (simple) processor. To communicate with that processor a specific protocol is used that initializes and controls the LCD screen. Learn more about how the LCD controller works by looking at the data sheet: https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
A previous CSC 230 student has written a library of subroutines for this assignment. The table below lists the subroutines, their parameters and what they do.
There is an example program that shows how to use the LCD functions in the file: lcd_example.asm which displays two lines. Review the files, searching for a way to set the number of rows on the LCD to 2 and the number of columns to 16. You can use the lcd_example.asm as a starter file and expand on this. Please note that the lcd_example.asm file is a fully working example. It can be assembled and uploaded to the board.
Part A: LCD Moving Message Sign
Advertising signs often move or flash written messages on a screen. The movement and the flashing are very effective in attracting attention. The goal of this programming task is to display alternately two written messages, gradually moving
Page 2 of 4
程序代写 CS代考 加QQ: 749389476
them down and across the screen, and to display and flash both messages. Please name this file as “display_partA.asm” for submission on Brightspace.
In particular, the program will need to:
a. Create two messages that will be displayed on the screen. For example,
msg1 = “YourName”
msg2 = “CSC 230: Summer 2023”
b. When the program starts, the LCD screen will contain: YourName in the first row of the screen and CSC 230: Summer 2023 in the second row.
c. After approximately one second, the LCD screen will be cleared then will be set to contain only YourName as the first line of the screen. After approximately one second, the LCD screen will be updated and the first message cleared with only the “CSC 230: Summer 2023” displayed on second line.
d. After another one second, repeat all of the above from (a) in a continuous loop.
e. Use a timer to generate 1 second delay in the above. Clearly mention how the main program detects the 1 second timing information,
Part B: LCD Scrolling Message Sign
The LCD screen is limited to 16 characters at a time per line. One way to display longer messages is to implement scrolling. Extend Part A so that the text now scrolls left. Test it also with message length > 16 characters. Use another timer to generate delay to scroll text which controls the scroll speed. Please name this file as “display_partB.asm” for submission on Brightspace
Part C: LCD Scrolling Message Sign with keypad interaction
Extend Part B to show on the LCD panel message scroll to left if left button is pressed and to the right if right button is pressed and ignore all other button presses. Please name this file as “display_partC.asm” for submission on Brightspace
A side note: “What button was pressed?”
In lab 4 you may have done a little bit more with buttons – in fact, you may have even had an opportunity to write code to determine precisely which button is pressed. The ADC obtains a value from 0 to 1023 from that represent button states – if the value is greater than 900, then definitely no button is being pushed. The ranges for all buttons on our LCD/button shields are maddingly inexact and may require a bit of tweaking and tuning, but they can be described roughly as follows:
Page 3 of 4
Programming Help, Add QQ: 749389476