Homebuilt RS232 LCD Interface

for any 44780 based dot-matrix LCD



This controller board takes anything between +5Volt to +30 Volt power , (have it's own regulator)

-There is enough of poorly constructed RS232 alike TTL level interfaces (+5volt)  , this one generates it's own +/- 10..11volts as RS232 specs. require , and is able to use very long cables like RS232 can , and protects computer as well , nice in funny environment like inside a "MP3 in car" setup.  

-There is plenty of ready RS232-Lcd controllers 4 sale , at least 3 types I know about...  Common to them all is that they are slow or does not have button support and/or are expensive... that's my opinion

-This one is 4 free , you can build as many as you like .. 

 

PCB LAYOUT

 

PCB Layout , software and schematic - everything you need

PostScript can be dumped to a PostScript printer or printed on any printer using Paint Shop Pro from www.jasc.com  or similiar software.

HPGL files can be dumped to a HP-Plotter or other HPGL device.

Component List...

LCD's for 6$ each or lower (when buying 10) with cool backlit & stuff , can be bought at  Earth Computer Technologies and many other places , most alphanumeric LCD's are HD44780 compatible even if they chips are "Japan's Radio" or something else.  

Software ...

The PIC16F876 should be treated as freeware , it's free for non-commercial use ...If you don't have a programmer for those processors , I can sell you a pre-programmed processor for the price of the CPU + shipping , after all ...it's freeware.

INTERFACE 

All RS232 input is treated as characters , unless number "254" is sent first (as one byte) ,if so , the next character is treated as instruction , use table below to lookup instruction values.:

128 64 32 16 8 4 2 1

 Instruction/Description

0 0 0 0 0 0 0 1 Clear Display
0 0 0 0 0 0 1 * Return Cursor and LCD to Home Position
0 0 0 0 0 1 ID S Set Cursor Move Direction
0 0 0 0 1 D C B Enable Display/Cursor
0 0 0 1 SC RL * * Move Cursor/Shift Display
0 0 0 1 0 0 0 1 Next value (0-255) will be used to control the Backlit
0 0 0 1 0 0 1 0 Next value (0-255) will be used to control the Contrast
0 0 1 A A A A A Set Interface Length
0 1 A A A A A A Move Cursor into CGRAM
1 A A A A A A A

Move Cursor to Display

The bit descriptions for the different commands are:

"*" - Not Used/Ignored.  This bit can be either "1" or "0"

Set Cursor Move Direction:
ID - Increment the Cursor After Each Byte Written to Display if Set
S - Shift Display when Byte Written to Display

Enable Display/Cursor
D - Turn Display On(1)/Off(0)
C - Turn Cursor On(1)/Off(0)
B - Cursor Blink On(1)/Off(0)

Move Cursor/Shift Display
SC - Display Shift On(1)/Off(0)
RL - Direction of Shift Right(1)/Left(0)

Set Interface Length
DL - Set Data Interface Length 8(1)/4(0)
N - Number of Display Lines 1(0)/2(1)
F - Character Font 5x10(1)/5x7(0)

Poll the "Busy Flag"
BF - This bit is set while the LCD is processing

Move Cursor to CGRAM/Display
A - Address

Read/Write ASCII to the Display
D - Data


Brightness / Backlit Control:

this is the procedure: send three bytes:
   backlit  adjustment:  254 , 17 , value (0..255)
   contrast adjustment:  254 , 18 , value (0..255)
 

Button input:

This controller will transmit one byte for each buttonpress , the value (byte) will indicate what button(s) are depressed.