Running an LCD on different port
Quick question..(hopefully)
In the PBP manual it details the use of PortB to interface with a 2 x 16 LCD.
Quote:
PBP assumes the LCD is connected to specific pins unless told otherwise. It assumes the LCD will be used with a 4-bit bus with data lines DB4 - DB7 connected to PICmicro PORTA.0 - PORTA.3, Register Select to PORTA.4 and Enable to PORTB.3.
It is also preset to initialize the LCD to a 2 line display.
To change this setup, place one or more of the following DEFINEs, all in upper-case, at the top of your PICBASIC PRO™ program:
' Set LCD Data port
DEFINE LCD_DREG PORTB
' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_DBIT 4
' Set LCD Register Select port
DEFINE LCD_RSREG PORTB
If I wanted to use PORTC for the LCD display on a 16F873A PIC would the following work if the wiring was the same as shown in the manual (obviously substituting RA1 for RC1 etc)?
Quote:
' Set LCD Data port
DEFINE LCD_DREG PORTC
' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_DBIT 4
' Set LCD Register Select port
DEFINE LCD_RSREG PORTC
is there anything eles I would need to do to configure PORTC on the PIC other than TRISC=%00000000, for arguments sake disabling the rx / tx on ports RC7 and 6 ?
Problem Displaying dunno why?
Hi,
I got some problem with displaying 20 X 4 line LCD which the controller chip is HD 44780.Actually,when i programmed the chip according to the code below,the lcd is not working!.I even checked the PORTB pin and it seems not changing state?.But my board is working as i checked other programs (I2C,SPI) but this one is not working?.I feel weird.This program is actually sample program from Melabs itself.I wired the final 4 bit from lcd to PORTB.0 to PORTB.3 and the EBIT to to PORTD.7 and for sure RSBIT to PORTD.6.
What is my mistake??Do i have to insert more code like LCD lines and delay???PLS HELP!
DEFINE OSC 20
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4 ' 4 bit selected
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 6 ' Reset Pin
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 7 ' Enable Pin
pause 500 ' Insert Delay for LCD to Power_Up.
loop:
Lcdout $fe, 1 ' Clear LCD screen
Lcdout "Hello" ' Display Hello
Pause 500 ' Wait .5 second
Lcdout $fe, 1 ' Clear LCD screen
Lcdout "World"
Pause 500 ' Wait .5 second
Goto loop ' Do it forever
YOUR HELP KINDLY ACCEPTED