📄 mian614.c
字号:
DisplayOneChar(14,1,str2[15]);//显示小数点
write_command(0x0e,1); //设置1602显示光标
write_command(0xcc,1); //把光标指最高位
while(a!=15)
{ a=kbscan1();
if(a==13)
{e++;
if(e==3)
{e=0;}
switch (e)
{case 0: write_command(0xcc,1); break;
case 1: write_command(0xcd,1); break;
case 2: write_command(0xcf,1); break;
}
}
else if(a==12)
{e--;
if(e==255)
{e=2;}
switch (e)
{case 0: write_command(0xcc,1); break;
case 1: write_command(0xcd,1); break;
case 2: write_command(0xcf,1); break;
}
}
else if(a<10)
{
switch (e)
{case 0: wend=a; DisplayOneChar(12,1,str2[a]);write_command(0xcd,1); break;
case 1: wend1=a; DisplayOneChar(13,1,str2[a]);write_command(0xcf,1); break;
case 2: wend2=a; DisplayOneChar(15,1,str2[a]);write_command(0xcc,1); break;
}
e++;
if(e==3)
{e=0;
}
}
}
write_command(0x0c,1); //设置1602不显示光标
wend3=wend*100+wend1*10+wend2; //WEND3存放设定温度的十位,wend2存放小数点后一位
}
xswd()
{ DisplayOneChar(6,1,str2[temh_d]);
DisplayOneChar(7,1,str2[teml_d]);
DisplayOneChar(8,1,str2[15]);
DisplayOneChar(9,1,str2[temm_d]);
}
/*******************************设定时间段,温度程序***************************************/
/*******************************yuyin语音***************************************/
fangyin()
{ isd_data1=0xfc;
isd_data2=0x00;
delay(10);
isd_data1=0xf8;
delay(10);
isd_data1=0xfc;
}
/*******************************语音***********************************************/
main()
{ uchar d;
uchar z1=0;
wend3=0xfffe;
IE=0;
initialization_Lcd(); // 初始化1602
start_DS12887(); //初始化12887
//显示模式图标**********************************************
DisplayOneChar(0,1,str2[10]);//MMMMMMMMM
DisplayOneChar(1,1,str2[12]);
DisplayOneChar(2,1,str2[m]);
////显示模式图标**********************************************
DisplayOneChar(4,1,str2[11]);//TTTTTTTTT
DisplayOneChar(5,1,str2[14]);
lz=1;
dc=1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TMOD=0x11;
ET1=1;
TR1=1;
EA=1;
while(1)
{
z1++;
if(z1>50)
{z1=0;
if(lz==0)
{lz=1;
}
else lz=0;
}
get_time_DS12887();//读12887数据
display_time1();//正常工作时的时钟显示。
wendu();
xswd(); //显示温度值
if(m==0)
{EA=1;
/*******************************调节***********************************************/
h=wend3-wend4;
if((h<25)&&(wend3>wend4))
{ //开定时器
TR1=1;
}
if(wend3<wend4)
{ TR1=0;
dc=0;
fangyin();
}
if((h>25)&&(wend3>wend4))
{
TR1=0;
dc=1;
}
}
if(m==1)
{ EA=0;
if(wend3<wend4)
{ TR1=0;
dc=0;
fangyin();
}
}
d=kbscan1(); //扫描键盘
/*******************************校时程序***********************************************/
if(d==10) //10是校时键值
{Adr_B=0x86;//设置时间停止,读出的值不再变,但12887内部的时钟还在走着。
Adr_A=0x00;//设置12887内部时钟不再计时.
adjust_time();
}
/*******************************校时程序***********************************************/
/*******************************设置模式程序***********************************************/
else if(d==11)//11是模式切换键值
{
if(m==1)//改变标志位M,在两种模式之间切换
m=0;
else m=1;
DisplayOneChar(0,1,str2[10]);//MMMMMMMMM
DisplayOneChar(1,1,str2[12]);
DisplayOneChar(2,1,str2[m]);
}
/*******************************设定,温度程序***********************************************/
else if(d==14)
{shezwd();
}
}
}
/**************定时器1**************/
void tt1(void) interrupt 3 using 2
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
h1++;
if(h1>100)
{ h1=0;
if(dc==0) //关电磁阀
{dc=1;
}
else dc=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -