当前位置:文档之家› 温度(温度传感器ds18b20)控制系统(水温) 带ds1302时间显示 lcd1602显示

温度(温度传感器ds18b20)控制系统(水温) 带ds1302时间显示 lcd1602显示

delay(12);
if(k4==0)
{
(times[4])--;
if((times[4])==0x00)
{(times[4])=0x12;}
}
write_1302(0x88,times[4]);
}
break;
case 4:
{
if(k3==0);
delay(12);
if(k3==0)
{
(times[6])++;
}
/************************************************************/
void rdtemp(void)
{
txreset();
rxwait();
delay_b(1);//延时
wrbyte(0xcc);
wrbyte(0xbe);
tpl=rdbyte();
}
write_1302(0x82,times[1]);
}
break;
case 1:
{
if(k3==0);
delay(12);
if(k3==0)
{
(times[2])++;
if((times[2])==0x24)
{(times[2])=0x00;}
write_1302(0x84,times[2]);
}
void delay(uint z)
{
uint i,j;
for(i=0;i<=z;i++)
for(j=0;j<=500;j++);
}
void keycan()
{
if(k2==0);
delay(12);
if(k2==0)
{
l++;
if(l==7)
{l=0;}
}
switch(l)
{
case 0:
{
if(k3==0);
}
}
/*********************************************************
}
if(k4==0);
delay(12);
if(k4==0)
{
(times[5])--;
if((times[5])==0)
{(times[5])=7;}
}
write_1302(0x8a,times[5]);
}
break;
case 6:
{
if(k3==0);
delay(12);
if(k3==0)
{
temp++;
void wenduxianshi();
void buzzer();
void jidianqi();
void delay(uint z);
uchar l=0,temp=20;
sbit k2= P3^0;
sbit k3= P3^1;
sbit k4= P3^2;
sbit t= P2^0;
sbit b= P2^2;
{
uint i;
while(DQ);
while(!DQ);
i=4;
while(i>0) i--;
}
/************************************************************/
bit rdbit(void)
{
uint i;
bit b;
DQ=0;
i++;
DQ=1;
LCD_dat((x1/10)|0x30);
LCD_dat((x1%10)|0x30);
LCD_write_char('.');
LCD_dat((x2/10)|0x30);
LCD_dat((x2%10)|0x30);
LCD_write_char(0xdf);
LCD_write_char('C');
}
delay(12);
if(k3==0)
{
(times[1])++;
if((times[1])==0x60)
{(times[1])=0x00;}
}
if(k4==0);
delay(12);
if(k4==0)
{
(times[1])--;
if((times[1])==0x00)
{(times[1])=0x60; }
}
write_1302(0x86,times[3]);
}
break;
case 3:
{
if(k3==0);
delay(12);
if(k3==0)
{
(times[4])++;
if((times[4])==0x12)
{(times[4])=0x00;}
write_1302(0x8e,0x80);
}
if(k4==0);
*Function:向18B20写入一个字节
*************************************************************/
void wrbyte(uchar b)
{
uint i;
uchar j, btm;
for(j=1; j<=8;j++)
{
btm=b&0x01;
b=b>>1;
if(btm==1)
{
DQ=0;
i++;i++; NhomakorabeaDQ=1;
i=8;
while(i>0)
i--;
}
else
{
DQ=0;
i=8;
while(i>0)
i--;
DQ=1;
i++; i++;
}
}}
/************************************************************
uchar rdbyte(void)
{
uchar i,j,b;
for(i=1;i<=8;i++)
{
j=rdbit();
b=(j<<7) | (b>>1);
}
return (b);
}
/************************************************************
{
(times[3])++;
if((times[3])==0x31)
{(times[3])=0x00;}
write_1302(0x86,times[3]);
}
if(k4==0);
delay(12);
if(k4==0)
{
(times[3])--;
if((times[3])==0x00)
{(times[3])=0x31;}
//1302振荡得到的准确时间:秒分时日月星期年
//uchar code inittime[] ={0x00,0x10,0x21,0x15,0x03,0x01,0x11};
//uchar alarm_clock[]={0x14,0x09}; //初始报警时间
/*********************************************************
if(k4==0);
delay(12);
if(k4==0)
{
(times[2])--;
if((times[2])==0x00)
{(times[2])=0x24;}
}
write_1302(0x84,times[2]);
}
break;
case 2:
{
if(k3==0);
delay(12);
if(k3==0)
void write_1302_byte(uchar byte)
{
uchar i;
for(i=0;i<8;i++)
{
if(byte&0x01)//从低字节开始传送
IO_1302=1;//写入1
else
IO_1302=0;//写入0
SCLK_1302=0;
SCLK_1302=1;//写时为上升沿写入
byte=byte>>1;
}
if(k4==0);
delay(12);
if(k4==0)
{
temp--;
}
}
break;
default: break;
}
}
void wenduxianshi()
{
LCD_command(0xcb);
LCD_write_string("k");
LCD_dat(l%10+0x30);
LCD_write_string(" ");
suanwendu()
{
delay_2(1);
convert();
delay_2(1000);
rdtemp();
x1=(tpl&0xf0)/16+(tph&0x07)*16;
x2=(tpl&0x0f)*(100/16);
}
void xianshi()
{
suanwendu();
LCD_command(0x89);
void txreset(void)
相关主题