/* this routine will print the hex nos in lcd directly*/ 
void hex2lcd(unsigned char hexdata) 
{ 
  unsigned char MSB,LSB; 
  MSB=((hexdata&0xf0)>>4); 
  LSB=(hexdata&0x0f); 
  if(MSB<0xa) 
    MSB=0x30+MSB; 
  else 
    MSB=0x37+MSB; 
  if(LSB<0xa) 
    LSB=0x30+LSB; 
  else 
    LSB=0x37+LSB; 
  lcd_data(MSB); 
  lcd_data(LSB); 
} 

/* this routine will print the decimal equivalent for the hex nos in lcd directly in the format "X.XX" */ 

void hex2dec2lcd(unsigned int hexnum) 
{ 
  unsigned char t=0,u=0,v=0; 
  h=0; 
  while(hexnum>=100) 
  { 
    h=hexnum-100; 
    t++; 
    hexnum=h; 
  } 
  while(hexnum>=10) 
  { 
    h=hexnum-10; 
    u++; 
    hexnum=h; 
  } 
  v=hexnum; 
  lcd_data(t+48); 
  lcd_data(46); 
  lcd_data(u+48); 
  lcd_data(v+48); 
} 

/* Routine for LCD display */ 

void lcd_data(unsigned char dat) 
{ 
  LCD_RS=1; 
  LCD_RW=0; 
  LCD_PORT=(dat); 
  LCD_EN=1; 
  for(a=0;a<0xf;a++); 
  LCD_EN=0; 
} 
