PIC16F877A with CFAH2004A-TMI-JP


New member

Hi, sorry for my english not good...

I hawe connected the CFAH2004A (20x4) lcd display to PIC16F877A data at port D and control at port E (see electrical)

I see into the lcd datasheet the timing characteristics and I have build in the assembly program the delay routines for clock of PIC at 20MHz but don't work.

I don't see any charachter on LCD...

Many thanks, Tony

Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.


CF Tech

I do not see anything immediately wrong with your schematic. Adjust pin 3 on the LCD to about 1v for starters.

Maybe try slowing things down try a 1MHz crystal or slow the PIC down internally or make the software delays longer.

Did you write your own library or use an existing one?


New member
hey this might be

as i have observed your circuit i did not notice any problem with it.

i think the problem lies on the way you burn your hex file in the pic16f877a.

you should know that when use an oscillator greater than or equal to 10Mhz you set the oscillator configuration of your burning software to HS.

I think you should try this up first.

Else the problem lies in your Port E, i think you should set Port E first to digital outputs because its default is analog input.


New member
Did you first initialize the LCD?? Did you set the interface? (4-bit or 8-bit)

I have been messing around with PICs (namely 16F870) and LCDs, I found that you need to give about 5ms for all instructions to complete.

For example character output:

Pin High RS
Pin Low RW

OutPort B, %00110001 'Character Number 1

Wait 5 ms

PinLow RS
PinLow RW

Did this answer your question?