Hi
I am trying to get the LCD working with PIC18F4550 in EasyPIC6 board.
So I tried with this code :
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
void main()
{
ADCON1 |= 0x0F;
CMCON |= 7;
Lcd_Init(&PORTB); // Initialize LCD connected to PORTD
Lcd_Cmd(Lcd_CLEAR); // Clear display
Lcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor off
while(1)
{
delay_ms(1000);
Lcd_Out(1,1,text);
}
}
But the LCD dosen't show any message !
Can I find some HELP ? Please !
PIC 18F4550 with LCD !
Re: PIC 18F4550 with LCD !
Hi Asmae,
Try the following,
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
void main()
{
ADCON1 |= 0x0F;
CMCON |= 7;
Lcd_Init(&PORTB); // Initialize LCD connected to PORTD
Lcd_Cmd(Lcd_CLEAR); // Clear display
Lcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor off
while(1)
{
delay_ms(1000);
Lcd_Out(1,1,"text"); //you missed quotation here
}
}
Another way is:
char text[] = "Asmae", //declare at start before main
Lcd_ou(1,1,text);
Try the following,
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
void main()
{
ADCON1 |= 0x0F;
CMCON |= 7;
Lcd_Init(&PORTB); // Initialize LCD connected to PORTD
Lcd_Cmd(Lcd_CLEAR); // Clear display
Lcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor off
while(1)
{
delay_ms(1000);
Lcd_Out(1,1,"text"); //you missed quotation here
}
}
Another way is:
char text[] = "Asmae", //declare at start before main
Lcd_ou(1,1,text);
Re: PIC 18F4550 with LCD !
Hi,
First of all, you should use LAT registers instead of PORT registers for PIC18 family pin output, like this :
Next, you will have to pay attention to the oscillator configuration, as the oscillator block for the 18F4550 can be tricky to configure,
so I suggest you reading the datasheet or loading predefined oscillator schemes found in the Edit Project window.
Regards,
Filip.
First of all, you should use LAT registers instead of PORT registers for PIC18 family pin output, like this :
Code: Select all
// LCD module connections
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATbit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
so I suggest you reading the datasheet or loading predefined oscillator schemes found in the Edit Project window.
Regards,
Filip.