You are on page 1of 6

#include <16F877A.

h>
#device ADC=8 //8-bit conversion
#define Newline 0xc0
#define clrDisp 0x01
#define TwoLine10dots 0x38
#define ScrOnCurOffBlinkOn 0x0f
#define IncCurDntMovDis 0x06
#define CurHome 0x02
#use delay(clock=4000000)
#include <math.h>
void sendCmd(unsigned char Cmd)
{
output_d(Cmd);
output_bit(pin_c0,0); //RS
output_bit(pin_c1,0); //RW
delay_ms(1);
output_bit(pin_c2,1); //E
delay_ms(1);
output_bit(pin_c2,0); //E
return;
}
void sendData (unsigned char Ch)
{
output_d(ch);
output_bit(pin_c0,1);
output_bit(pin_c1,0);
delay_ms(1);
output_bit(pin_c2,1);
delay_ms(1);
output_bit(pin_c2,0);
return;
}
void initializeLCD(void)
{
delay_ms(40);
sendCmd(TwoLine10dots);
delay_ms(1);
sendCmd(ScrOnCurOffBlinkOn);
delay_ms(clrDisp);
delay_ms(1);
sendCmd(CurHome);
}
int x,y,z,tc,tf,tk;
void main()
{
//set_tris_b(0x00);
//Input variable
setup_adc(ADC_CLOCK_INTERNAL); // ADC clock
setup_adc_ports(ALL_ANALOG); // Input combination
set_adc_channel(0); // Select RA0
for(;;)
fu:
{
delay_ms(500);
x = read_adc(); // Get input byte
y = x * 0.1953125; // Every 5 bits represet 1 degree, approximatel
y
z = ceil(y); // Take the ceiling of the number to get the re
al temperature
initializeLCD();
switch(z)
{
case(0):
sendData("Temp = ");
sendCmd(Newline);
sendData("0 C, 32 F, 273 K ");
break;
case(1):
sendData("Temp = ");
sendCmd(Newline);
sendData("1 C, 33.8 F, 274 K ");
break;
case(2):
sendData("Temp = ");
sendCmd(Newline);
sendData("2 C, 35.6 F, 275 K ");
break;
case(3):
sendData("Temp = ");
sendCmd(Newline);
sendData("3 C, 37.4 F, 276 K ");
break;
case(4):
sendData("Temp = ");
sendCmd(Newline);
sendData("4 C, 39.2 F, 277 K ");
break;
case(5):
sendData("Temp = ");
sendCmd(Newline);
sendData("5 C, 41 F, 278 K ");
break;
case(6):
sendData("Temp = ");
sendCmd(Newline);
sendData("6 C, 42.8 F, 279 K ");
break;
case(7):
sendData("Temp = ");
sendCmd(Newline);
sendData("7 C, 44.6 F, 280 K ");
break;
case(8):
sendData("Temp = ");
sendCmd(Newline);
sendData("8 C, 46.4 F, 281 K ");
break;
case(9):
sendData("Temp = ");
sendCmd(Newline);
sendData("9 C, 48.2 F, 282 K ");
break;
case(10):
sendData("Temp = ");
sendCmd(Newline);
sendData("10 C, 50 F, 283 K ");
break;
case(11):
sendData("Temp = ");
sendCmd(Newline);
sendData("11 C, 51.8 F, 284 K ");
break;
case(12):
sendData("Temp = ");
sendCmd(Newline);
sendData("12 C, 53.6 F, 285 K ");
break;
case(13):
sendData("Temp = ");
sendCmd(Newline);
sendData("13 C, 55.4 F, 286 K ");
break;
case(14):
sendData("Temp = ");
sendCmd(Newline);
sendData("14 C, 57.2 F, 287 K ");
break;
case(15):
sendData("Temp = ");
sendCmd(Newline);
sendData("15 C, 59 F, 288 K ");
break;
case(16):
sendData("Temp = ");
sendCmd(Newline);
sendData("16 C, 60.8 F, 289 K ");
break;
case(17):
sendData("Temp = ");
sendCmd(Newline);
sendData("17 C, 62.6 F, 290 K ");
break;
case(18):
sendData("Temp = ");
sendCmd(Newline);
sendData("18 C, 64.4 F, 291 K ");
break;
case(19):
sendData("Temp = ");
sendCmd(Newline);
sendData("19 C, 66.2 F, 292 K ");
break;
case(20):
sendData("Temp = ");
sendCmd(Newline);
sendData("20 C, 68 F, 293 K ");
break;
case(21):
sendData("Temp = ");
sendCmd(Newline);
sendData("21 C, 69.8 F, 294 K ");
break;
case(22):
sendData("Temp = ");
sendCmd(Newline);
sendData("22 C, 71.6 F, 295 K ");
break;
case(23):
sendData("Temp = ");
sendCmd(Newline);
sendData("23 C, 73.4 F, 296 K ");
break;
case(24):
sendData("Temp = ");
sendCmd(Newline);
sendData("24 C, 75.2 F, 297 K ");
break;
case(25):
sendData("Temp = ");
sendCmd(Newline);
sendData("25 C, 77 F, 298 K ");
break;
case(26):
sendData("Temp = ");
sendCmd(Newline);
sendData("26 C, 78.8 F, 299 K ");
break;
case(27):
sendData("Temp = ");
sendCmd(Newline);
sendData("27 C, 80.6 F, 300 K ");
break;
case(28):
sendData("Temp = ");
sendCmd(Newline);
sendData("28 C, 82.4 F, 301 K ");
break;
case(29):
sendData("Temp = ");
sendCmd(Newline);
sendData("29 C, 84.2 F, 302 K ");
break;
case(30):
sendData("Temp = ");
sendCmd(Newline);
sendData("30 C, 86 F, 303 K ");
break;
case(31):
sendData("Temp = ");
sendCmd(Newline);
sendData("31 C, 87.8 F, 304 K ");
break;
case(32):
sendData("Temp = ");
sendCmd(Newline);
sendData("32 C, 89.6 F, 305 K ");
break;
case(33):
sendData("Temp = ");
sendCmd(Newline);
sendData("33 C, 91.4 F, 306 K ");
break;
case(34):
sendData("Temp = ");
sendCmd(Newline);
sendData("34 C, 93.2 F, 307 K ");
break;
case(35):
sendData("Temp = ");
sendCmd(Newline);
sendData("35 C, 95 F, 308 K ");
break;
case(36):
sendData("Temp = ");
sendCmd(Newline);
sendData("36 C, 96.8 F, 309 K ");
break;
case(37):
sendData("Temp = ");
sendCmd(Newline);
sendData("37 C, 98.6 F, 310 K ");
break;
case(38):
sendData("Temp = ");
sendCmd(Newline);
sendData("38 C, 100.4 F, 311 K ");
break;
case(39):
case(40):
sendData("Temp = ");
sendCmd(Newline);
sendData("39 C, 102.2 F, 312 K ");
break;
case(41):
case(42):
sendData("Temp = ");
sendCmd(Newline);
sendData("41 C, 105.8 F, 314 K ");
break;
case(43):
case(44):
sendData("Temp = ");
sendCmd(Newline);
sendData("43 C, 109.4 F, 316 K ");
break;
case(45):
case(46):
sendData("Temp = ");
sendCmd(Newline);
sendData("45 C, 113 F, 318 K ");
break;
case(47):
case(48):
sendData("Temp = ");
sendCmd(Newline);
sendData("47 C, 116.6 F, 320 K ");
break;
case(49):
sendData("Temp = ");
sendCmd(Newline);
sendData("49 C, 120.2 F, 322 K ");
break;
case(50):
sendData("Temp = ");
sendCmd(Newline);
sendData("50 C, 122 F, 323 K ");
break;
default:
sendData("Can't measured Temp.");
sendCmd(Newline);
sendData("Out of range ");
}
}
}

You might also like