⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shui.txt

📁 水温水位控制系统的源代码,用t6963lcd显示 很好的,经过测试
💻 TXT
📖 第 1 页 / 共 2 页
字号:
        j=i*O_Y+O_X+0x0800;
    for(count1=0;count1<32;count1=count1+2)
      {
       dat1=j%256; dat2=j/256; com=0x24;PR1();
       dat2=CCTAB[code_1][count1]; com=0xc0;
       if(x1==0)
        {dat2=~dat2;}
          PR11();dat2=CCTAB[code_1][count1+1];
          if(x1==0)
          {dat2=~dat2;}PR11();j=j+i;
       }
 }

void CCW2_Num(uchar x1)
{ unsigned char i,count1;
     unsigned int j;
        i=para1;PR1();j=i*O_Y+O_X+0x0800;
  for(count1=0;count1<16;count1++)
     {dat1=j%256;dat2=j/256;com=0x24;PR1();
      dat2=CCNum[code_1][count1];com=0xc4;
      if(x1==0){dat2=~dat2;}
      PR11();j=j+i;
     }
}

int In_yj(void)
{  
   P0=0xf0;
   P2=0x00;
   chushi_1();
   CLEAR();
   code_1=0;O_X=0;O_Y=0;CCW2_PR(1); code_1=1;O_X=2;O_Y=0;CCW2_PR(1);
   code_1=4;O_X=4;O_Y=0;CCW2_PR(1); code_1=5;O_X=6;O_Y=0;CCW2_PR(1);
   code_1=10;O_X=8;O_Y=0;CCW2_Num(1);
   code_1=0;O_X=9;O_Y=0;CCW2_Num(1); code_1=0;O_X=10;O_Y=0;CCW2_Num(1);
   code_1=0;O_X=11;O_Y=0;CCW2_Num(1);
   code_1=8;O_X=12;O_Y=0;CCW2_PR(1);code_1=15;O_X=13;O_Y=0;CCW2_Num(1);      //显示℃

   code_1=2;O_X=0;O_Y=16;CCW2_PR(w_s);code_1=3;O_X=2;O_Y=16;CCW2_PR(w_s);
   code_1=4;O_X=4;O_Y=16;CCW2_PR(w_s);code_1=5;O_X=6;O_Y=16;CCW2_PR(w_s);
   code_1=10;O_X=8;O_Y=16;CCW2_Num(w_s);
   code_1=0;O_X=9;O_Y=16;CCW2_Num(w_s);code_1=0;O_X=10;O_Y=16;CCW2_Num(w_s);
   code_1=0;O_X=11;O_Y=16;CCW2_Num(w_s);
   code_1=8;O_X=12;O_Y=16;CCW2_PR(w_s);code_1=15;O_X=13;O_Y=16;CCW2_Num(w_s);//显示℃

   code_1=0;O_X=0;O_Y=32;CCW2_PR(1);code_1=1;O_X=2;O_Y=32;CCW2_PR(1);
   code_1=6;O_X=4;O_Y=32;CCW2_PR(1);code_1=7;O_X=6;O_Y=32;CCW2_PR(1);
   code_1=10;O_X=8;O_Y=32;CCW2_Num(1);
   code_1=13;O_X=9;O_Y=32;CCW2_Num(1);
   code_1=11;O_X=13;O_Y=32;CCW2_PR(1);

   code_1=2;O_X=0;O_Y=48;CCW2_PR(s_s);code_1=3;O_X=2;O_Y=48;CCW2_PR(s_s);
   code_1=6;O_X=4;O_Y=48;CCW2_PR(s_s);code_1=7;O_X=6;O_Y=48;CCW2_PR(s_s);
   code_1=10;O_X=8;O_Y=48;CCW2_Num(s_s);
   code_1=13;O_X=9;O_Y=48;CCW2_Num(s_s);

}
 int yej(void)
{  
   code_1=tb;O_X=9;O_Y=0;CCW2_Num(1);code_1=ts;O_X=10;O_Y=0;CCW2_Num(1);
   code_1=tg;O_X=11;O_Y=0;CCW2_Num(1);

   code_1=s_tb;O_X=9;O_Y=16;CCW2_Num(w_s);code_1=s_ts;O_X=10;O_Y=16;CCW2_Num(w_s);
   code_1=s_tg;O_X=11;O_Y=16;CCW2_Num(w_s);

   code_1=shs;O_X=9;O_Y=32;CCW2_Num(1);code_1=shz;O_X=13;O_Y=32;CCW2_PR(1);

   code_1=s_sh;O_X=9;O_Y=48;CCW2_Num(s_s);

 }
  
  /************键盘扫描函数*****************/
int scan(void)
{  int i,j,r=16,key=16;
 for(i=0;i<=3;i++)
   {P1|=0xff;
     P1&=~(0x01<<i);              //i行输出为0
      for(j=4;j<8;j++)
       {if((P1&(0x01<<j))==0)     //j行为0
         {delay(30);
             if((P1&(0x01<<j))==0)
                {key=P1&0xff;
                   switch(key)
                      {
                       case 0xe7:  r=0;break;
                       case 0xee:  r=1;break;
                       case 0xde:  r=2;break;
                       case 0xbe:  r=3;break;
                       case 0xed:  r=4;break;
                       case 0xdd:  r=5;break;
                       case 0xbd:  r=6;break;
                       case 0xeb:  r=7;break;
                       case 0xdb:  r=8;break;
                       case 0xbb:  r=9;break;  
                       case 0xd7:  r=10;break;
                       case 0xb7:  r=11;break;
                       case 0x7e:  r=12;break;
                       case 0x7d:  r=13;break;
                       case 0x7b:  r=14;break;
                       case 0x77:  r=15;break;
                       default :   r=16;break;
                      }
                }
          }
      }
   }
   return r;
}
/*************水位控制************/
void std3(void)      
{ uchar ii,i=16;
  w_s=1;
  s_s=0;
  yej();
while(1)
{ 
 if(i>0&i<5)
 {ii=i;delay(3000);i=scan();
   if(ii==i)
   {s_sh=i+12;
   if((shz==9)||(shz==10)==1)shs=s_sh;
   s_s=0;yej();break;
   } 
 }
 else if(i==10)break;
        else i=scan();
}

	w_s=1;s_s=1;
}

/********************水温控制****************************/
void std2(void)                             
{uchar ii,ws=0,i=16;
  w_s=0;
  s_s=1;
s_tb=0;s_ts=0;s_tg=0;
  yej();
while(1)
{ 
 if(i<10)
  {ii=i;delay(6000);delay(6000);i=scan();
   if((ws==2)&(ii==i)){s_tb=s_ts;s_ts=s_tg;s_tg=i;yej();ws++;break;}
   if((ws==1)&(ii==i)){s_ts=s_tg;s_tg=i;yej();ws++;i=scan();continue;}
   if((ws==0)&(ii==i)){s_tg=i;yej();ws++;i=scan();continue;} 
  }
  if(i==10)break;
  if(i==11){ws=0;s_tb=0;s_ts=0;s_tg=0;yej();}
  i=scan();
}
if(s_tb>1){s_tb=1;s_ts=0;s_tg=0;}
  else if(((s_tb==1)&&(s_ts>0))||((s_tb==1)&&(s_tg>0))==1)
                   {s_tb=1;s_ts=0;s_tg=0;}
      else ;
w_s=1;s_s=1;
}

  /************键值处理函数*****************/
void std1()
{ 
switch(kk)
{
 case 0:
 case 1:
 case 2:
 case 3:
 case 4:
 case 5:
 case 6:
 case 7:
 case 8:
 case 9:
 case 10:  break;
 case 11:  s_tb=0;s_ts=0;s_tg=0;shs=13;shz=11;s_sh=13;break; //清零
 case 12:  std2();break;    // 转温度设置
 case 13:  std3();break;    // 转水位设置
 case 14:   shz=9; csh=1;yej();break;    //加水
 case 15:   shz=10;jsh=1;yej();break;    //进水
 default : kk=16; break;
}
}



/************************探测水位点*********************/ 
void control(void)
{
  switch(shz)                    //探测水位点
     { case 9:  jsh=0;
	          if(s_a==0)shs=13;
              if(s_b==0)shs=14;
              if(s_c==0)shs=15;
              if(s_d==0)shs=16; break;
       case 10: csh=0;
	          if(s_d==0)shs=16;
	          if(s_c==0)shs=15;
	          if(s_b==0)shs=14;
	          if(s_a==0)shs=13;
	                           break;
       case 11: jsh=1;csh=1;
	          if(s_a==0)shs=13;
              if(s_b==0)shs=14;
              if(s_c==0)shs=15;
              if(s_d==0)shs=16;break;
       default: break;
     }

}
///********************主函数************************/
void main()
{static unsigned int ss=0;
 kk=16;
 In_yj();
 L1=1;L2=0;
 L3=1;L4=1;
 s_a=1;s_b=1;s_c=1;s_d=1;
 jsh=1;csh=1;
 swen=1;
 while(1)
  {
if((ss%100)==0)
  {t=read_temperature();
   if(t<=(s_tb*100+s_ts*10+s_tg))     //温度判断到没
      swen=0;
      else swen=1;
  tb=t/100;
  ts=t/10%10;
  tg=t%10;
  yej();
  }
if(ss==600) {ss=0;L2=~L2;}
  ss++;
   kk=scan();
   if(kk!=16) 
   {delay(100);kk=scan();
    if(kk!=16)std1();
	 else ;
	}
  control(); 
 if(jsh==0){if(s_sh<=shs){jsh=1;shz=11;}}  //水位判断到点没
 if(csh==0){if(s_sh>=shs){csh=1;shz=11;}}
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -