After the previous post on LCDs, I was reminded that it only covered current displays. Getting from there to here was, in some ways, something of an adventure.
It is probably worth mentioning that when I say LCD, I am speaking of LCD Character Display Modules. There are other types of LCD displays, both more and less elaborate, but for 90% of hobbyist projects we use LCD Character Display Modules.
This display from a standard parts house would have been quite expensive, probably in the $50 neighborhood, but B.G. Micro deals in surplus, pulls and other goodies, so although it was a little expensive with the board, it wasn't horrible. If I recall, it was in the $25 neighborhood, about what a 16 character LCD would have cost at the time from the typical parts house.
The Optrex had some interesting quirks which probably turned out to be a good thing as it prevented me from being blindsided by later, less obvious, quirks. You see, most LCDs at the time had 128 bytes of memory for the display. Line 1 started at address 0, and line 2 at address 64 in that memory. The Optrex was a little odd in that line 3 started at address 20, and line 4 at address 84. If you went past the line length, line 1 wrapped to line 3, and line 2 to line 4. Perhaps more curious, line 4 wrapped back to line 1.
This display had another annoying feature that provided a memorable lesson in LCDs. It was what was called a "low temperature" LCD. What that really means was something of a nasty surprise. You see, LCDs have a contrast pin on which you provide a low voltage, usually through a pot, to control the contrast. On these "low temperature" LCDs, that voltage has to be negative. Normally you don't have negative voltages laying around on PIC projects, so this required another supply. Fortunately, the current demads aren't severe, so a simple charge pump can often do the trick. Not insurmountable, but certainly annoying.
The original PIC Elmer lessons worked within the confines of this 8 character display. Although a lot of applications require more characters, the limited 8 character display wasn't too much of a problem for lessons, and it did provide an excuse to demonstrate techniques like scrolling.
You see, the Hitachi HD44780 controller could not display a 16 character line. To go beyond 8 characters required the addition of an HD44100. This was fairly expensive, although the "cheap" medical LCD contained this addition. To get around this, many early 16 character displays were actually two line 8 character displays, with the two lines side by side. This required some programming gymnastics, and of course, code that worked on these displays would not work with a "proper" 16 character display.