128x64 LCD
This article applies to SG12864, DEM128064, TG12864D, and many more KS0108 based displays. The 128×64 range of graphical LCD panels is usually used in the electronics industry for providing a graphical output of data. Usually found on industrial equipment such as nuclear power station monitoring equipment, submarines, and aircraft, they are extremely cost effective and simple to use. There are many variations of these display panels, however they tend to have similarities with the original Samsung SB0107 / SB0108 LCD segment driver, with 64-channel output. Consequently, the Samsung KS0108 based LCD has become a standard as one would expect from an innovative company such as Samsung, who always leads the industry.
Having looked at the documentation for this particular component, I have noticed is that it requires some revision. The documentation has very basic information on the use of the hardware, and virtually no information on how to program the display. How the dots are organized, and how one could even begin to write a character on the LCD, is left to the user to figure out. This article was originally part of my notes when I implemented this display. Over the years, I have found it very useful to refer to when I am dealing with similar displays. Consequently, I decided to publish it on my site, so I would not have to trawl through all my paper notes. I hope it helps others as well.
The Education System
Communication using graphics is an important design aspect of any product. Technology is moving at a rapid pace. However, in the UK industry, engineers often use alphanumeric displays where the project could benefit from a graphic display. One of the reasons behind this is that there is still very little information available, showing how to implement such a display. Consequently, universities continue to use the old-fashioned 7-segment LED displays when teaching students.
A prohibitive factor in their use is the lack of support libraries available for programmers to implement. In the laboratory, engineers are concerned with proving a theory, and having to write a graphical display driver is time consuming and costly. As a result, one still finds state of the art instrument panels populated with archaic 1980s style alphanumeric displays.
Complete Manual and Clear Technical Notes
Show me the money... I think that is the wrong film because it should be, show me the clear technical programming notes. Finding good quality documentation was difficult, and after checking all the technical sources available to me, I trawled the Internet. I checked in Google, Bing, Yahoo, AltaVista, and even Yandex! There were some datasheets; however, they were all copies of the same poorly written article, with no explanation of how the pixel dots were organized.
I found one article written in Japanese, which appeared to have a more thorough explanation - from what I could tell from the diagrams. Since I did not read Japanese and I did not know anybody who could, my best chance was to go to the library and find a simple Japanese dictionary. It took me five weeks tops to translate it, and once I mastered the use of their intransitive verb and noun, it all fell into place.
I have always believed that whenever we learn from others, we are enriched, and it is a simple principle that goes back to the invention of the wheel. However, sometimes we have to re-inventing it!
This Article Continues...
128x64 LCDProgramming the 128x64 LCD
KS0108 128x64 LCD Hardware Control
128x64 Timing and Modes
128x64 LCD Graphics Driver Design
128x64 ASCII Text Driver Design
128x64 Bar Graph