LCD programming for 8051 in KEiL

#include<REGX51.h>
#define en_dly 20
#define lcd_input P2
#define rs P3_3
#define en P3_2
void delay(unsigned char time)
{
unsigned int i,j;
for(i=0;i<time;i++)
for(j=0;j<1000;j++);
}
void lcd_cmd(unsigned char CMD)
{
//lcd_input=CMD>>4;
lcd_input=CMD;
rs=0;en=1;
delay(en_dly);
en=0;
//lcd_input=CMD;
// lcd_input=CMD<<4;
//rs=0;en=1;
// delay(en_dly);
// en=0;
}
void lcd_data(unsigned char dat)
{
//lcd_input=dat>>4;
lcd_input=dat;
rs=1;en=1;
delay(89);
en=0;
//lcd_input=dat;
// lcd_input=dat<<4;
//rs=1;en=1;
//delay(en_dly);
// en=0;
}
void lcd_init(void)
{
lcd_cmd(0x02);
// lcd_cmd(0x28);
   lcd_cmd(0x38);
lcd_cmd(0x0e);
lcd_cmd(0x06);
//lcd_cmd(0x0C);
lcd_cmd(0x01);
}
void display(char *name)
{
while(*name!=0)
{
lcd_data(*name);
name++;
}
}
void main()
{
unsigned char i=0;
unsigned char m_1[]=" *****";
unsigned char m_2[]=" Hello";
unsigned char m_3[]="  world****";
lcd_init();
while(1)
{
 lcd_cmd(0x01);lcd_cmd(0x80);
 display(m_1);
 delay(100);
 lcd_cmd(0xC0);
 display(m_2);
 lcd_cmd(0x01);lcd_cmd(0x80);
 display(m_3);
 delay(100);
 lcd_cmd(0xc0);
 for(i=0;i<9;i++)
 {
   lcd_data(i+48);
delay(89);
 }
 lcd_cmd(0x01);lcd_cmd(0x80);
 for(i=10;i<20;i++)
 {
   lcd_data(i+48);
delay(89);
 }
}
}

Comments

Popular posts from this blog

Password Based Locking System

Building Digital thermometer using ADC in ARM7 (lpc2148)