using "while" to display info on LCD

Ok another stumper that I need some input for. I am building an AC control unit for a car, and want to display the "temp" setting on the LCD screen, I have a 16x2. I have 2 buttons, for temp up and temp down, which are multiplexed to output on pins 22-30, (I have the MEGA), and go to 3 different cascaded multiplexers, which can give me a total of 24 "temp settings" but I am only using 18. There are 18 LEDS hooked up on a parallell set of multiplexers, so I can watch what is happening. When the system boots, led 1 is on, when temp up is hit, the leds light up increasing until 18 is lit, and opposite for temp down. This part works PERFECT.

Now to get to my question. I want to display something like:

TEMP
C*****XH

on the screen, and have the X move back and forth. The display should last about a second, then go right back to what it was doing before, which was a static display of the outside and inside temperatures. When I add this section in, it adds delay to my loop, and the buttons stop working. I need everything to be as responsive as possible. I am uploading my code and I will try to take a short video so you can see what I am trying to accomplish.

Heres the code, vid will follow:

byte TEMP0 = 0; //analog 8 sensor input
byte TEMP1 = 0; //analog 9 sensor input
int TEMP1F = 0;
int TEMP0F = 0;
int FAN = 0;
int LOC = 0;
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


byte count;

void setup()
{ 
  lcd.begin (16,2);              //DISPLAYS OPENING LOGO ONCE
  lcd.setCursor (0,0);
  lcd.print (" WELCOME TO MY");
  lcd.setCursor (0,1);
  lcd.print ("     CAMARO");
  delay (7000);
  lcd.clear();
  delay(100);                   //CLEARS 7 SECONDS LATER
 
  //TEMP SENSOR INPUTS
  
  //temp up and down control
  pinMode (32, INPUT);         //external debounced switch pins 52 is temp up
  pinMode (33, INPUT);        // 50 is temp down
  pinMode (22, OUTPUT);       //pinS ODD 37-53 are outputs for multiplexers
  pinMode (23, OUTPUT);
  pinMode (24, OUTPUT);
  pinMode (25, OUTPUT);
  pinMode (26, OUTPUT);
  pinMode (27, OUTPUT);
  pinMode (28, OUTPUT);
  pinMode (29, OUTPUT);
  pinMode (30, OUTPUT);       //END OUTPUT PINS FOR TEMP CHIPS
  //fan speed/location control
  pinMode (15, INPUT);     //reads ADC value from fan speed knob
  pinMode (35, OUTPUT);    //outputs to s0 on fan driver chip
  pinMode (36, OUTPUT);    //outputs to s1 on fan driver chip
  pinMode (37, OUTPUT);    //outputs to s2 on fan driver chip
  pinMode (38, OUTPUT);    //outputs to s0 on location chip
  pinMode (39, OUTPUT);    //outputs to s1 on location chip
  pinMode (40, OUTPUT);    //outputs to s2 on location chip
  pinMode (14, INPUT);     //reads ADC value from location knob
  Serial.begin (9600);     //START SERIAL FOR THE HELL OF IT

}

void loop()   
//=========================================================================================
//=========================================================================================
//=========================================================================================
//FAN SPEED BLOCK START
{
  int FAN = analogRead (15);

 //P[IN 34 IS INPUT FROM KNOB
 // Trigger notes : 35 is s0, 36 is s1, and 37 is s2
 
if (FAN < 10 )                                  //pot detent 1
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 100 && FAN < 250 )              //pot detent 2
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 251 && FAN < 350 )              //pot detent 3
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 351 && FAN < 450 )              //pot detent 4
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 451 && FAN < 625 )              //pot detent 5
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
{}

if (FAN > 626 && FAN < 775 )              //pot detent 6
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
{}
if (FAN > 776 && FAN < 950 )              //pot detent 7
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}
if (FAN > 951 )              //pot detent 8
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}

 Serial.println (analogRead (15));

//FAN SPEED BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP SENSOR BLOCK START
{
  int TEMP0 = analogRead(8);  
   int TEMP0F = TEMP0 * 20 / 10; // converting that reading to voltage, for 3.3v arduino use 3.3
    lcd.setCursor(0,0);
     lcd.print("OUTSIDE   "); lcd.print (TEMP0F); lcd.print("F ");

delay (0);

 int TEMP1 = analogRead(9);  
   int TEMP1F = TEMP1 * 20 / 20; // converting that reading to voltage, for 3.3v arduino use 3.3
    lcd.setCursor(0,1);
     lcd.print("INSIDE    "); lcd.print (TEMP1F); lcd.print("F ");
 
 delay (500);} 
 //TEMP SENSOR INPUT BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP CONTROL BLOCK START
{if (digitalRead(33) == HIGH && count < 18) 
  {count++;
  delay (10);}
else if (digitalRead(32) == HIGH && count > 0) 
  {count--;
  delay (10);}
  
 //start sending temp button contact closure commands

if (count == 0)
 {digitalWrite (22, LOW);
  digitalWrite (23, LOW);
  digitalWrite (24, LOW);
  digitalWrite (25, LOW);
  digitalWrite (26, LOW);
  digitalWrite (27, LOW);
  digitalWrite (28, LOW);
  digitalWrite (29, LOW);
  digitalWrite (30, LOW);}
else
{}

//counts all the way from 0 to 17, 18 total. Omittted for space. 

if(count == 17)
{ digitalWrite (22, HIGH);
  digitalWrite (23, HIGH);
  digitalWrite (24, HIGH);
  digitalWrite (25, HIGH);
  digitalWrite (26, HIGH);
  digitalWrite (27, HIGH);
  digitalWrite (28, HIGH);
  digitalWrite (29, LOW);
  digitalWrite (30, HIGH); }
else
{}
//TEMP CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//LOCATION CONTROL BLOCK START
{int LOC = analogRead (14);

 // PIN 14 IS INPUT FROM KNOB
 // Trigger notes : 38 is s0, 39 is s1, and 40 is s2
 
if (LOC < 10 )                                  //pot detent 1
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 150 && LOC < 250 )              //pot detent 2
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 251 && LOC < 450 )              //pot detent 3
{digitalWrite (38, LOW);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 451 && LOC < 650 )              //pot detent 4
{digitalWrite (38, HIGH);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 651 && LOC < 850 )              //pot detent 5
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
{}

if (LOC > 851 )              //pot detent 6
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
{}}
//LOCATION CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================

}
}

just noticed some of my pin numbers in my notes dont line up. Cosmetic but Ill fix them.

First of, you use if statements with a blanc else, it is allright to leave out the else (in fact, this is preferable).
However, you could optimise your code by using that else
simply remove the {} after it.
This will make it look at the first if, and disregard the other ifs if this one is true.
This should save your controller some instructions, as the other ifs can never be true if an earlier one is true.

ie:

if(i == 1)
{
  //do something
}
else {}

if(i == 2)
...

to

if(i == 1)
{
  //do something
}
else
if(i == 2)
...

A bit late here at the moment, I'll take a further look tomorrow.

hmm i didnt know that. That would definitely help with the compute cycle. Ill make some edits and post up what I have and see what you think. THanks!!. The vid is being uploaded to youtube right now. 750MB so it might be a lil while.

ok after 2 hours of upload time here it is. enjoy!

I need everything to be as responsive as possible.

You should breakdown your large loop into small functions that can be called from inside of loop().
Inside the loop you put some logic based on milli information to call time dependant functions

Ok, I've hacked away at your code.
I couldn't make heads or tails from your code as it is all in one giant loop with unnecessary curly brackets and else's and whatnots.
Please do forgive that this 'corrected' uses 4 spaces for indents as opposed to the 2 that are used by default by the arduino IDE, this is because I used gedit, a basic notepad (for linux).

byte TEMP0 = 0; //analog 8 sensor input
byte TEMP1 = 0; //analog 9 sensor input
int TEMP1F = 0;
int TEMP0F = 0;
int FAN = 0;
int LOC = 0;
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


byte count;

void setup()
{
  lcd.begin (16,2);              //DISPLAYS OPENING LOGO ONCE
  lcd.setCursor (0,0);
  lcd.print (" WELCOME TO MY");
  lcd.setCursor (0,1);
  lcd.print ("     CAMARO");
  delay (7000);
  lcd.clear();
  delay(100);                   //CLEARS 7 SECONDS LATER

  //TEMP SENSOR INPUTS
  
  //temp up and down control
  pinMode (32, INPUT);         //external debounced switch pins 52 is temp up
  pinMode (33, INPUT);        // 50 is temp down
  pinMode (22, OUTPUT);       //pinS ODD 37-53 are outputs for multiplexers
  pinMode (23, OUTPUT);
  pinMode (24, OUTPUT);
  pinMode (25, OUTPUT);
  pinMode (26, OUTPUT);
  pinMode (27, OUTPUT);
  pinMode (28, OUTPUT);
  pinMode (29, OUTPUT);
  pinMode (30, OUTPUT);       //END OUTPUT PINS FOR TEMP CHIPS
  //fan speed/location control
  pinMode (15, INPUT);     //reads ADC value from fan speed knob
  pinMode (35, OUTPUT);    //outputs to s0 on fan driver chip
  pinMode (36, OUTPUT);    //outputs to s1 on fan driver chip
  pinMode (37, OUTPUT);    //outputs to s2 on fan driver chip
  pinMode (38, OUTPUT);    //outputs to s0 on location chip
  pinMode (39, OUTPUT);    //outputs to s1 on location chip
  pinMode (40, OUTPUT);    //outputs to s2 on location chip
  pinMode (14, INPUT);     //reads ADC value from location knob
  Serial.begin (9600);     //START SERIAL FOR THE HELL OF IT
}



void loop()  
{
    unsigned long currentTime = millis();
    
    HandleFan();
    DisplayTemperature(currentTime);
    ControlTemperature();
    HandleLocation();

    delay(1); //prevents the loop from 'racing', not required.. but keeps control signals a bit more stable (they take more than a millisecond to change now)
}



void HandleFan()
{
    int FAN = analogRead(15);

    //P[IN 34 IS INPUT FROM KNOB
    // Trigger notes : 35 is s0, 36 is s1, and 37 is s2

    if(FAN < 10)                                  //pot detent 1
    {
        digitalWrite (35, LOW);
        digitalWrite (36, LOW);
        digitalWrite (37, LOW);
    }
    else
    if(FAN > 100 && FAN < 250)              //pot detent 2
    {
        digitalWrite (35, HIGH);
        digitalWrite (36, LOW);
        digitalWrite (37, LOW);
    }
    else
    if(FAN > 251 && FAN < 350)              //pot detent 3
    {
        digitalWrite (35, LOW);
        digitalWrite (36, HIGH);
        digitalWrite (37, LOW);
    }
    else
    if(FAN > 351 && FAN < 450)              //pot detent 4
    {
        digitalWrite (35, HIGH);
        digitalWrite (36, HIGH);
        digitalWrite (37, LOW);
    }
    else
    if(FAN > 451 && FAN < 625)              //pot detent 5
    {
        digitalWrite (35, LOW);
        digitalWrite (36, LOW);
        digitalWrite (37, HIGH);
    }
    else
    if(FAN > 626 && FAN < 775)              //pot detent 6
    {
        digitalWrite (35, HIGH);
        digitalWrite (36, LOW);
        digitalWrite (37, HIGH);
    }
    else
    if(FAN > 776 && FAN < 950)              //pot detent 7
    {
        digitalWrite (35, LOW);
        digitalWrite (36, HIGH);
        digitalWrite (37, HIGH);
    }
    else
    if(FAN > 951)                          //pot detent 8
    {
        digitalWrite (35, HIGH);
        digitalWrite (36, HIGH);
        digitalWrite (37, HIGH);
    }

    //debug message
    Serial.println (analogRead (15));
}



unsigned long displayTemperatureDelay = 0;
void DisplayTemperature(unsigned long time)
{
    if((time-displayTemperatureDelay) > 500) //wait for 500 milliseconds before updating the display (if time rolls over, the subtraction will yield a negative number that rolls over too, giving the proper time elapsed)
    {
        displayTemperatureDelay = time;
        
        int TEMP0  = analogRead(8);  
        int TEMP0F = (TEMP0 * 20) / 10; // converting that reading to voltage, for 3.3v arduino use 3.3
        lcd.setCursor(0,0);
        lcd.print("OUTSIDE   ");
        lcd.print (TEMP0F);
        lcd.print("F ");
        
        int TEMP1  = analogRead(9);  
        int TEMP1F = (TEMP1 * 20) / 20; // converting that reading to voltage, for 3.3v arduino use 3.3
        lcd.setCursor(0,1);
        lcd.print("INSIDE    "); lcd.print (TEMP1F); lcd.print("F ");
    }
}



void ControlTemperature()
{
    if(digitalRead(33) == HIGH && count < 18)
    {
        count++;
        delay(10);
    }
    else
    if(digitalRead(32) == HIGH && count > 0)
    {
        count--;
        delay(10);
    }
  
    //start sending temp button contact closure commands

    if(count == 0)
    {
        digitalWrite (22, LOW);
        digitalWrite (23, LOW);
        digitalWrite (24, LOW);
        digitalWrite (25, LOW);
        digitalWrite (26, LOW);
        digitalWrite (27, LOW);
        digitalWrite (28, LOW);
        digitalWrite (29, LOW);
        digitalWrite (30, LOW);
    }
    else

    //counts all the way from 0 to 17, 18 total. Omittted for space.

    if(count == 17)
    {
        digitalWrite (22, HIGH);
        digitalWrite (23, HIGH);
        digitalWrite (24, HIGH);
        digitalWrite (25, HIGH);
        digitalWrite (26, HIGH);
        digitalWrite (27, HIGH);
        digitalWrite (28, HIGH);
        digitalWrite (29, LOW);
        digitalWrite (30, HIGH);
    }
}



void HandleLocation()
{
    int LOC = analogRead (14);

    // PIN 14 IS INPUT FROM KNOB
    // Trigger notes : 38 is s0, 39 is s1, and 40 is s2

    if(LOC < 10)                                //pot detent 1
    {
        digitalWrite (38, LOW);
        digitalWrite (39, LOW);
        digitalWrite (40, LOW);
    }
    else
    if(LOC > 150 && LOC < 250)              //pot detent 2
    {
        digitalWrite (38, HIGH);
        digitalWrite (39, LOW);
        digitalWrite (40, LOW);
    }
    else
    if(LOC > 251 && LOC < 450)              //pot detent 3
    {
        digitalWrite (38, LOW);
        digitalWrite (39, HIGH);
        digitalWrite (40, LOW);
    }
    else
    if(LOC > 451 && LOC < 650)              //pot detent 4
    {
        digitalWrite (38, HIGH);
        digitalWrite (39, HIGH);
        digitalWrite (40, LOW);
    }
    else
    if(LOC > 651 && LOC < 850)              //pot detent 5
    {
        digitalWrite (38, LOW);
        digitalWrite (39, LOW);
        digitalWrite (40, HIGH);
    }
    else
    if(LOC > 851)                          //pot detent 6
    {
        digitalWrite (38, HIGH);
        digitalWrite (39, LOW);
        digitalWrite (40, HIGH);
    }
}

You should notice four things:

  1. As fdufnews said, I put all your logic into their seperate functions, this is to keep the loop clean and makes it easy to distinguish between different control functions.
  2. I removed your blanc else clauses, and made them into either normal else clauses if it makes sense, or removed them.
  3. I removed unnecessary curly brackets, and gave them their own line, this is a normal code convention that makes it easy for you, aswell as others, to read your code.
  4. No more delays, delay(0) is fairly useless.. as it doesn't have to wait. Also the delay(500) could mess up timing, and makes the system unresponsive.. (you could do a lot of other stuff in that time), I replaced it with a structure that should remind you of the BlinkWithoutDelay example.

Please keep in mind that I only wrote a tiny fraction of code for you... (the replacement for delay)
This 'fixing' is mainly intended for me to know where your issues lie, as it was a jungle :-X

The question is, with the now overseeable code, do you think you can manage to add your slider-bar control? (without using the delay function, it is what makes stuff not respond)

Well I looked through Imahilus's code, and just got slightly more confused. It takes a while for some things to sink in, and programming is not my strong point. I have gotten my display to work the way I want, I will post another vid later. But Now Im getting an error on Verify, which is
"expected unqualified-id before '{' token. I dont know if its a problem with the curly brackets or not. Ive tried a bunch of different things, but to no sucess. Anyone wanna take a look and see if its just something simple that I overlooked? I didnt know you could split the LOOP into sections, like void HANDLEFAN. Im gonna have to mess with it and see what I can do as well.

byte TEMP0 = 0; //analog 8 sensor input
byte TEMP1 = 0; //analog 9 sensor input
int TEMP1F = 0;
int TEMP0F = 0;
int FAN = 0;
int LOC = 0;
byte DISP = 0;

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


byte count;

void setup()
{ 
  lcd.begin (16,2);              //DISPLAYS OPENING LOGO ONCE
  lcd.setCursor (0,0);
  lcd.print ("    HESS ZR1    ");
  lcd.setCursor (0,1);
  lcd.print ("     CAMARO     ");
  delay (7000);
  lcd.clear();
  delay(100);                   //CLEARS 7 SECONDS LATER
 
  //TEMP SENSOR INPUTS
  
  //temp up and down control
  pinMode (32, INPUT);         //external debounced switch pins 52 is temp up
  pinMode (33, INPUT);        // 50 is temp down
  pinMode (22, OUTPUT);       //pinS ODD 37-53 are outputs for multiplexers
  pinMode (23, OUTPUT);
  pinMode (24, OUTPUT);
  pinMode (25, OUTPUT);
  pinMode (26, OUTPUT);
  pinMode (27, OUTPUT);
  pinMode (28, OUTPUT);
  pinMode (29, OUTPUT);
  pinMode (30, OUTPUT);       //END OUTPUT PINS FOR TEMP CHIPS
  //fan speed/location control
  pinMode (15, INPUT);     //reads ADC value from fan speed knob
  pinMode (35, OUTPUT);    //outputs to s0 on fan driver chip
  pinMode (36, OUTPUT);    //outputs to s1 on fan driver chip
  pinMode (37, OUTPUT);    //outputs to s2 on fan driver chip
  pinMode (38, OUTPUT);    //outputs to s0 on location chip
  pinMode (39, OUTPUT);    //outputs to s1 on location chip
  pinMode (40, OUTPUT);    //outputs to s2 on location chip
  pinMode (14, INPUT);     //reads ADC value from location knob
  Serial.begin (9600);     //START SERIAL FOR THE HELL OF IT

}

void loop()   
//=========================================================================================
//=========================================================================================
//=========================================================================================
//FAN SPEED BLOCK START

{int FAN = analogRead (15);

 //P[IN 34 IS INPUT FROM KNOB
 // Trigger notes : 35 is s0, 36 is s1, and 37 is s2
 
if (FAN < 10 )                                  //pot detent 1
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 100 && FAN < 250 )              //pot detent 2
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 251 && FAN < 350 )              //pot detent 3
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 351 && FAN < 450 )              //pot detent 4
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 451 && FAN < 625 )              //pot detent 5
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
{}

if (FAN > 626 && FAN < 775 )              //pot detent 6
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
{}
if (FAN > 776 && FAN < 950 )              //pot detent 7
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}
if (FAN > 951 )              //pot detent 8
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}
}

//FAN SPEED BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP SENSOR BLOCK START

{int TEMP0 = analogRead(8);  
  int TEMP0F = TEMP0 * 20 / 10; // converting that reading to voltage,

 {if (DISP == 8)  
   { lcd.setCursor(0,0);
     lcd.print("  OUTSIDE   "); lcd.print (TEMP0F); lcd.print("F   ");}
 }



 {int TEMP1 = analogRead(9);  
   int TEMP1F = TEMP1 * 20 / 20; // converting that reading to voltage,
 }
 {if (DISP == 8)  
   { lcd.setCursor(0,1);
     lcd.print("  INSIDE    "); lcd.print (TEMP1F); lcd.print("F   ");}

delay (50);    
}
}


  
 //TEMP SENSOR INPUT BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP CONTROL BLOCK START
{if (digitalRead(33) == HIGH && count < 18) 
  {count++;
  DISP = 0;
  delay (75);}
else if (digitalRead(32) == HIGH && count > 0) 
  {count--;
  DISP = 0;
  delay (75);}


{if (DISP < 8)
  {DISP++;}
  else
  {}
}}
  
// TEMP DISPLAY ON SCREEN COUNTER

{if (count == 0 && DISP > 1 && DISP < 7 )
   {lcd.clear();
    lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("     MAX AC     ");}
 else
 if (count == 1 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("    MAX COLD    ");}
 else

******OMITTED FOR POSTING******

  if (count == 15 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C==============H");}
 else
 if (count == 16 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C===============");}
 else
 if (count == 17 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("    MAX HOT     ");}
}
  
//start sending temp button contact closure commands
Serial.println (REFRESH, DEC);
if (count == 0)
 {digitalWrite (22, LOW);
  digitalWrite (23, LOW);
  digitalWrite (24, LOW);
  digitalWrite (25, LOW);
  digitalWrite (26, LOW);
  digitalWrite (27, LOW);
  digitalWrite (28, LOW);
  digitalWrite (29, LOW);
  digitalWrite (30, LOW);
  byte DISP = 0;}
else

******COUNTS 1-17, BUT OMMITTED FOR POSTING ONLINE********


if(count == 17)
{ digitalWrite (22, HIGH);
  digitalWrite (23, HIGH);
  digitalWrite (24, HIGH);
  digitalWrite (25, HIGH);
  digitalWrite (26, HIGH);
  digitalWrite (27, HIGH);
  digitalWrite (28, HIGH);
  digitalWrite (29, LOW);
  digitalWrite (30, HIGH);
  byte DISP = 0;}
else
{}}
//TEMP CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//LOCATION CONTROL BLOCK START
{int LOC = analogRead (14);

 // PIN 14 IS INPUT FROM KNOB
 // Trigger notes : 38 is s0, 39 is s1, and 40 is s2
 
if (LOC < 10 )                                  //pot detent 1
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 150 && LOC < 250 )              //pot detent 2
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 251 && LOC < 450 )              //pot detent 3
{digitalWrite (38, LOW);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 451 && LOC < 650 )              //pot detent 4
{digitalWrite (38, HIGH);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 651 && LOC < 850 )              //pot detent 5
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
{}

if (LOC > 851 )              //pot detent 6
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
{}}
//LOCATION CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================

}
}

OK after doing some modifications to the code, im getting a few more errors. Anyone care to help? Im at a loss.

Error is:
In function 'void loop()':
error: too few arguments to function 'void DisplayTemperature(long unsigned int)' In function 'void DisplayTemperature(long unsigned int)':
In function 'void ControlTemperature()':
At global scope:
Bad error line: -2

Code is:

byte TEMP0 = 0; //analog 8 sensor input
byte TEMP1 = 0; //analog 9 sensor input
int TEMP1F = 0;
int TEMP0F = 0;
int FAN = 0;
int LOC = 0;
byte DISP = 0;

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


byte count;

void setup()
{ 
  lcd.begin (16,2);              //DISPLAYS OPENING LOGO ONCE
  lcd.setCursor (0,0);
  lcd.print ("    HESS ZR1    ");
  lcd.setCursor (0,1);
  lcd.print ("     CAMARO     ");
  delay (7000);
  lcd.clear();
  delay(100);                   //CLEARS 7 SECONDS LATER
 
  //TEMP SENSOR INPUTS
  
  //temp up and down control
  pinMode (32, INPUT);         //external debounced switch pins 52 is temp up
  pinMode (33, INPUT);        // 50 is temp down
  pinMode (22, OUTPUT);       //pinS ODD 37-53 are outputs for multiplexers
  pinMode (23, OUTPUT);
  pinMode (24, OUTPUT);
  pinMode (25, OUTPUT);
  pinMode (26, OUTPUT);
  pinMode (27, OUTPUT);
  pinMode (28, OUTPUT);
  pinMode (29, OUTPUT);
  pinMode (30, OUTPUT);       //END OUTPUT PINS FOR TEMP CHIPS
  //fan speed/location control
  pinMode (15, INPUT);     //reads ADC value from fan speed knob
  pinMode (35, OUTPUT);    //outputs to s0 on fan driver chip
  pinMode (36, OUTPUT);    //outputs to s1 on fan driver chip
  pinMode (37, OUTPUT);    //outputs to s2 on fan driver chip
  pinMode (38, OUTPUT);    //outputs to s0 on location chip
  pinMode (39, OUTPUT);    //outputs to s1 on location chip
  pinMode (40, OUTPUT);    //outputs to s2 on location chip
  pinMode (14, INPUT);     //reads ADC value from location knob
  Serial.begin (9600);     //START SERIAL FOR THE HELL OF IT

}

void loop()
{
  unsigned long currentTime = millis();
  
  HandleFan();
  DisplayTemperature();
  ControlTemperature();
  HandleLocation();
  
  delay(5);
  
}

//=========================================================================================
//=========================================================================================
//=========================================================================================
//FAN SPEED BLOCK START
void HandleFan()

{int FAN = analogRead (15);

 //P[IN 34 IS INPUT FROM KNOB
 // Trigger notes : 35 is s0, 36 is s1, and 37 is s2
 
if (FAN < 10 )                                  //pot detent 1
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 100 && FAN < 250 )              //pot detent 2
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 251 && FAN < 350 )              //pot detent 3
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 351 && FAN < 450 )              //pot detent 4
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
{}

if (FAN > 451 && FAN < 625 )              //pot detent 5
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
{}

if (FAN > 626 && FAN < 775 )              //pot detent 6
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
{}
if (FAN > 776 && FAN < 950 )              //pot detent 7
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}
if (FAN > 951 )              //pot detent 8
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}
}

//FAN SPEED BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP SENSOR BLOCK START

unsigned long displayTemperatureDelay = 0;
void DisplayTemperature(unsigned long time)
{
  if((time-displayTempDelay) > 500) //wait for 500 milliseconds before updating the display (if time rolls over, the subtraction will yield a negative number that rolls over too, giving the proper time elapsed)
  {
        displayTemperatureDelay = time;

        int TEMP0  = analogRead(8);
        int TEMP0F = (TEMP0 * 20) / 10; // converting that reading to voltage, for 3.3v arduino use 3.3
        lcd.setCursor(0,0);
        lcd.print("OUTSIDE   ");
        lcd.print (TEMP0F);
        lcd.print("F ");

        int TEMP1  = analogRead(9);
        int TEMP1F = (TEMP1 * 20) / 20; // converting that reading to voltage, for 3.3v arduino use 3.3
        lcd.setCursor(0,1);
        lcd.print("INSIDE    "); lcd.print (TEMP1F); lcd.print("F ");
    }
}

//TEMP SENSOR INPUT BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP CONTROL BLOCK START
void ControlTemperature()

{if (digitalRead(33) == HIGH && count < 18) 
  {count++;
  DISP = 0;
  delay (75);}
else if (digitalRead(32) == HIGH && count > 0) 
  {count--;
  DISP = 0;
  delay (75);}


{if (DISP < 8)
  {DISP++;}
  else
  {}
}
  
// TEMP DISPLAY ON SCREEN COUNTER

{if (count == 0 && DISP > 1 && DISP < 7 )
   {lcd.clear();
    lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("     MAX AC     ");}
 else

**OMITTED*

 if (count == 17 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("    MAX HOT     ");}
}
  
//start sending temp button contact closure commands
Serial.println (REFRESH, DEC);
if (count == 0)
 {digitalWrite (22, LOW);
  digitalWrite (23, LOW);
  digitalWrite (24, LOW);
  digitalWrite (25, LOW);
  digitalWrite (26, LOW);
  digitalWrite (27, LOW);
  digitalWrite (28, LOW);
  digitalWrite (29, LOW);
  digitalWrite (30, LOW);
  byte DISP = 0;}
else

**OMITTED**

if(count == 17)
{ digitalWrite (22, HIGH);
  digitalWrite (23, HIGH);
  digitalWrite (24, HIGH);
  digitalWrite (25, HIGH);
  digitalWrite (26, HIGH);
  digitalWrite (27, HIGH);
  digitalWrite (28, HIGH);
  digitalWrite (29, LOW);
  digitalWrite (30, HIGH);
  byte DISP = 0;}
else
{}}
//TEMP CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//LOCATION CONTROL BLOCK START
{int LOC = analogRead (14);

 // PIN 14 IS INPUT FROM KNOB
 // Trigger notes : 38 is s0, 39 is s1, and 40 is s2
 
if (LOC < 10 )                                  //pot detent 1
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 150 && LOC < 250 )              //pot detent 2
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 251 && LOC < 450 )              //pot detent 3
{digitalWrite (38, LOW);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 451 && LOC < 650 )              //pot detent 4
{digitalWrite (38, HIGH);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
{}

if (LOC > 651 && LOC < 850 )              //pot detent 5
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
{}

if (LOC > 851 )              //pot detent 6
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
{}}
//LOCATION CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================

}
}

Big clue:

too few arguments to function 'void DisplayTemperature(long unsigned int)'

void DisplayTemperature(unsigned long time)
void loop()
{
  unsigned long currentTime = millis();

  HandleFan();
  DisplayTemperature();

didnt even notice that, changed it around, and still the same error.

new code.

byte TEMP0 = 0; //analog 8 sensor input
byte TEMP1 = 0; //analog 9 sensor input
int TEMP1F = 0;
int TEMP0F = 0;
int FAN = 0;
int LOC = 0;
byte DISP = 0;

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


byte count;

void setup()
{ 
  lcd.begin (16,2);              //DISPLAYS OPENING LOGO ONCE
  lcd.setCursor (0,0);
  lcd.print ("    HESS ZR1    ");
  lcd.setCursor (0,1);
  lcd.print ("     CAMARO     ");
  delay (7000);
  lcd.clear();
  delay(100);                   //CLEARS 7 SECONDS LATER
 
  //TEMP SENSOR INPUTS
  
  //temp up and down control
  pinMode (32, INPUT);         //external debounced switch pins 52 is temp up
  pinMode (33, INPUT);        // 50 is temp down
  pinMode (22, OUTPUT);       //pinS ODD 37-53 are outputs for multiplexers
  pinMode (23, OUTPUT);
  pinMode (24, OUTPUT);
  pinMode (25, OUTPUT);
  pinMode (26, OUTPUT);
  pinMode (27, OUTPUT);
  pinMode (28, OUTPUT);
  pinMode (29, OUTPUT);
  pinMode (30, OUTPUT);       //END OUTPUT PINS FOR TEMP CHIPS
  //fan speed/location control
  pinMode (15, INPUT);     //reads ADC value from fan speed knob
  pinMode (35, OUTPUT);    //outputs to s0 on fan driver chip
  pinMode (36, OUTPUT);    //outputs to s1 on fan driver chip
  pinMode (37, OUTPUT);    //outputs to s2 on fan driver chip
  pinMode (38, OUTPUT);    //outputs to s0 on location chip
  pinMode (39, OUTPUT);    //outputs to s1 on location chip
  pinMode (40, OUTPUT);    //outputs to s2 on location chip
  pinMode (14, INPUT);     //reads ADC value from location knob
  Serial.begin (9600);     //START SERIAL FOR THE HELL OF IT

}

void loop()
{
  unsigned long currentTime = millis();
  
  HandleFan();
  DisplayTemperature();
  ControlTemperature();
  HandleLocation();
  
  delay(5);
  
}

//=========================================================================================
//=========================================================================================
//=========================================================================================
//FAN SPEED BLOCK START
void HandleFan()

{int FAN = analogRead (15);

 //PIN 34 IS INPUT FROM KNOB
 // Trigger notes : 35 is s0, 36 is s1, and 37 is s2
 
if (FAN < 10 )                                  //pot detent 1
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else
if (FAN > 100 && FAN < 250 )              //pot detent 2
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, LOW);}
else
if (FAN > 251 && FAN < 350 )              //pot detent 3
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
if (FAN > 351 && FAN < 450 )              //pot detent 4
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, LOW);}
else 
if (FAN > 451 && FAN < 625 )              //pot detent 5
{digitalWrite (35, LOW);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
if (FAN > 626 && FAN < 775 )              //pot detent 6
{digitalWrite (35, HIGH);
 digitalWrite (36, LOW);
 digitalWrite (37, HIGH);}
else 
if (FAN > 776 && FAN < 950 )              //pot detent 7
{digitalWrite (35, LOW);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
if (FAN > 951 )              //pot detent 8
{digitalWrite (35, HIGH);
 digitalWrite (36, HIGH);
 digitalWrite (37, HIGH);}
else 
{}
}

//FAN SPEED BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP SENSOR BLOCK START

//long unsigned int displayTemperatureDelay = 0;
void DisplayTemperature(long unsigned int)
{
  if((time-displayTempDelay) > 500) //wait for 500 milliseconds before updating the display (if time rolls over, the subtraction will yield a negative number that rolls over too, giving the proper time elapsed)
  {
        displayTemperatureDelay = time;

        int TEMP0  = analogRead(8);
        int TEMP0F = (TEMP0 * 20) / 10; // converting that reading to voltage, for 3.3v arduino use 3.3
        lcd.setCursor(0,0);
        lcd.print("OUTSIDE   ");
        lcd.print (TEMP0F);
        lcd.print("F ");

        int TEMP1  = analogRead(9);
        int TEMP1F = (TEMP1 * 20) / 20; // converting that reading to voltage, for 3.3v arduino use 3.3
        lcd.setCursor(0,1);
        lcd.print("INSIDE    "); lcd.print (TEMP1F); lcd.print("F ");
    }
}

//TEMP SENSOR INPUT BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//TEMP CONTROL BLOCK START
void ControlTemperature()

{if (digitalRead(33) == HIGH && count < 18) 
  {count++;
  DISP = 0;
  delay (75);}
else if (digitalRead(32) == HIGH && count > 0) 
  {count--;
  DISP = 0;
  delay (75);}


{if (DISP < 8)
  {DISP++;}
  else
  {}
}
  
// TEMP DISPLAY ON SCREEN COUNTER

{if (count == 0 && DISP > 1 && DISP < 7 )
   {lcd.clear();
    lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("     MAX AC     ");}
 else
 if (count == 1 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("    MAX COLD    ");}
 else
 if (count == 2 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C=             H");}
 else
 if (count == 3 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C==            H");}
 else 
 if (count == 4 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C===           H");}
 else
 if (count == 5 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C====          H");}
 else
 if (count == 6 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C=====         H");}
 else
 if (count == 7 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C======        H");}
 else
 if (count == 8 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C=======       H");}
 else
 if (count == 9 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C========      H");}
 else
 if (count == 10 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C=========     H");}
 else
 if (count == 11 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C==========    H");}
 else  
 if (count == 12 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C===========   H");}
 else
 if (count == 13 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C============  H");}
 else
 if (count == 14 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C============= H");}
 else
 if (count == 15 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C==============H");}
 else
 if (count == 16 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("C===============");}
 else
 if (count == 17 && DISP > 1 && DISP < 7 )
   {lcd.setCursor(0,0); lcd.print("      TEMP     "); lcd.setCursor(0,1); lcd.print("    MAX HOT     ");}
}
  
//start sending temp button contact closure commands
Serial.println (REFRESH, DEC);
if (count == 0)
 {digitalWrite (22, LOW);
  digitalWrite (23, LOW);
  digitalWrite (24, LOW);
  digitalWrite (25, LOW);
  digitalWrite (26, LOW);
  digitalWrite (27, LOW);
  digitalWrite (28, LOW);
  digitalWrite (29, LOW);
  digitalWrite (30, LOW);
  byte DISP = 0;}
else

if(count == 17)
{ digitalWrite (22, HIGH);
  digitalWrite (23, HIGH);
  digitalWrite (24, HIGH);
  digitalWrite (25, HIGH);
  digitalWrite (26, HIGH);
  digitalWrite (27, HIGH);
  digitalWrite (28, HIGH);
  digitalWrite (29, LOW);
  digitalWrite (30, HIGH);
  byte DISP = 0;}
else
{}}
//TEMP CONTROL BLOCK CLOSE
//=========================================================================================
//=========================================================================================
//LOCATION CONTROL BLOCK START
{int LOC = analogRead (14);

 // PIN 14 IS INPUT FROM KNOB
 // Trigger notes : 38 is s0, 39 is s1, and 40 is s2
 
if (LOC < 10 )                                  //pot detent 1
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else
if (LOC > 150 && LOC < 250 )              //pot detent 2
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite (40, LOW);}
else 
if (LOC > 251 && LOC < 450 )              //pot detent 3
{digitalWrite (38, LOW);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
if (LOC > 451 && LOC < 650 )              //pot detent 4
{digitalWrite (38, HIGH);
 digitalWrite (39, HIGH);
 digitalWrite (40, LOW);}
else 
if (LOC > 651 && LOC < 850 )              //pot detent 5
{digitalWrite (38, LOW);
 digitalWrite (39, LOW);
 digitalWrite (40, HIGH);}
else 
if (LOC > 851 )              //pot detent 6
{digitalWrite (38, HIGH);
 digitalWrite (39, LOW);
 digitalWrite

May I suggest opening your current code in one instance of notepad, and the version I posted earlier in another?
You should notice some key differences in certain places.

Perhaps another improper assumption you are making, is that when invoking a function, you always have to put () after it, this isn't exactly true, there can be something in between the brackets (ie: DisplayTemperature(time); )
I also see the else {} has sneaked back into your code.

Some study of the example I posted may help your coding abilities.
Hope this helped.

Ok so I took out most of my delays, and replaced them with a counter system for resetting the display. Works pretty good. I think I finally got it. Here is is in Action. Does anyone know what the ASCII code for a square block is, instead of the = sign? Ive tried a bunch and none work.

Video:

Does anyone know what the ASCII code for a square block is

There is no true ASCII code for a square block but some of the LCD modules include a square block as one of the 'extended' ASCII codes, those with the most significant bit = 1. So the answer would depend on the specific CGROM code in your particular LCD module. You could always create your own using one of the eight available CGRAM slots.

Don