I'm using the 28 pin demo board from Microchip (see schematic below) with a 18F2685pic, MPLAB IDE and Picbasic pro v2.47, and ICD2 for programming. The LCD pins are connected in the default manner. I'm using the internal oscilator @8 MHZ and the config file in my pbp directory is modified accordingly, that is:
Code:
__CONFIG _CONFIG1H, _OSC_IRCIO67_1H
The behavior the LCD is experiencing is bizzare: First, it shows black boxes on the first line (so everything fine until now). When releasing from reset, still black boxes on the first line. If I take LCD's Vdd out for a second I start seeing weird characters. Plug it back in, weird characters again. When I try to output "123456789" I get "1230123"(that is, with the vdd plugged in). If I try to output "hello", werid characters again.
Some of the pins on the demo board are occupied with the default components(leds, pot) but I tried to stay away these pins. Just RB3 (LCD E(nable) is on the same pin as one of the board's LED)
and the code:
Code:
' display a message on the lcd
DEFINE OSC 8
DEFINE LCD_DREG PORTB ' portb is the port used for data lines
DEFINE LCD_DBIT 4 'the pin on port connected to LCD pin DB4
DEFINE LCD_RSREG PORTA 'pic port used for the RS line
DEFINE LCD_RSBIT 4 ' port pin where RS pin is connected
DEFINE LCD_EREG PORTB ' PIC port where E pin is connected
DEFINE LCD_EBIT 3 ' port pin where E pin is connected
DEFINE LCD_BITS 4 ' 4 bit mode
DEFINE LCD_LINES 2 ' 2 LCD lines
DEFINE LCD_COMMANDUS 2000 'delay between LCD commands
DEFINE LCD_DATAUS 50 'delay between data sent
adcon1=7
trisb=0 ' port b all outputs
trisa=0 ' port a all outputs
intcon2.7=0 'enable pull ups
OSCCON = %01110000
'---main program
repeta:
high portb.0 ' light led to see when main loop is running
LCDOUT $fe,1 ' Clears LCD
LCDOUT $fe,2, "hello" ' Returns to beginning of line 1 and writes "string"
pause 1000
goto repeta
The lcd is a optorex dmc16207 which is Hitachi HD44780 compatible
Bookmarks