Professional Documents
Culture Documents
#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);
}
{
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;
}
}
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;
}
}
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("-");
}