久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3940|回復: 13
打印 上一主題 下一主題
收起左側

那位高手幫我設計一個單片機多任務定時控制程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:280226 發表于 2018-1-28 22:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學單片機不久,對于多任務系統不太了解,特求助大神。想用一只89S52制作一個定時程序控制三只繼電器,具體做法是:由三個光電開關感應模塊分接P1三個端口,分別控制P2三個端口繼電器,當某一模塊因物體阻擋,光電模塊輸出低電平時接通所控繼電器工作20分種,20分種到繼電器自動斷開。當物體離開,光電模恢復輸出高電平時,繼電器也馬上斷開停止工作。要求三組可同時工作也可獨立工作,互不干擾。希望高手幫我設計一套C51程序,謝謝老師!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2018-1-29 21:16 | 只看該作者
雖然你的要求比較簡單,像布置任務的樣子一般不會有人給你寫程序,這樣的事情需要自己做,遇到具體困難再求助。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:280226 發表于 2018-1-30 15:46 | 只看該作者
wulin 發表于 2018-1-29 21:16
雖然你的要求比較簡單,像布置任務的樣子一般不會有人給你寫程序,這樣的事情需要自己做,遇到具體困難再求 ...

誠心求教,不妥之處請鑒諒,謝謝您的批評!下回發貼會注意。
回復

使用道具 舉報

地板
ID:269508 發表于 2018-2-20 21:16 | 只看該作者
兄弟,做的怎樣了?我最近也是在做類似的,可以交流下嗎?
回復

使用道具 舉報

5#
ID:284323 發表于 2018-2-21 15:31 | 只看該作者
非常容易,自己動手寫寫代碼想一想就知道了  設3個變量 每毫秒加1  時間到了重新計數或停止就行了

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:111634 發表于 2018-2-21 16:23 | 只看該作者
你可以用一個定時器中斷計時,計滿20分種,建立標志1;計滿40分種,建立標志2。在主程序中等待,標志1=1,接通繼電器工作,同時標志1=0;標志2=1,斷開繼電器,同時標志2=0。用外中斷(物體離開,光電模恢復輸出高電平)作高優先級中斷,斷開繼電器。
回復

使用道具 舉報

7#
ID:47286 發表于 2018-2-21 17:04 | 只看該作者
先定義計數器0或計數器1作計時器 比如沒1s產生一個中斷 定義3個全局變量 在對應的中斷服務中 每產生一個中斷 3個全局變量自加

3個輸入端分別對應3個全局變量之一 當有觸發時 先給對應的全局變量清零然后打開繼電器 即 開始計數 然后判斷變量值是否達到設定值 比如你要求的20分鐘 如果達到則控制繼電器反轉 如果計數期間觸發狀態反轉則直接把計數器設置成大于設定值的數字 比如設定20就直接設置成=21 依舊可以觸發繼電器反轉

6樓的方法也可以 不過我習慣盡量不用中斷或者盡快共用中斷 單片機的中斷資源實在太少了 處理速度也不能和PC類的比 中斷用的越多相當于耽誤的時間越多 開始養成這個習慣利于以后寫更大的程序

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:280226 發表于 2018-2-22 10:33 | 只看該作者
本帖最后由 xmcai 于 2018-2-22 10:58 編輯

下面的程序就是用一個光電開關的,當物體遮擋時,光電開關輸出高電平,繼電器1吸合,5分鐘后自動斷開,在5分鐘內如果物體離開,繼電器馬上斷開,已測試正常。現在需要用到三個光電開關,各自控制三個繼電器,有物體時繼電器吸合5分鐘,當物體離開時,繼電器馬上斷開,三者互不影響。但如何寫成多任務系統,我還不熟悉,請高手幫忙完善。(這個光電掃描程序是參照wulin老師的)
#include <reg52.H>
#define uint unsigned int
typedef unsigned int u16;
sbit iR1=P1^0;                                            //紅外線端口1定義   
sbit iR2=P1^1;                                            //紅外線端口2定義
sbit iR3=P1^5;                                            //紅外線端口3定義
sbit Relay1=P0^0;                                         //繼電器1端口定義
sbit Relay2=P0^1;                                         //繼電器2端口定義
sbit Relay3=P0^2;                                         //繼電器3端口定義
//sbit Relay4=P0^3;                                         //繼電器4端口定義
/***********************************************
定時函數
************************************************/
void Timer0Init()                                          //50毫秒@12.000MHz
{
        TMOD= 0x01;                                        //設置定時器模式
        TL0 = 0xB0;                                        //設置定時初值
        TH0 = 0x3C;                                        //設置定時初值
              EA=1;                                              //開總中斷
        ET0=1;                                             //開定時器0中斷
}
/***********************************************
紅外開關掃描子程序
************************************************/
void iRscan()                                              //紅外開關信號識別子程序
{
         static bit iR_sign1=0;                            //紅外開關1有效標志
//               static bit iR_sign2=0;                            //紅外開關2有效標志
//               static bit iR_sign3=0;                            //紅外開關3有效標志                  
         if(iR1==1)                                         //檢測信號如果為1
         {
                                   if(iR_sign1==0)
                 {                        
                        iR_sign1=1;                        //紅外開關1有效標志置1
                         TR0 = 1;                          //啟動定時器
                         Relay1=0;                         //繼電器接通
//                                                                               Relay2=0;
                }
         }
         else                                               //紅外開關1信號消失
        {
                 iR_sign1=0;                                //紅外開關1有效標志清0
                 Relay1=1;                                  //繼電器斷開
                                                                 Relay2=1;                                 
                 TR0=0;                                     //關閉定時器
        }
//                                 if(iR2==1)                                         //檢測信號如果為1
//         {
//                                   if(iR_sign2==0)
//                 {                        
//                        iR_sign2=1;                        //紅外開關1有效標志置1
//                         TR0 = 1;                          //啟動定時器
//                         Relay2=0;                         //繼電器接通
//                                                                               Relay3=0;
//               }
//         }
//         else                                               //紅外開關1信號消失
//        {
//                 iR_sign2=0;                                //紅外開關1有效標志清0
//                 Relay2=1;                                  //繼電器斷開
//                                                                 Relay3=1;                                 
//                 TR0=0;                                     //關閉定時器
//        }
// }
/***********************************************
主函數
************************************************/
void main()
{
         Timer0Init();                                //定時器0初始化
         while(1)
         {
             iRscan();                                //按鍵掃描
        }
}
/***********************************************
中斷函數
************************************************/
void Timer0() interrupt 1   //50毫秒@12.000MHz
{
                                 u16 temp;
         TL0 = 0xB0;                //設置定時初值
         TH0 = 0x3C;                //設置定時初值
                                 temp++;
         if(temp==(20*60)*5)        //20*60為1分鐘,5為分鐘數
         {
                 temp=0;
                 Relay1=1;          //繼電器斷開
//                                               Relay2=1;
           }
                                 }

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:213173 發表于 2018-2-22 12:28 | 只看該作者
xmcai 發表于 2018-2-22 10:33
下面的程序就是用一個光電開關的,當物體遮擋時,光電開關輸出高電平,繼電器1吸合,5分鐘后自動斷開,在5 ...

在這種情況下多任務使用一個定時器就不能直接操作TR0,而是操作3個標志來分別計時。給你改一下,以達拋磚引玉。
#include <reg52.H>
typedef unsigned char u8;
typedef unsigned int u16;
sbit iR1=P1^0; //紅外線端口1定義   
sbit iR2=P1^1; //紅外線端口2定義
sbit iR3=P1^5; //紅外線端口3定義
sbit Relay1=P0^0;//繼電器1端口定義
sbit Relay2=P0^1;//繼電器2端口定義
sbit Relay3=P0^2;//繼電器3端口定義
//sbit Relay4=P0^3;//繼電器4端口定義
bit flag_1=0,flag_2=0,flag_3=0;//計時標志
u16 temp_1,temp_2,temp_3;//中斷計數變量
/***********************************************
定時函數
************************************************/
void Timer0Init()//50毫秒@12.000MHz
{
        TMOD= 0x01;  //設置定時器模式
        TL0 = 0xB0;  //設置定時初值
        TH0 = 0x3C;  //設置定時初值
        TR0 = 1;     //開啟定時器
        EA=1;        //開總中斷
        ET0=1;       //開定時器0中斷
}
/***********************************************
紅外開關掃描子程序
************************************************/
void iRscan()           //紅外開關信號識別子程序
{
        static bit iR_sign1=0; //紅外開關1有效標志
        static bit iR_sign2=0; //紅外開關2有效標志
        static bit iR_sign3=0; //紅外開關3有效標志                  
        if(iR1==1)             //檢測iR1信號如果為1
        {
                if(iR_sign1==0)        //防止重復響應
                {                        
                        iR_sign1=1;//紅外開關1有效標志置1
                        temp_1=0;  //中斷計數變量清0
                        flag_1=1;  //計時標志置1
                        Relay1=0; //繼電器接通
                }
        }
        else //紅外開關1信號消失
        {
                iR_sign1=0;//紅外開關1有效標志清0
                Relay1=1; //繼電器斷開
        }
        if(iR2==1)  //檢測iR2信號如果為1
        {
                if(iR_sign2==0)        //防止重復響應
                {                        
                        iR_sign2=1;//紅外開關1有效標志置1
                        temp_2=0;  //中斷計數變量清0
                        flag_2=1;  //計時標志置1
                        Relay2=0; //繼電器接通
                }
        }
        else //紅外開關2信號消失
        {
                iR_sign2=0;//紅外開關2有效標志清0
                Relay2=1; //繼電器斷開
        }
        if(iR3==1) //檢測iR3信號如果為1
        {
                if(iR_sign3==0)        //防止重復響應
                {                        
                        iR_sign3=1;//紅外開關1有效標志置1
                        temp_3=0;  //中斷計數變量清0
                        flag_3=1;  //計時標志置1
                        Relay3=0; //繼電器接通
                }
        }
        else //紅外開關3信號消失
        {
                iR_sign3=0;//紅外開關3有效標志清0
                Relay3=1; //繼電器斷開
        }
}
/***********************************************
主函數
************************************************/
void main()
{
        Timer0Init();  //定時器0初始化
        while(1)
        {
                iRscan();  //紅外開關信號掃描
        }
}
/***********************************************
中斷函數
************************************************/
void Timer0() interrupt 1   //50毫秒@12.000MHz
{
        TL0 = 0xB0;                //設置定時初值
        TH0 = 0x3C;                //設置定時初值
        if(flag_1==1)             //如果計時標志為1
        {
                temp_1++;                      //中斷計數變量自+1
                if(temp_1>=(20*60)*1)  //20*60為1分鐘
                {
                        flag_1=0;          //計時標志置0
                        Relay1=1;          //繼電器斷開
                }
        }
        if(flag_2==1)             //如果計時標志為1
        {
                temp_2++;                      //中斷計數變量自+1
                if(temp_2>=(20*60)*1)  //20*60為1分鐘
                {
                        flag_2=0;          //計時標志置0
                        Relay2=1;          //繼電器斷開
                }
        }
        if(flag_3==1)             //如果計時標志為1
        {
                temp_3++;                      //中斷計數變量自+1
                if(temp_3>=(20*60)*1)  //20*60為1分鐘
                {
                        flag_3=0;          //計時標志置0
                        Relay3=1;          //繼電器斷開
                }
        }
}

評分

參與人數 1黑幣 +90 收起 理由
admin + 90 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

10#
ID:280226 發表于 2018-2-22 15:37 | 只看該作者
wulin 發表于 2018-2-22 12:28
在這種情況下多任務使用一個定時器就不能直接操作TR0,而是操作3個標志來分別計時。給你改一下,以達拋磚 ...

wulin老師,謝謝您!這個程序一直受到您的幫助指導,受益菲淺。
回復

使用道具 舉報

11#
ID:284815 發表于 2018-2-22 17:54 | 只看該作者
那么簡答
回復

使用道具 舉報

12#
ID:280226 發表于 2018-3-8 15:25 | 只看該作者
wulin 發表于 2018-2-22 12:28
在這種情況下多任務使用一個定時器就不能直接操作TR0,而是操作3個標志來分別計時。給你改一下,以達拋磚 ...

wulin老師,現在我要增加一個強制按鈕,按下后不論什么狀態,三路繼電器均接通15分鐘,然后斷開。但編譯通不過,不知錯在哪里,麻煩您再指導修正,不勝感激!謝謝您!
#include <reg52.H>
//typedef unsigned char u8;
typedef unsigned int u16;
#define uint unsigned int
sbit iR1=P1^4; //紅外線端口1定義   
sbit iR2=P1^5; //紅外線端口2定義
sbit iR3=P1^6; //紅外線端口3定義
sbit Relay1=P0^0;//繼電器1端口定義
sbit Relay2=P0^1;//繼電器2端口定義
sbit Relay3=P0^2;//繼電器3端口定義
sbit k=P1^7;     //強制按鍵定義
bit flag_1=0,flag_2=0,flag_3=0; flag_4=0;//計時標志
u16 temp_1,temp_2,temp_3;temp_4;//中斷計數變量
/***********************************************
定時函數
************************************************/
void Timer0Init()//50毫秒@12.000MHz
{
        TMOD= 0x01;  //設置定時器模式
        TL0 = 0xB0;  //設置定時初值
        TH0 = 0x3C;  //設置定時初值
        TR0 = 1;     //開啟定時器
        EA=1;        //開總中斷
        ET0=1;       //開定時器0中斷
}
/***********************************************
紅外開關掃描子程序
************************************************/
void iRscan()           //紅外開關信號識別子程序
{
        static bit iR_sign1=0; //紅外開關1有效標志
        static bit iR_sign2=0; //紅外開關2有效標志
        static bit iR_sign3=0; //紅外開關3有效標志
        static bit k_sign4=0; //強制開關有效標志       
              static uint  count=0;  //計數變量
        if(iR1==1)             //檢測iR1信號如果為1
         {
                 if(iR_sign1==0)        //防止重復響應
                {                        
                         iR_sign1=1;    //紅外開關1有效標志置1
                         temp_1=0;      //中斷計數變量清0
                         flag_1=1;      //計時標志置1
                         Relay1=0;      //繼電器接通
                }
         }
         else                           //紅外開關1信號消失
        {
                 iR_sign1=0;            //紅外開關1有效標志清0
                 Relay1=1;              //繼電器斷開
        }
                               
         if(iR2==1)                     //檢測iR2信號如果為1
         {
                 if(iR_sign2==0)        //防止重復響應
                {                        
                         iR_sign2=1;    //紅外開關2有效標志置1
                         temp_2=0;      //中斷計數變量清0
                         flag_2=1;      //計時標志置1
                         Relay2=0;      //繼電器接通
                }
         }
         else                           //紅外開關2信號消失
        {
                 iR_sign2=0;            //紅外開關2有效標志清0
                 Relay2=1;              //繼電器斷開
        }
                               
         if(iR3==1)                     //檢測iR3信號如果為1
         {
                 if(iR_sign3==0)        //防止重復響應
                {                        
                         iR_sign3=1;    //紅外開關1有效標志置1
                         temp_3=0;      //中斷計數變量清0
                         flag_3=1;      //計時標志置1
                         Relay3=0;      //繼電器接通
                }
         }
         else                           //紅外開關3信號消失
        {
                 iR_sign3=0;            //紅外開關3有效標志清0
                 Relay3=1;              //繼電器斷開
        }
                                if(k==1)                        //檢測手動消毒開關如果為1
                                {
                                        count++;                //消抖計數
               if((count>=500)&&(k_sign4==0))  //防止重復響應
                                                                {
                                                                        k_sign4=1;      //手動消毒開關標志置1
                                          temp_4=0;      //中斷計數變量清0
                        flag_4=1;      //計時標志置1
                        Relay1=0;      //繼電器接通
                        Relay2=0;      //繼電器接通
                        Relay3=0;      //繼電器接通
                                                            }       
                                                                }
                                else
                                {
                                              iR_sign1=0;            //紅外開關1有效標志清0
                                              iR_sign2=0;            //紅外開關2有效標志清0
                                               iR_sign3=0;            //紅外開關3有效標志清0
                                              k_sign4=0;            //強制開關有效標志清0
                                              Relay1=1;              //繼電器斷開
                                              Relay2=1;              //繼電器斷開
                                              Relay3=1;              //繼電器斷開
                                        }
                       
/***********************************************
主函數
************************************************/
void main()
{
         Timer0Init();                  //定時器0初始化
        while(1)
         {
                 iRscan();              //紅外開關信號掃描
        }
}
/***********************************************
中斷函數
************************************************/
void Timer0() interrupt 1                       //50毫秒@12.000MHz
{
        TL0 = 0xB0;                             //設置定時初值
        TH0 = 0x3C;                             //設置定時初值
        if(flag_1==1)                           //如果計時標志為1
         {
                 temp_1++;                      //中斷計數變量自+1
                 if(temp_1>=(20*60)*15)          //20*60為1分鐘
                {
                         flag_1=0;              //計時標志置0
                         Relay1=1;              //繼電器斷開
                }
         }
                                 
         if(flag_2==1)                          //如果計時標志為1
         {
                 temp_2++;                      //中斷計數變量自+1
                 if(temp_2>=(20*60)*15)          //20*60為1分鐘
                {
                         flag_2=0;              //計時標志置0
                         Relay2=1;              //繼電器斷開
                }
         }
                                 
         if(flag_3==1)                          //如果計時標志為1
         {
                 temp_3++;                      //中斷計數變量自+1
                 if(temp_3>=(20*60)*15)          //20*60為1分鐘
                {
                         flag_3=0;              //計時標志置0
                         Relay3=1;              //繼電器斷開
                }
         }
                                  if(flag_4==1)                           //如果計時標志為1
         {
                 temp_4++;                      //中斷計數變量自+1
                 if(temp_4>=(20*60)*15)          //20*60為1分鐘
                {
                         flag_4=0;              //計時標志置0
                         Relay1=1;              //繼電器斷開
                                                                               Relay2=1;              //繼電器斷開
                                                                               Relay3=1;              //繼電器斷開
                }
         }
}
回復

使用道具 舉報

13#
ID:213173 發表于 2018-3-8 21:44 | 只看該作者
xmcai 發表于 2018-3-8 15:25
wulin老師,現在我要增加一個強制按鈕,按下后不論什么狀態,三路繼電器均接通15分鐘,然后斷開。但編譯 ...

編譯通不過的主要原因是你添加的語句部分使用了中文{ }符號,現在已經改正并做了調整,K部分的語句只適合用轉換開關,不適合按鈕。按住15分鐘以上顯然不合理。如果必須用按鈕那程序就要再增加一個標志,按一次置1,執行強制指令,再按一次置0,解除強制為自動。
#include <reg52.H>
//typedef unsigned char u8;
typedef unsigned int u16;
#define uint unsigned int
sbit iR1=P1^4; //紅外線端口1定義   
sbit iR2=P1^5; //紅外線端口2定義
sbit iR3=P1^6; //紅外線端口3定義
sbit Relay1=P0^0;//繼電器1端口定義
sbit Relay2=P0^1;//繼電器2端口定義
sbit Relay3=P0^2;//繼電器3端口定義
sbit k=P1^7;     //強制按鍵定義
bit flag_1=0,flag_2=0,flag_3=0; flag_4=0;//計時標志
u16 temp_1,temp_2,temp_3;temp_4;//中斷計數變量
/***********************************************
定時函數
************************************************/
void Timer0Init()//50毫秒@12.000MHz
{
        TMOD= 0x01;  //設置定時器模式
        TL0 = 0xB0;  //設置定時初值
        TH0 = 0x3C;  //設置定時初值
        TR0 = 1;     //開啟定時器
        EA=1;        //開總中斷
        ET0=1;       //開定時器0中斷
}
/***********************************************
紅外開關掃描子程序
************************************************/
void iRscan()           //紅外開關信號識別子程序
{
        static bit iR_sign1=0; //紅外開關1有效標志
        static bit iR_sign2=0; //紅外開關2有效標志
        static bit iR_sign3=0; //紅外開關3有效標志
        static bit k_sign4=0; //強制開關有效標志        
        static uint  count=0;  //計數變量
        if(k==1)       //檢測手動消毒開關如果為1
        {
                count++;                //消抖計數
                if((count>=500)&&(k_sign4==0))  //防止重復響應
                {
                        k_sign4=1;      //手動消毒開關標志置1
                        temp_4=0;      //中斷計數變量清0
                        flag_4=1;      //計時標志4置1
                        flag_1=0;                //計時標志1清0
                        flag_2=0;                //計時標志2清0
                        flag_3=0;                //計時標志3清0
                        Relay1=0;      //繼電器1接通
                        Relay2=0;      //繼電器2接通
                        Relay3=0;      //繼電器3接通
                }        
        }
        else        //強制開關復位執行自動檢測
        {
//                iR_sign1=0;            //紅外開關1有效標志清0
//                iR_sign2=0;            //紅外開關2有效標志清0
//                iR_sign3=0;            //紅外開關3有效標志清0
                count=0;                                                //消抖計數清0
                k_sign4=0;            //強制開關有效標志清0
                Relay1=1;              //繼電器斷開
                Relay2=1;              //繼電器斷開
                Relay3=1;              //繼電器斷開

                if(iR1==1)             //檢測iR1信號如果為1
                {
                        if(iR_sign1==0)        //防止重復響應
                        {                        
                                iR_sign1=1;    //紅外開關1有效標志置1
                                temp_1=0;      //中斷計數變量清0
                                flag_1=1;      //計時標志置1
                                Relay1=0;      //繼電器接通
                        }
                }
                else                           //紅外開關1信號消失
                {
                        iR_sign1=0;            //紅外開關1有效標志清0
                        Relay1=1;              //繼電器斷開
                }
       
                if(iR2==1)                     //檢測iR2信號如果為1
                {
                        if(iR_sign2==0)        //防止重復響應
                        {                        
                                iR_sign2=1;    //紅外開關2有效標志置1
                                temp_2=0;      //中斷計數變量清0
                                flag_2=1;      //計時標志置1
                                Relay2=0;      //繼電器接通
                        }
                }
                else                           //紅外開關2信號消失
                {
                        iR_sign2=0;            //紅外開關2有效標志清0
                        Relay2=1;              //繼電器斷開
                }
       
                if(iR3==1)                     //檢測iR3信號如果為1
                {
                        if(iR_sign3==0)        //防止重復響應
                        {                        
                                iR_sign3=1;    //紅外開關1有效標志置1
                                temp_3=0;      //中斷計數變量清0
                                flag_3=1;      //計時標志置1
                                Relay3=0;      //繼電器接通
                        }
                }
                else          //紅外開關3信號消失
                {
                        iR_sign3=0;    //紅外開關3有效標志清0
                        Relay3=1;      //繼電器斷開
                }
        }
}                 
/***********************************************
主函數
************************************************/
void main()
{
        Timer0Init();                  //定時器0初始化
        while(1)
        {
                iRscan();              //紅外開關信號掃描
        }
}
/***********************************************
中斷函數
************************************************/
void Timer0() interrupt 1                       //50毫秒@12.000MHz
{
        TL0 = 0xB0;                             //設置定時初值
        TH0 = 0x3C;                             //設置定時初值
        if(flag_1==1)                           //如果計時標志為1
        {
                temp_1++;                      //中斷計數變量自+1
                if(temp_1>=(20*60)*15)          //20*60為1分鐘
                {
                        flag_1=0;              //計時標志置0
                        Relay1=1;              //繼電器斷開
                }
        }

        if(flag_2==1)                          //如果計時標志為1
        {
                temp_2++;                      //中斷計數變量自+1
                if(temp_2>=(20*60)*15)          //20*60為1分鐘
                {
                        flag_2=0;              //計時標志置0
                        Relay2=1;              //繼電器斷開
                }
        }

        if(flag_3==1)                          //如果計時標志為1
        {
                temp_3++;                      //中斷計數變量自+1
                if(temp_3>=(20*60)*15)          //20*60為1分鐘
                {
                        flag_3=0;              //計時標志置0
                        Relay3=1;              //繼電器斷開
                }
        }
        if(flag_4==1)                           //如果計時標志為1
        {
                temp_4++;                      //中斷計數變量自+1
                if(temp_4>=(20*60)*15)          //20*60為1分鐘
                {
                        flag_4=0;              //計時標志置0
                        Relay1=1;              //繼電器斷開
                        Relay2=1;              //繼電器斷開
                        Relay3=1;              //繼電器斷開
                }
        }
}
回復

使用道具 舉報

14#
ID:280226 發表于 2018-3-9 09:03 | 只看該作者
wulin 發表于 2018-3-8 21:44
編譯通不過的主要原因是你添加的語句部分使用了中文{ }符號,現在已經改正并做了調整,K部分的語句只適合 ...

謝謝wulin老師!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人精品在线 | 久久久这里只有17精品 | www.日韩系列| 先锋资源网站 | 男女黄网站 | 亚洲欧美国产毛片在线 | 婷婷久久五月 | 在线观看中文字幕dvd播放 | 欧美久久一区二区三区 | av一区二区在线观看 | 成人国产在线视频 | 日韩av在线一区 | 91精品久久久久久久久久 | 久久伊人免费视频 | 欧美久久久久 | 国产精品免费av | 国产欧美一区二区三区国产幕精品 | 欧美不卡 | 四色永久 | 久久丁香| 国产成人一区 | 久久另类 | 精品国产一区二区三区观看不卡 | 国产高清在线精品一区二区三区 | 手机在线不卡av | 午夜小影院 | 国产成人一区二区三区电影 | 亚洲欧美日韩精品久久亚洲区 | 久久99国产精一区二区三区 | 国产精品网址 | 国产免费av网 | 日韩成人免费视频 | 久久久精品网站 | www.国产一区 | 精品不卡 | 欧美精品一区二区三区蜜桃视频 | 亚洲欧美在线视频 | 一区二区三区在线观看免费视频 | 91精品国产91久久综合桃花 | 国产精品久久久久久久久久软件 | 久久精品无码一区二区三区 |