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

📄 mian614.c

📁 温度传感器
💻 C
📖 第 1 页 / 共 2 页
字号:
          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 + -