This is a project that I started back late 2003 when I just starting to learn PIC programming. I wanted to building something that actually did somthing useful. This project is based on a PIC16F84.
I actually came up with this idea and then after doing some searching I found that a few people had the same idea. But, I wanted to build my own that I could call mine, developed by me. The whole idea is, I have several GPS units with no display and I wanted an easy way to see my position. I have the option with the HamHUD II to see this, but it uses up precious display space that I rather use to display some APRS related information instead. So, I need a way to take the NMEA data comming out and display it in a simple format that can be read easily while driving down the road.
The circuit it’self is pretty simple, take in the data on one pin, parse it, format it and then display it to a 4×20 LCD module (Hitachi Chipset). That is the basic idea, but I might add in somthing like a mechanical encoder that would allow for changing options or changing settings in the display unit. This might be as simple as a SPDT (Singe Pole Double Throw) switch if the options are as simple as two settings.
Here is the schematic. I used a 4 Bit configuration for the LCD to PIC wiring. This all that would be required for this application. Plus, the 16F84 does not have a lot of port pins, so I have to use them wisely. You can see the GPS data is comming in on PORT A PIN 1. The LCD data goes out on PORT B PINS 0-3. The LCD’s Register Select (Rs) is on PORT A PIN 2 and the LCD’s Enable (E) is on PORT A PIN 3. In the original design, I had included a MAX232 level converter to do the TTL to Serial conversion before it came into the PIC. I found a serial routine that did software inversion and allowed me to eliminate the MAX232, so one less part. This is really nice because basically the entire circuit could be layed out on a board the same size as the 4×20 LCD.
Here is a breadboard version of the project. This just doesn’t have the entire code loaded into it yet (I need to finnish writing it). I used a negative yellow LCD from Crystalfontz.
For more detail: My GPS LCD Display Project using PIC16F84