My Blog‎ > ‎

Interfacing 128X64 pixel graphics LCD with 8 bit PIC

posted Mar 29, 2012, 9:15 PM by Pratik Panchal   [ updated Mar 29, 2012, 9:50 PM ]
March 2012, Microcontroller Design Lab

Well, I wanted to integrate a touch screen in a project and nothing was quicker to start with, than a resistive touchscreen overlay on a 128x64 graphics LCD - that is what I thought - Actually, it was a pain.

Before this, I had only worked with the conventional JHD402A controller based 16x2 line LCD modules - and those were pretty easy to work with; mainly because of the ease of sending desired data to be displayed. Moreover, the datasheet also provides comprehensive interfacing algorithms with the help of which, you can start straight forward.

But, a graphics LCD (GLCD) doesn't have inbuilt ASCII converter/generator; rather you can control state of a single pixel and hence its not easy to send data to it (well, that is the reason to use GLCD, if you just want to display characters, interface a 16x2 or a 16x4 LCD!!). I bought NT7108C controller based GLCD (which is quite similar to KS0108B module). Even though being a more complicated device than a 16x2 LCD, the datasheet that manufacturer provided along with the module was really crappy and technically insufficient - and I realized this after getting one (bad luck, eh!). The first time, when I referred the datasheet, I couldn't even understand the architecture properly. When I developed the code referring the timing diagram given, the GLCD just didn't respond. After a while, it started giving junk. Well, finally, it after lot of code optimization, I was finally able to get through and print the favorite phrase - Hello World!.

I would like to document all my efforts here on my webpage for (1) my own ready reference, and (2) for the reader who would like to save time experimenting with and adjusting the timing cycles. Continue reading in 'My Wired World'