David, Sure. Here is the cmd and the data routines: extern void LCD_Send_cmd(unsigned char value) { LCD_data =3D value; LCD_rs =3D 0; LCD_rw =3D 0; LCD_e =3D 1; wait_ms(30); LCD_e =3D 0; } extern void LCD_Send_data(unsigned char value) { LCD_data =3D value; LCD_rs =3D 1; LCD_rw =3D 0; LCD_e =3D 1; wait_ms(30); LCD_e =3D 0; } You call them for sending either cmds or data to the LCD. The=20 initialize routine uses the cmd routine. Feel free to ask whatever=20 questions you think are necessary. I appreciate the help! Thanks, rich! On 10/22/2015 8:18 PM, David Duffy (AVD) wrote: > Can you give me a few lines of how you're using them in the code? > > On 23/10/2015 11:01 AM, Richard R. Pope wrote: >> David, >> Here are the pins used. >> #define LCD_rs RA0 //Pin 2 LCD pin = 4 >> #define LCD_rw RA1 //Pin 3 LCD pin 5 >> #define LCD_e RA2 //Pin 4 LCD pin = 6 >> #define LCD_data LATAD 19-22 and pins 27-30 >> Notice that LATAD works with the LCD_data definition! I don't get= it. >> Thanks, >> rich! >> >> On 10/22/2015 7:45 PM, David Duffy (AVD) wrote: >>> Ah.... I hadn't been playing along. :) >>> >>> So, what actual port pin is RS on ? >>> David... >>> >>> On 23/10/2015 10:08 AM, Richard R. Pope wrote: >>>> David, >>>> Let's try this again. I decided to use a 18f4550 instead of t= he >>>> 16f877a. Sorry about that. The PIC and LCD initialize but I can't get >>>> the LCD to accept and display any data such as a or b or hello there a= nd >>>> so forth. I have been discussing the 4550 all along and you were under >>>> the impression that I was using a 877. My fault. >>>> --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .