How to print byte array to lcd screen....???HELP

my friend I have written the code below…
Please use an one wire sensor and the lcd shield to see what is wrong…
I have to make a project for a project for my university and i have to finish it until Monday!!
Please help me get pass this problem…I am trying to find out whats happening for 5 days with no luck…
All i can tell is that the byte array cannot be displayed on the screen.Maybe because it contains 2 digits…
please help…
the code is pasted below!

Anyone that can help me and explain what is happening?

#include "nokia_3310_lcd.h"
char numStr[8];
#define DHT11_PIN 0      // ADC0
Nokia_3310_lcd lcd=Nokia_3310_lcd();
byte read_dht11_dat()
      byte i = 0;
      byte result=0;
      for(i=0; i< 8; i++){
            while(!(PINC & _BV(DHT11_PIN)));  // wait for 50us
            if(PINC & _BV(DHT11_PIN)) 
                  result |=(1<<(7-i));
              while((PINC & _BV(DHT11_PIN)));  // wait '1' finish
      return result;

void setup()
  lcd.LCD_3310_write_string( 0, 1, "Nokia 3310 LCD", MENU_NORMAL);
  lcd.LCD_3310_write_string( 0, 3, "NaThAN", MENU_NORMAL);
  lcd.LCD_3310_write_string( 13, 4, "Electronics!", MENU_NORMAL);
      DDRC |= _BV(DHT11_PIN);
      PORTC |= _BV(DHT11_PIN);
void loop()
      byte dht11_dat[5];
      byte dht11_in;
      byte i;
      // start condition
      // 1. pull-down i/o pin from 18ms
      PORTC &= ~_BV(DHT11_PIN);
      PORTC |= _BV(DHT11_PIN);
      DDRC &= ~_BV(DHT11_PIN);
      dht11_in = PINC & _BV(DHT11_PIN);
            Serial.println("dht11 start condition 1 not met");
      dht11_in = PINC & _BV(DHT11_PIN);
            Serial.println("dht11 start condition 2 not met");
      // now ready for data reception
      for (i=0; i<5; i++)
            dht11_dat[i] = read_dht11_dat();
      DDRC |= _BV(DHT11_PIN);
      PORTC |= _BV(DHT11_PIN);

        byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];
      // check check_sum
      if(dht11_dat[4]!= dht11_check_sum)
            Serial.println("DHT11 checksum error");
      char n=i;
      Serial.print("Current humdity = ");
      Serial.print(dht11_dat[0], DEC);
      Serial.print(dht11_dat[1], DEC);
      Serial.print("%  ");
      Serial.print("temperature = ");
      Serial.print(dht11_dat[2], DEC);
      Serial.print(dht11_dat[3], DEC);
      Serial.println("C  ");
 lcd.LCD_3310_write_string( 0, 0, "Humidity           Sensor...", MENU_NORMAL);
 lcd.LCD_3310_write_string( 0, 3, "temp = ", MENU_NORMAL);

//********THE PROBLEM IS BELOW!!!!
   lcd.LCD_3310_write_byte( dht11_dat[2],DEC);   //Here is the problem....
   // How can i make the byte array printed on the lcd screen?? PLEASE HELP!!!!


// Format a number to 2 decimal places
void formatNum( int num ) {
  // First part before decimalpoint
  itoa( num / 100, numStr, 10 );
  int pos = strlen( numStr );
  numStr[pos++] = '.';
  int decimal = num % 100;
  if( decimal > 9 ) {
    itoa( decimal, &numStr[pos], 10 );
  } else {
    numStr[pos++] = '0';
    itoa( decimal, &numStr[pos], 10 );

Problem SOLVED!
I am posting the code I used, so someone else who is experiencing with the same problem will get some help from here…

The code prints the DECIMAL values stored in the array of dhtll_dat into our LCD! Using the sprintf command…
Some others prefer the itoa command…But i dont know how to use it…

If someone knows and can post some information about itoa, i will be grateful!

#include <string.h> // Needed for memset

char buffer[64];

snprintf(buffer, 64, "Humidity sensor: %d.%d%%", dht11_dat[0], dht11_dat[1]);

lcd.LCD_3310_write_string( 0, 0, buffer, MENU_NORMAL);

// Zero out the buffer
memset(buffer, 0x00, 64);

snprintf(buffer, 64, "Temperature sensor: %d.%dC", dht11_dat[2], dht11_dat[3]);

lcd.LCD_3310_write_string( 0, 3, buffer, MENU_NORMAL);

others prefer the itoa command...But i dont know how to use it...

Does GCC know what itoa is?


Does GCC know what itoa is?