PIC 18F4550 with LCD !

General discussion on mikroC PRO for PIC.
Post Reply
Author
Message
Asmae
Posts: 12
Joined: 09 May 2012 12:59

PIC 18F4550 with LCD !

#1 Post by Asmae » 23 May 2012 16:35

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 !

jaji154
Posts: 3
Joined: 31 May 2012 13:48

Re: PIC 18F4550 with LCD !

#2 Post by jaji154 » 01 Jun 2012 07:22

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);

User avatar
filip
mikroElektronika team
Posts: 11874
Joined: 25 Jan 2008 09:56

Re: PIC 18F4550 with LCD !

#3 Post by filip » 01 Jun 2012 09:11

Hi,

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
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.

Post Reply

Return to “mikroC PRO for PIC General”