sudhakar a
Junior Member level 3
Hi any body help to me how to write a single character in 20*4 character lcd
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
LCD_Command(0x01); //position of charater
LCD_Command(0x83); //cursor position
LCD_SendData('A'); //write character A
LCD_Build(1);
void LCD_Init()
{
LCD_DATA=0x38; //8 bit mode
LCD_RS=0; //Selected command register
LCD_EN=1; //Enable
LCD_EN=0;
LCD_Busy(); //delay
LCD_DATA=0x0F; //Display on cusrnor blinking
LCD_RS=0;
LCD_EN=1;
LCD_EN=0;
LCD_Busy();
LCD_DATA=0x01; //clear lcd
LCD_RS=0;
LCD_EN=1;
LCD_EN=0;
LCD_Busy();
LCD_DATA=0x06; //Entry Mode
LCD_RS=0;
LCD_EN=1;
LCD_EN=0;
LCD_Busy();
}
void LCD_Command(_UBYTE var) //LCD COmmand ex:var=0x01
{
LCD_DATA=var;
LCD_RS=0;
LCD_EN=1;
LCD_EN=0;
LCD_Busy();
}
void LCD_SendData(_UBYTE var) //Send Data write characte ex:var='A'
{
LCD_DATA=var;
LCD_RS=1;
LCD_EN=1;
LCD_EN=0;
LCD_Busy();
}
void LCD_Busy() //Delay
{
_UBYTE i,j;
for(i=0;i<50;i++)
for(j=0;j<255;j++);
}
void LCD_Build(_UBYTE ch) //character buliding
{
LCD_Command(0x40+(ch*8));
LCD_SendData(0x04);
LCD_SendData(0x0E);
LCD_SendData(0x0E);
LCD_SendData(0x0E);
LCD_SendData(0x1F);
LCD_SendData(0x00);
LCD_SendData(0x04);
LCD_SendData(0x00);
}
#define LCD_RS p1_6
#define LCD_EN p1_7 //LCD ENABLE
#define LCD_BF p2_7 //LCD DB7(BUSY FLAG)
#define LCD_DATA p2_4 //LCD DATA
Code C - [expand] 1#define LCD_DATA p2_4 //LCD DATA
LCD_EN=1;
LCD_Busy();
LCD_EN=0;
LCD is LM20400 character lcd and i am using the r8c24 controller
#define LCD_RS_DIR p1_6
#define LCD_EN_DIR p1_7
#define LCD_BF_DIR p2_7
#define LCD_DATA_DIR p2
#define LCD_RS p1_6
#define LCD_EN p1_7 //LCD ENABLE
#define LCD_BF p2_7 //LCD DB7
#define LCD_DATA p2 //LCD DATA
LCD_Command(0x01); //position of charater
LCD_Command(0x83); //cursor position
LCD_SendData('A'); //write character A
void LCD_Init()
{
LCD_DATA=0x38; //8 bit mode
LCD_RS=0; //Selected command register
LCD_EN=1; //Enable
LCD_Busy(); //delay
LCD_EN=0;
LCD_DATA=0x0F; //Display on cusrnor blinking
LCD_RS=0;
LCD_EN=1;
LCD_Busy();
LCD_EN=0;
LCD_DATA=0x01; //clear lcd
LCD_RS=0;
LCD_EN=1;
LCD_Busy();
LCD_EN=0;
LCD_DATA=0x06; //Entry Mode
LCD_RS=0;
LCD_EN=1;
LCD_Busy();
LCD_EN=0;
}
void LCD_Command(_UBYTE var) //LCD COmmand ex:var=0x01
{
//LCD_Busy();
LCD_DATA=var;
LCD_RS=0;
LCD_EN=1;
LCD_Busy();
//LCD_Busy1(1);
LCD_EN=0;
}
void LCD_SendData(_UBYTE var) //Send Data write characte ex:var='A'
{
//LCD_Busy();
LCD_DATA=var;
LCD_RS=1;
LCD_EN=1;
LCD_Busy();
//LCD_Busy1(1);
LCD_EN=0;
}
void LCD_Busy() //Delay
{
_UINT i,j;
for(i=0;i<50;i++)
for(j=0;j<255;j++);
}
Code C - [expand] 1 2 3 4 5 6 7 8 9 #define LCD_RS_DIR PD1_6 #define LCD_EN_DIR PD1_7 #define LCD_BF_DIR PD2_7 #define LCD_DATA_DIR PD2 #define LCD_RS P1_6 #define LCD_EN P1_7 #define LCD_BF P2_7 #define LCD_DATA P2