#include <REGX51.H>
void lcd_command(unsigned char com);
void lcd_text(unsigned char text);
void delay_lcd(unsigned int time);
void lcd_init(void);
void clrs(void);
sbit e = P1^2;
sbit rs = P1^3;
void main(void)
{delay_lcd(500);
 lcd_init();
 lcd_text('S');
  lcd_text('A');
   lcd_text('M');
    lcd_text('R');
	 lcd_text('A');
	  lcd_text('E');
	   lcd_text('N');
        lcd_text('G');

 lcd_text(' ');
  lcd_text(' ');

		    lcd_text('T');
               lcd_text('E');
                lcd_text('M');
                   lcd_text('R');
	                 lcd_text('A');
	                      lcd_text('M');
	                      
 while(1)
 {

 }


}
void lcd_command(unsigned char com)
{
   unsigned char buff;
   buff = com & 0xf0;
   rs = 0;
   e = 1;
   P1 = (P1 & 0x0f)|buff;
   delay_lcd(1);
   e = 0;
   delay_lcd(1);
   buff = (com & 0xff)<<4;
   rs = 0;
   e = 1;
   P1 = (P1 & 0x0f)|buff;
   delay_lcd(1);
   e = 0;
   delay_lcd(1);
}
void lcd_text(unsigned char text)
{
   unsigned char buff;
   buff = text & 0xf0;
   rs = 1;
   e = 1;
   P1 = (P1 & 0x0f)|buff;
   delay_lcd(1);
   e = 0;
   delay_lcd(1);
   buff = (text & 0x0f)<<4;
   rs = 1;
   e = 1;
   P1 = (P1 & 0x0f)|buff;
   delay_lcd(1);
   e = 0;
   delay_lcd(1);
}void lcd_init()
{
  delay_lcd(50);
  lcd_command(0x33);
 delay_lcd(50);
  lcd_command(0x32);
 delay_lcd(50);
  lcd_command(0x28);
 delay_lcd(50);
  lcd_command(0x0C);
}
void delay_lcd(unsigned int time)
{
  unsigned int x;
  for(x=0;x<time;x++);
}
