DOC PREVIEW
MIT 6 111 - Character LCD Module

This preview shows page 1 out of 4 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 4 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Character LCD ModuleThe character LCD module interfaces with a 1602A Character Liquid Crystal Display. This is a 16 character by 2 line LCD that has been used with the Handyboard in the past. This LCD follows the standard character LCD protocol. There are 256 addresses for characters, and a subset of those addresses actually contains valid characters. Some of the characters are actually user-programmable. Our LCD responds to the HD44780 instruction set. This protocol uses ten inputs: a read/write, a register select, and the eight data bits. Since we never read information from the Character LCD module, we can safely leave the read/write pin grounded. The register select bit, however, needs to be low when issuing a command byte and high whenwriting a character to the display. This is somewhat problematic, as the bus is only eight bits wide. To accommodate this, we used one of the addresses that did not contain a validcharacter to send a clear screen command. When we received a new data byte, we first checked to see if it was the reserved command byte or just a character to be displayed, than acted accordingly. This method can be extended to more command characters, so that users can change the cursor style or other options.Another issue we ran into with the display was the fact that the HD44780 instruction set assumed that a two line display was 40 characters to a line. The display would not automatically wrap lines, and would instead write to memory locations that didnot display to the screen. To correct this, the Character LCD module keeps count of the number of characters written to the display, and automatically sets the address to the next line once sixteen characters have been written.Register ControllerThe register controller is the module that goes between the serial bus controller and the other modules. There is a separate instantiation of the register controller for each module. Each register controller has eight 8-bit registers, although most of the modules do not utilize all of them.The serial bus controller sends eight bits of address and eight bits of data down the bus to all of the register controllers. The five high order bits address a specific register controller, while the three low order bits address individual registers in the register controller.When the serial controller writes to a register, it sends an enable signal along withthe address and data. Upon receiving the enable, the register controller will then send a busy signal to the module. This busy signal serves two purposes. First, it prevents the module from reading from or writing to the register controller while it is interacting with the bus. Second, by detecting the falling edge of this busy signal, the module knows that the register controller has been updated, and can then request the new data.The register controller can also receive data from the modules. In this case, the module will send an enable and then write to the register controller. However, the register controller cannot write to the bus, so it must wait for the serial controller to poll it.Analog InputThe analog input module uses an ADC to take an analog signal and convert it into an 8-bit value. We decided to use an analog multiplexer at the inputs, so that we could take up to sixteen analog inputs with only one ADC. The analog input process starts with a request from the serial bus controller. It will send a data byte corresponding to the multiplexer input value to be selected to the register controller connected to the analog input module. The analog input module will then use that value as the selector for the multiplexer, and send the multiplexer output through the ADC. Once the ADC has finished its conversion, it will write the value to theregister controller. At this point, the analog input is identical to the digital input, and the serial bus controller will poll the analog input controller for its value.Design OverviewOur design communicates with the user-programmable microprocessor by way of a serial interface. An address byte and a data byte are sent through the serial interface to the serial bus controller. The serial bus controller will relay this information over the shared bus. Each module’s register controller will check the address byte to see if it is themodule that is being accessed. Our modules include a motor controller, a servo controller, a shaft-encoder, digital inputs and outputs, an analog input, and a Character


View Full Document

MIT 6 111 - Character LCD Module

Documents in this Course
Verilog

Verilog

21 pages

Video

Video

28 pages

Bass Hero

Bass Hero

17 pages

Deep 3D

Deep 3D

12 pages

SERPENT

SERPENT

8 pages

Vertex

Vertex

92 pages

Vertex

Vertex

4 pages

Snapshot

Snapshot

15 pages

Memories

Memories

42 pages

Deep3D

Deep3D

60 pages

Design

Design

2 pages

Frogger

Frogger

11 pages

SkiFree

SkiFree

81 pages

Vertex

Vertex

10 pages

EXPRESS

EXPRESS

2 pages

Labyrinth

Labyrinth

81 pages

Load more
Download Character LCD Module
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Character LCD Module and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Character LCD Module 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?