End Presentation


TWiki Slide Show
Next
The 2 Line LCD Display and its HD44780 Controller

The 2 Line LCD Display and its HD44780 Controller

Uli Raich

UCC semester 2017/2018

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 1 of 15





















TWiki Slide Show
Next
Why a simple 2 line display?
Often embedded systems do not have a screen, keyboard and mouse associated with them.

Small devices in the field may nevertheless need to display some values to the user

Small and cheap LCD displays can take over this task

Our display can be used for many purposes (see the open day):

  • Name display
  • Weather station
  • Voltmeter
and there are many more applications

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 2 of 15





















TWiki Slide Show
Next
Our Display
2linedisplay.png

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 3 of 15





















TWiki Slide Show
Next
Interfacing the display
pcf8574ifce.png

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 4 of 15





















TWiki Slide Show
Next
The PCF8574 I2C interface
The PCF8574 I2C I/O expander allows to limit the number of connection wires to just four.
It is a kind of a shift register: serial in, parallel out

i2c_pcf8574.png

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 5 of 15





















TWiki Slide Show
Next
Interfacing signals
The display needs a large number of interface signals
to be able to work:

  • Min. 4 data lines
  • R/W line
  • register select
  • back light
  • back light power
  • power
  • gnd

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 6 of 15





















TWiki Slide Show
Next
Writing the to HD4780 controller via the PCF8574
pcf8574write.png

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 7 of 15





















TWiki Slide Show
Next
Writing to PCF8574 via pigpio
Even though it looks complicated at first sight,

writing a data byte to the hd44780 controller via the

pcf8574 I/O extender is actually pretty simple:

i2c_write_byte.png

After this instruction the 8 data bits of bVal lie at the input of the hd44780 controller.

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 8 of 15





















TWiki Slide Show
Next
A data byte to be sent

We will therefore need a great deal of bit fiddling to

create this data byte and to modify it to

  • Set the back light on or off
  • To send a pulse on the E (strobe) line
Hope you remember the

  • bitwise or operator: |
  • bitwise and operator: &
  • bit inversion: ~

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 9 of 15





















TWiki Slide Show
Next
The HD44780 library
As already explained several times, a library must supply:

  • The binary code: libhd44780.so
  • The include file hd44780.h

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 10 of 15





















TWiki Slide Show
Next
The function prototypes
libFunctions.png

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 11 of 15





















TWiki Slide Show
Next
Using the library
In addition to the prototypes, have a look at the doxygen documentation

and you should be able to program the display.

Of course you have to include

-I/opt/ucc/include in your CFLAGS

-L/opt/ucc/lib in your LDFLAGS

and -lhd4780 in your LDLIBS

However, we want to understand what is happening behind the scene!

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 12 of 15





















TWiki Slide Show
Next
Testing access
Before starting to write the library we must first test if

  • We can initialize the device ?
  • We can write something to it and read it back ?
  • Or can we find any other function showing us that the device responds?

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 13 of 15





















TWiki Slide Show
Next
Back light
To give us some confidence, let’s try to switch the back light on and off:

This one is easy as it does not access the hd44780.

It does test the PCF8574 though!

Switching bit 7 in the data word does the trick.

Later we will read a byte from the display and and/or bit seven

into the byte read before writing it back.

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 14 of 15





















TWiki Slide Show
Next
Timing diagrams 4 bit mode
4bitdataTransfer.png

First slide Previous Next Last slide
COPYRIGHT © 2024 by the contributing authors
Slide 15 of 15





















First slide Previous End Presentation






























-- Uli Raich - 2017-11-06

Comments

I Attachment History Action Size Date Who Comment
PNGpng 2linedisplay.png r1 manage 873.1 K 2017-11-06 - 15:33 UnknownUser  
PNGpng 4bitTransfer.png r1 manage 24.0 K 2017-11-06 - 15:33 UnknownUser  
PNGpng 4bitdataTransfer.png r1 manage 28.0 K 2017-11-06 - 15:33 UnknownUser  
PNGpng displaySignals.png r1 manage 16.0 K 2017-11-06 - 15:33 UnknownUser  
PNGpng i2c_pcf8574.png r1 manage 1014.0 K 2017-11-06 - 15:33 UnknownUser  
PNGpng i2c_write_byte.png r1 manage 14.9 K 2017-11-06 - 16:10 UnknownUser  
PNGpng initProc1.png r1 manage 29.9 K 2017-11-06 - 15:33 UnknownUser  
PNGpng initProc2.png r1 manage 27.7 K 2017-11-06 - 15:33 UnknownUser  
PNGpng libFunctions.png r1 manage 28.5 K 2017-11-06 - 15:33 UnknownUser  
PNGpng pcf8574ifce.png r1 manage 63.7 K 2017-11-06 - 15:33 UnknownUser  
PNGpng pcf8574write.png r1 manage 33.8 K 2017-11-06 - 16:08 UnknownUser  
PNGpng strobe.png r1 manage 68.3 K 2017-11-06 - 15:33 UnknownUser  

This topic: Embedded_Systems > WebHome > LectureSlides > Lecture11:The2LineLCDDisplay
Topic revision: r3 - 2017-11-12 - uli
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback