Interfacing LCD via SPI

As time goes by, microcontrollers become more powerful, cheaper, and smaller. A typical micro of the past could have had 40 pins and no internal memory. On the contrary, modern J-series PICs are made with 96K program memory and 28 pins. We can drive a lot of peripherals with that amount of memory, however we are getting short on pins. In this arti
Interfacing LCD via SPI - schematic

cle I will show how to drive a parallel interface peripheral serially. A HD44780-compatible LCD module is good candidate it is popular, inexpensive, and slow, so you won`t be losing any speed while converting parallel to serial. And you could even save some money using a micro with fewer pins. SPI is very easy to implement thanks to synchronous serial communication hardware support in newer PICs. The only other thing necessary on the LCD end is 74HC595 double-buffered shift register. It can be easily obtained from on-line electronic components distributors, such as Mouser or Digi-Key for as little as 48 cents in SMT package, slightly more in DIP. Since it`s very simple device, most functionality that we need will be done in software. HD44780-compatible LCD (LCD for short) is a parallel device. It has 8 data lines and 3 control signals which tell the controller when data lines contain valid data, what kind of data it is and whether you want to write to the controller or read from it (we won`t be using the last one BTW). SPI is serial it sends out a byte one bit at a time, marking  appearance of each bit with a clock pulse. The 74HC595 receives SPI data and sends is to it`s parallel outputs. Take a look at 74HC595 schematic symbol. It has two buffers one for serial data, another for parallel. Serial data go on pin 14. Serial clock goes on pin 11. When pin 12 goes from low to high serial buffer gets copied to parallel buffer...

Leave Comment

characters left:

New Circuits