找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3320|回復: 9
收起左側(cè)

如何改寫這個單片機中斷程序,燈亮5分鐘,滅1分鐘,最多循環(huán)5次。謝謝大神 求幫助

[復制鏈接]
ID:707421 發(fā)表于 2020-6-3 09:07 | 顯示全部樓層 |閱讀模式
void Timer0_Service() interrupt 1
{
   static uint count = 0;  
   static uchar flag = 0;
         static uchar flag2 = 0;
         unsigned int i,j;
   //count = 0;
  TR0 = 0;   
   TH0 = 0xec;
   TL0 = 0x78;  
  TR0 = 1 ;   
   count++;
        LED1=1;
        LED2=0;        
        //bell=1;
        if( count ==30000)
   {
      bell =0;
     count = 0;
                 count++;
                 LED1=0;
                 LED2=0;
        /* TH0 = 0xec;
    TL0 = 0x78; */
                 flag++;
                /*for(i=0;i<11000;i++)
                 {for(j=0;j<1100;j++);}
                 i=0;j=0;*/
   }         
  if( flag ==5)
   {
     bell=1;
                // flag = 0;
      //TR0 = 0;   
               
                  /*TH0 = 0xec;
      TL0 = 0x78; */
                  LED2=0;
                   LED1=1;
                  //count=0;
                 /*        for(i=0;i<11000;i++)
                 {for(j=0;j<11000;j++);}
                 i=0;j=0;*/
   }
         if( flag ==5)
                {
      flag = 0;
      //TR0 = 0;
                        LED2=0;
                   LED1=0;
                        TH0 = 0xec;
      TL0 = 0x78;
                 count=0;
                 /*        for(i=0;i<11000;i++)
                 {for(j=0;j<11000;j++);}
                 i=0;j=0;*/
    }
}

回復

使用道具 舉報

ID:768837 發(fā)表于 2020-6-3 20:45 | 顯示全部樓層
用for(i=1;i<=5;i++)
回復

使用道具 舉報

ID:155507 發(fā)表于 2020-6-4 06:22 | 顯示全部樓層
中斷子程序中不要寫調(diào)用延時子程序,中斷子程序也不要寫得過長,處理過多的任務,要盡快處理后及時返回,如果中斷一次有很多任務需要執(zhí)行完全,可以在中斷子程序中設置一個標志位,在主程序中查這個標志位,當標志為1時,就在主程序中完成這些任務,這樣就不會影響其它中斷源的中斷,也不會使中斷產(chǎn)生混亂。
回復

使用道具 舉報

ID:332444 發(fā)表于 2020-6-4 08:36 | 顯示全部樓層
可參我這個回復的例子中的中斷使用,計時和其它操作莫放在中斷里面。https://ask.csdn.net/questions/1078609
回復

使用道具 舉報

ID:332444 發(fā)表于 2020-6-4 11:06 | 顯示全部樓層
無標題.png
無標題.png
回復

使用道具 舉報

ID:707421 發(fā)表于 2020-6-4 21:00 | 顯示全部樓層

非常感謝兄弟。
回復

使用道具 舉報

ID:707421 發(fā)表于 2020-6-5 16:08 | 顯示全部樓層
angmall 發(fā)表于 2020-6-4 06:22
中斷子程序中不要寫調(diào)用延時子程序,中斷子程序也不要寫得過長,處理過多的任務,要盡快處理后及時返回,如 ...

我想實現(xiàn) 測量溫度大于設置溫度,執(zhí)行中斷,LED1亮,LED2滅,最多執(zhí)行5次,LED1,LED2都不亮。關閉中斷。還能繼續(xù)測量溫度。為啥實現(xiàn)不了。

4I8VGM2VUIL`XGCEUU3@$8F.png
7XRWNOYFTK$Y)OZ}RZ%M$T2.png
K%6K7P8GCW8I$}~00E[E3KF.png
回復

使用道具 舉報

ID:707421 發(fā)表于 2020-6-5 16:19 | 顯示全部樓層
angmall 發(fā)表于 2020-6-4 06:22
中斷子程序中不要寫調(diào)用延時子程序,中斷子程序也不要寫得過長,處理過多的任務,要盡快處理后及時返回,如 ...

謝謝兄弟,我學到不少知識,能不能看一下我發(fā)的帖子,幫我解決一下問題。
回復

使用道具 舉報

ID:707421 發(fā)表于 2020-6-5 16:21 | 顯示全部樓層

謝謝兄弟,我自己編寫的程序,實在是寫不出來了 ,學到了不少知識,煩請兄弟幫我解決一下我新帖子的問題。
回復

使用道具 舉報

ID:861694 發(fā)表于 2022-10-19 14:44 | 顯示全部樓層
angmall 發(fā)表于 2020-6-4 06:22
中斷子程序中不要寫調(diào)用延時子程序,中斷子程序也不要寫得過長,處理過多的任務,要盡快處理后及時返回,如 ...

請問可以將定時器里關于PWM程序放在主程序中嗎?
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表