標(biāo)題: 單片機(jī)溫控程序源碼 [打印本頁]

作者: 一龍大師    時(shí)間: 2017-10-26 18:02
標(biāo)題: 單片機(jī)溫控程序源碼
本帖最后由 一龍大師 于 2017-10-27 20:11 編輯

當(dāng)按下K1鍵,進(jìn)入手動(dòng)設(shè)定加一,相對地恒溫溫度值的狀態(tài),此時(shí)按下K2鍵可以設(shè)定恒溫溫度值,每按一下K2,溫度設(shè)定值,每按一下K3,設(shè)定值減一,設(shè)定好在正確溫度范圍內(nèi)的溫度值后,再按一下K2,系統(tǒng)開始執(zhí)行,當(dāng)前測得的溫度將于設(shè)定值進(jìn)行比較,以控制加熱或散熱裝置運(yùn)行或停止,期間,按下K4鍵,這設(shè)定值請零,系統(tǒng)恢復(fù)初始狀態(tài),停止所有動(dòng)作。在設(shè)定好恒溫溫度值后, 可以按下K5鍵,系統(tǒng)在執(zhí)行恒溫的加熱或散熱的同時(shí)還進(jìn)入定時(shí)時(shí)間設(shè)定狀態(tài),此時(shí),同樣可以按K1、K3鍵來加減設(shè)定定時(shí)時(shí)間值,設(shè)定好后再按一下K5,定時(shí)系統(tǒng)準(zhǔn)備完成,等待環(huán)境溫度降到或升到設(shè)定的恒定溫度值,環(huán)境溫度到達(dá)設(shè)定溫度值時(shí),定時(shí)開始,定時(shí)數(shù)值開始進(jìn)入倒計(jì)時(shí),時(shí)間值逐步減小,當(dāng)減小到零時(shí),系統(tǒng)恢復(fù)初始狀態(tài),一切運(yùn)行停止,且恒溫溫度設(shè)定值和定時(shí)時(shí)間值都自動(dòng)清零。期間,可以按下K6鍵,將定時(shí)時(shí)間值清零以重新設(shè)定。
void keyscan()
{
    if(!k2)
        {
                delay(10);
                if(!k2)        
                {
                        set_en =!set_en;
                }
        }
    if(set_en==1)
        {
         if(!k1);
         {
           delay(10);
           if(!k1)
           {  
             num2++;
                 while(!k1);
                }
         }
         if(!k3)
         {
           delay(10);
           if(!k3)
           {
             num2--;
                 while(!k3);
            }
          }
        
        }
        if(!k4)
        {num2=0;}
        if(!k5)
        {
                delay(10);
                if(!k5)        
                {
                        set_en1=set_en1+1;
                        if(set_en1==3)
                         set_en1=0;
                }
        }

    if((set_en1==1)&&(set_en==0))
        {
         if(!k1);
         {
           delay(10);
           if(!k1)
           {  
             num3++;
                 while(!k1);
                }
         }
         if(!k3)
         {
           delay(10);
           if(!k3)
           {
             num3--;
                 while(!k2);
            }
          }
        
        }
        if((set_en1==2)&&(num1==num2)&&(num2!=0))
        {
            TR0=1;
        }
    if(!k6)
        {num3=0;}
}
這是什么意思
if(!k2)
        {
                delay(10);
                if(!k2)        
                {
                        set_en =!set_en;
                }
        }


     if(!k5)
        {
                delay(10);
                if(!k5)        
                {
                        set_en1=set_en1+1;
                        if(set_en1==3)
                         set_en1=0;
                }
        }






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1