/***********Main主程序**************/
void main()
{
init();
Init_time();
Init_DS18B20();
while(1)
{
if(s1==0||s1num>=1)
{keyscan(); TR0 = 0; D1 =1; D2 = 1;}
else
{
ReadTemp();
write_temp_value(0,temp_value);
comp();
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/***********LCD初始化程序**************/
void init()
{
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
write_com(0x80+9);
write_data('H');
write_data(':');
write_data('+');
write_data('2');
write_data('0');
write_data(0xdf);
write_data('C');
write_com(0x80+9+0x40);
write_data('L');
write_data(':');
write_data('+');
write_data('1');
write_data('0');
write_data(0xdf);
write_data('C');
h=0x14;
l=0+0x0a;
D1=1;
D2=1;
figh=0;
figl=1;
}
/***********LCD寫指令**************/
voidwrite_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/***********LCD寫數據**************/
voidwrite_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/***********LCD顯示讀取溫度值**************/
voidwrite_temp_value(uchar add,char date)
{
uchar bai,shi,ge;
bai=date/100;
shi=date%100/10;
ge=date%10;
if((bai|shi)==0)
shi=0x70;
if(bai==0)
bai=0x70;
write_com(0x80+add);
if(fig==0&&shi!=0x70)
{
write_data('-');
write_data(0x30+shi);
}
if(fig==0&&shi==0x70)
{
write_data(0x30+0x70);
write_data('-');
}
if(fig==1)write_data(0x30+bai);
if(fig==1)write_data(0x30+shi);
write_data(0x30+ge);
write_data(0xdf);
write_data('C');