ds18b20 sketch not updating temperature?

I have this sketch that i put together.

#include <OneWire.h>

/* DS18S20 Temperature chip i/o
 
 */
uint8_t ones,tens;
OneWire  ds(10);  // on pin 10
byte seven_seg_digits[10][8] = {                           { 1,1,1,1,1,0,1,0 },  // = 0
                                                           { 0,1,1,0,0,0,0,1 },  // = 1
                                                           { 1,1,0,1,1,1,0,0 },  // = 2
                                                           { 1,1,1,1,0,1,0,1 },  // = 3
                                                           { 0,1,1,0,0,1,1,0 },  // = 4
                                                           { 1,0,1,1,0,1,1,1 },  // = 5
                                                           { 1,0,1,1,1,1,1,0 },  // = 6
                                                           { 1,1,1,0,0,0,0,1 },  // = 7
                                                           { 1,1,1,1,1,1,1,0 },  // = 8
                                                           { 1,1,1,0,0,1,1,1 }   // = 9
                                                           };
void setup(void) {
  pinMode(2, OUTPUT);   
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  // initialize inputs/outputs
  // start serial port
  Serial.begin(9600);
}
void displayWrite(byte digit) {
  byte pin = 2;
  for (byte segCount = 0; segCount < 8; ++segCount) {
    digitalWrite(pin, seven_seg_digits[digit][segCount]);
    ++pin;
  }
}
void loop(void) {
  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];
  int Temp;
  if ( !ds.search(addr)) {
      //Serial.print("No more addresses.\n");
      ds.reset_search();
      return;
  }
  
  //Serial.print("R=");  //R=28 Not sure what this is
  for( i = 0; i < 8; i++) {
    //Serial.print(addr[i], HEX);
    //Serial.print(" ");
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      //Serial.print("CRC is not valid!\n");
      return;
  }
  
  if ( addr[0] != 0x28) {
      //Serial.print("Device is not a DS18S20 family device.\n");
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);         // start conversion, with parasite power on at the end
  
  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.
  
  present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE);         // Read Scratchpad

  //Serial.print("P=");  
  //Serial.print(present,HEX);
  //Serial.print(" ");
  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    //Serial.print(data[i], HEX);
    //Serial.print("  ");
  }
  Temp=(data[1]<<8)+data[0];//take the two bytes from the response relating to temperature
  Temp=Temp>>4;//divide by 16 to get pure celcius readout
  Temp=Temp*1.8+32; // comment this line out to get celcius
  
  Serial.print("T=");//output the temperature to serial port
  Serial.print(Temp);
  tens = Temp/10;
  ones = Temp-tens*10;
  for (byte count = 10; count > 0; --count) {
   displayWrite(tens);
   delay(1000);
   displayWrite(ones);
   delay(1000);
  }
}

however, the led display(seven_seg, displayWrite that thing) doesnt update and neither does the serial moniter. im assuming its just somthing wrong with my code, and if i reset the arduino(with the button or by unplugging) it does update once but than never again. Sorry at first i put this in the wrong section.

Edit i have not the slightest idea what i did but i fixed it…
heres the new code for anyone that wants to use a seven segment display with a ds18b20:

#include <OneWire.h>

/* DS18S20 Temperature chip i/o
 
 */
uint8_t ones,tens;
OneWire  ds(10);  // on pin 10
byte seven_seg_digits[12][11] = {                          { 1,1,1,1,1,0,1,0 },  // = 0
                                                           { 0,1,1,0,0,0,0,0 },  // = 1
                                                           { 1,1,0,1,1,1,0,0 },  // = 2
                                                           { 1,1,1,1,0,1,0,0 },  // = 3
                                                           { 0,1,1,0,0,1,1,0 },  // = 4
                                                           { 1,0,1,1,0,1,1,0 },  // = 5
                                                           { 1,0,1,1,1,1,1,0 },  // = 6
                                                           { 1,1,1,0,0,0,0,0 },  // = 7
                                                           { 1,1,1,1,1,1,1,0 },  // = 8
                                                           { 1,1,1,0,0,1,1,0 },  // = 9
                                                           { 0,0,0,0,0,0,0,1 },  // = dot
                                                           { 1,0,0,0,1,1,1,1 }  // = F
                                                           };
void setup(void) {
  pinMode(2, OUTPUT);   
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  // initialize inputs/outputs
  // start serial port
  Serial.begin(9600);
}
void displayWrite(byte digit) {
  byte pin = 2;
  for (byte segCount = 0; segCount < 11; ++segCount) {
    digitalWrite(pin, seven_seg_digits[digit][segCount]);
    ++pin;
  }
}
void loop(void) {
  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];
  int Temp;
  if ( !ds.search(addr)) {
      //Serial.print("No more addresses.\n");
      ds.reset_search();
      return;
  }
  
  //Serial.print("R=");  //R=28 Not sure what this is
  for( i = 0; i < 8; i++) {
    //Serial.print(addr[i], HEX);
    //Serial.print(" ");
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      //Serial.print("CRC is not valid!\n");
      return;
  }
  
  if ( addr[0] != 0x28) {
      //Serial.print("Device is not a DS18S20 family device.\n");
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);         // start conversion, with parasite power on at the end
  
  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.
  
  present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE);         // Read Scratchpad

  //Serial.print("P=");  
  //Serial.print(present,HEX);
  //Serial.print(" ");
  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    //Serial.print(data[i], HEX);
    //Serial.print("  ");
  }
  Temp=(data[1]<<8)+data[0];//take the two bytes from the response relating to temperature
  Temp=Temp>>4;//divide by 16 to get pure celcius readout
  Temp=Temp*1.8+32; // comment this line out to get celcius
  
  Serial.print("T=");//output the temperature to serial port
  Serial.print(Temp);
  tens = Temp/10;
  ones = Temp-tens*10;
   displayWrite(tens);
   delay(500);
   displayWrite(10);
   delay(500);
   displayWrite(ones);
   delay(1000);
   displayWrite(11);
   delay(1000);
}

I used KDIFF3 to determine your changes: (took 20 seconds)

1) you resized the array of special chars 2) you changed

  for (byte count = 10; count > 0; --count) {
   displayWrite(tens);
   delay(1000);
   displayWrite(ones);
   delay(1000);
  }

into

   displayWrite(tens);
   delay(500);
   displayWrite(10);
   delay(500);
   displayWrite(ones);
   delay(1000);
   displayWrite(11);
   delay(1000);

Differences in code can easily be detected by tools like kdiff3.exe - http://kdiff3.sourceforge.net/ - ( a must have tool for programmers )