You are on page 1of 14

APPENDIX E

#include<16f877A.h>
#use delay(clock=20000000)
#fuses hs,noprotect,nolvp,nowdt
#define use_portb_lcd TRUE
#include <lcd.c>
#include <string.h
char MeasureADC (void);
void Delay_ms(int x);
void DisplayOne(unsigned int16 x);
void DisplayTen(unsigned int16 x);
void DisplayHundred(unsigned int16 x);
void DisplayThousand(unsigned int16 x);
void NegativeSign (unsigned char x);
unsigned int16 temp;
unsigned int16 Temp_One;
unsigned int16 Temp_Ten;
unsigned int16 Temp_Hundred;
unsigned int16 Temp_Thousand;
unsigned int16 TempInC;

void main ()
{
int i=0;
//float measureADC;
//switch (i)

//{
// case 0:
/* Initialize port & LCD */
SET_TRIS_b(0x00);
OUTPUT_b(0x00);
setup_port_a(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
SET_ADC_CHANNEL(0);
lcd_init();
do{
// case 1:
/* Read ADC value & convert the measured ADC to Temperature*/
//
delay_ms(10);
temp =read_adc(); //y = mx ; y = temp; m = 2; x = read_adc();
delay_ms(10);
//lcd_putc("Temperature/n");
delay_ms(10);
//TempInC = temp*488;
//TempInC = TempInC/1000;
/*******************************
Temperature = xxx.x
********************************/
//Temp_One= temp%10;
//DisplayOne(Temp_One);
DisplayOne(temp);

delay_ms(10);
/**********************/
/***Display dot*******/
lcd_gotoxy(5,1);
lcd_putc(".");
/*********************/
//Temp_Ten= temp%100;
//Temp_Ten = Temp_Ten/10;
//DisplayTen(Temp_Ten);
DisplayTen(temp);
/**********************/
//Temp_Hundred = temp%1000;
//Temp_Hundred = Temp_Hundred/100;
//DisplayHundred(Temp_Hundred);
DisplayHundred(temp);
delay_ms(10);
/***********************/
lcd_gotoxy(7,1);
lcd_putc("C");
/****************************/
//Temp_Thousand = temp/1000;
//DisplayThousand(Temp_Thousand);
if(temp > 10){
DisplayThousand(temp);
delay_ms(10);
}

//if(temp <=10 && temp >=4){


//NegativeSign(2); /* Position "-" whether 2 or 3 */
//}
//if(temp < 4){
//NegativeSign(3);
//}
}while(1);
}
int MeasureADC (void)
{
int temp =0;
/* Read ADC value */
temp = read_adc();
return temp;
}
void Delay_ms(int x)
{
int y;
y =(x*1000)/15;
while(--y != 0)
continue;
}
void DisplayOne(unsigned int16 x)
{
Temp_One= x%10;
switch (Temp_One)

{
case 0:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("0");
break;
case 1:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("1");
break;
case 2:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("2");
break;
case 3:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("3");
break;
case 4:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("4");
break;

case 5:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("5");
break;
case 6:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("6");
break;
case 7:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("7");
break;
case 8:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("8");
break;
case 9:
delay_ms(10);
lcd_gotoxy(6,1);
lcd_putc("9");
break;
default:

break;
}
}
void DisplayTen(unsigned int16 x)
{
Temp_Ten= x%100;
Temp_Ten =Temp_Ten/10;
switch (Temp_Ten)
{

case 0:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("0");
break;
case 1:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("1");
break;
case 2:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("2");
break;
case 3:

delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("3");
break;
case 4:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("4");
break;
case 5:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("5");
break;
case 6:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("6");
break;
case 7:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("7");
break;
case 8:
delay_ms(10);

lcd_gotoxy(4,1);
lcd_putc("8");
break;
case 9:
delay_ms(10);
lcd_gotoxy(4,1);
lcd_putc("9");
break;
default:
break;
}
}

void DisplayHundred(unsigned int16 x)


{
Temp_Hundred = x%1000;
Temp_Hundred = Temp_Hundred/100;
switch (Temp_Hundred)
{
case 0:
delay_ms(10);
lcd_gotoxy(3,1);
if(x>99)
{
lcd_putc("0");
}else {

lcd_putc(" ");
}
break;
case 1:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("1");
break;
case 2:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("2");
break;
case 3:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("3");
break;
case 4:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("4");
break;
case 5:
delay_ms(10);
lcd_gotoxy(3,1);

lcd_putc("5");
break;
case 6:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("6");
break;
case 7:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("7");
break;
case 8:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("8");
break;
case 9:
delay_ms(10);
lcd_gotoxy(3,1);
lcd_putc("9");
break;
default:
break;
}
}

void DisplayThousand(unsigned int16 x)


{
Temp_Thousand = x/1000;
switch (Temp_Thousand)
{
case 0:
delay_ms(10);
lcd_gotoxy(2,1);
if (x >999)
{
lcd_putc("0");
}else
{
lcd_putc(" ");
}
break;

case 1:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("1");
break;
case 2:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("2");

break;
case 3:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("3");
break;
case 4:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("4");
break;
case 5:
delay_ms(10);
lcd_gotoxy(5,1);
lcd_putc("5");
break;
case 6:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("6");
break;
case 7:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("7");
break;

case 8:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("8");
break;
case 9:
delay_ms(10);
lcd_gotoxy(2,1);
lcd_putc("9");
break;
default:
break;
}
}
void NegativeSign (unsigned char x)
{
delay_ms(10);
lcd_gotoxy(x,1);
lcd_putc("-");
}

You might also like