rangerskm
Full Member level 4
- Joined
- Jan 23, 2013
- Messages
- 199
- Helped
- 0
- Reputation
- 2
- Reaction score
- 0
- Trophy points
- 1,296
- Activity points
- 2,663
// Program to interface 16x2 LCD and display single character using PIC18F4550 Microcontroller
// Configuration bits
/* _CPUDIV_OSC1_PLL2_1L, // Divide clock by 2
_FOSC_HS_1H, // Select High Speed (HS) oscillator
_WDT_OFF_2H, // Watchdog Timer off
MCLRE_ON_3H // Master Clear on
*/
//LCD Control pins
#include<pic.h>
#include<stdio.h>
#define rs RB0
#define rw RB1
#define en RB2
//LCD Data pins
#define lcdport PORTD
void lcd_ini();
void lcdcmd(unsigned char);
void lcddata(unsigned char);
unsigned int i=0;
void Delay_ms(unsigned int msec) // Function to provide time delay in msec.
{
int i,j ;
for(i=0;i<msec;i++)
for(j=0;j<1275;j++);
}
void main(void)
{
// ADCON1=0X07;
TRISB=0; // Configure Port A as output port
//PORTB=0;
TRISD=0; // Configure Port B as output port
//PORTD=0;
lcd_ini(); // LCD initialization
lcddata('E'); // Print 'E'
Delay_ms(10);
lcdcmd(0x85); // Position 1st Line, 6th Column
lcddata('G'); // Print 'G'
}
void lcd_ini()
{
Delay_ms(1);
lcdcmd(0x30); // Configure the LCD in 8-bit mode, 2 line and 5x7 font
Delay_ms(10);
lcdcmd(0x30); // Configure the LCD in 8-bit mode, 2 line and 5x7 font
Delay_ms(10);
lcdcmd(0x30); // Configure the LCD in 8-bit mode, 2 line and 5x7 font
Delay_ms(10);
lcdcmd(0x38); // Configure the LCD in 8-bit mode, 2 line and 5x7 font
Delay_ms(10);
lcdcmd(0x38); // Configure the LCD in 8-bit mode, 2 line and 5x7 font
Delay_ms(1);
// lcdcmd(0x0F); // Display On and Cursor Off
// Delay_ms(1);
lcdcmd(0x01); // Clear display screen
Delay_ms(1);
lcdcmd(0x06); // Increment cursor
Delay_ms(1);
lcdcmd(0x80); // Set cursor position to 1st line, 1st column
Delay_ms(1);
}
void lcdcmd(unsigned char cmdout)
{
lcdport=cmdout; //Send command to lcdport=PORTB
rs=0;
rw=0;
en=1;
Delay_ms(1);
en=0;
Delay_ms(10);
}
void lcddata(unsigned char dataout)
{
lcdport=dataout; //Send data to lcdport=PORTB
rs=1;
rw=0;
en=1;
Delay_ms(10);
en=0;
Delay_ms(10);
}
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 #include<htc.h> #define rs RB0 #define rw RB1 #define en RB2 #define lcdport PORTD #define _XTAL_FREQ 12000000 //Your frequency void lcd_init(); void lcdcmd(unsigned char); void lcddata(unsigned char); unsigned int i=0; void Delay_ms(unsigned int msec) // Function to provide time delay in msec. { int i,j ; for(i=0;i<msec;i++) for(j=0;j<1275;j++); } void main(void) { TRISB=0; // Configure Port A as output port TRISD=0; // Configure Port B as output port lcd_init(); // LCD initialization lcddata('E'); // Print 'E' __delay_ms(10); lcdcmd(0x85); // Position 1st Line, 6th Column lcddata('G'); // Print 'G' while(1); } void lcd_init() { __delay_ms(100); lcdcmd(0x30); // Configure the LCD in 8-bit mode, 2 line and 5x7 font Delay_ms(15); lcdcmd(0x30); // Configure the LCD in 8-bit mode, 2 line and 5x7 font __delay_ms(1); lcdcmd(0x30); // Configure the LCD in 8-bit mode, 2 line and 5x7 font __delay_ms(10); lcdcmd(0x38); // Configure the LCD in 8-bit mode, 2 line and 5x7 font __delay_ms(10); lcdcmd(0x38); // Configure the LCD in 8-bit mode, 2 line and 5x7 font __delay_ms(1); lcdcmd(0x0F); // Display On and Cursor Off __delay_ms(1); lcdcmd(0x01); // Clear display screen __delay_ms(1); lcdcmd(0x06); // Increment cursor __delay_ms(1); lcdcmd(0x80); // Set cursor position to 1st line, 1st column __delay_ms(1); } void lcdcmd(unsigned char cmdout) { lcdport=cmdout; //Send command to lcdport=PORTB rs=0; rw=0; en=1; __delay_ms(1); en=0; } void lcddata(unsigned char dataout) { lcdport=dataout; //Send data to lcdport=PORTB rs=1; rw=0; en=1; __delay_ms(1); en=0; }
// Program to interface 16x2 LCD and display single character using PIC18F4550 Microcontroller
// Configuration bits
/* _CPUDIV_OSC1_PLL2_1L, // Divide clock by 2
_FOSC_HS_1H, // Select High Speed (HS) oscillator
_WDT_OFF_2H, // Watchdog Timer off
MCLRE_ON_3H // Master Clear on
*/
//LCD Control pins
#include<pic.h>
#include<stdio.h>
#define rs RB0
#define rw RB1
#define en RB2
//LCD Data pins
#define lcdport PORTD
void lcd_ini();
void lcdcmd(unsigned char);
void lcddata(unsigned char);
unsigned int i=0;
void Delay_ms(unsigned int msec) // Function to provide time delay in msec.
{
int i,j ;
for(i=0;i<msec;i++)
for(j=0;j<1275;j++);
}
void main(void)
{
TRISB=0; // Configure Port A as output port
TRISD=0; // Configure Port B as output port
lcd_ini(); // LCD initialization
lcddata('E'); // Print 'E'
Delay_ms(10);
lcdcmd(0x85); // Position 1st Line, 6th Column
lcddata('G'); // Print 'G'
}
void lcd_ini()
{
lcdcmd(0x01); // Clear display screen
lcdcmd(0x0C); // To On display, OFF the cursor and OFF blink
lcdcmd(0x38); // Configure the LCD in 8-bit mode, 2 line and 5x7 font
lcdcmd(0x80); // Set cursor position to 1st line, 1st column
Delay_ms(1);
}
void lcdcmd(unsigned char cmdout)
{
lcdport=cmdout; //Send command to lcdport=PORTB
rs=0;
rw=0;
en=1;
Delay_ms(10);
en=0;
}
void lcddata(unsigned char dataout)
{
lcdport=dataout; //Send data to lcdport=PORTB
rs=1;
rw=0;
en=1;
Delay_ms(10);
en=0;
}
HI venkatesh
i removed the delay loop and use built in delay as you mentioned
i got the error when used the above code
this is the error code i got
HI-TECH C PRO for the PIC10/12/16 MCU family (Lite) V9.65PL1
Copyright (C) 1984-2009 HI-TECH SOFTWARE
(1273) Omniscient Code Generation not available in Lite mode (warning)
Warning [1355] E:\ece tutorials\ELECTRONICS SOFT LAB\lab set up programs\MY WORKS C\LCD\lcd5.c; 40. inline delay argument too large
Error [800] C:\Users\sathish\AppData\Local\Temp\s4tg.; 305. undefined symbol "?__delay"
Error [800] C:\Users\sathish\AppData\Local\Temp\s4tg.; 313. undefined symbol "__delay"
HI venkatesh
i removed the delay loop and use built in delay as you mentioned
i got the error when used the above code
this is the error code i got
HI-TECH C PRO for the PIC10/12/16 MCU family (Lite) V9.65PL1
Copyright (C) 1984-2009 HI-TECH SOFTWARE
(1273) Omniscient Code Generation not available in Lite mode (warning)
Warning [1355] E:\ece tutorials\ELECTRONICS SOFT LAB\lab set up programs\MY WORKS C\LCD\lcd5.c; 40. inline delay argument too large
Error [800] C:\Users\sathish\AppData\Local\Temp\s4tg.; 305. undefined symbol "?__delay"
Error [800] C:\Users\sathish\AppData\Local\Temp\s4tg.; 313. undefined symbol "__delay"
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?