在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51學習之定時器中斷

            51學習之定時器中斷

            作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
            定時器中斷可用兩種方式處理:查詢和進入中斷處理。
            1.查詢
            void Init_T0 (void) 定時器初始化
            {
            TMOD = 0x01;
            TH0 = (65536-65000) /256;
            TL0 = (65536-65000) %6;
            EA = 1;
            ET0 = 1;
            TR0 = 1;
            }
            void Main() 主函數(shù)
            { Init_T0 ();
            Speak1 =1;
            if(TF0==1) 查詢中斷標志
            {
            Speak1=~Speak1;
            //TH0 = (65536-65000) /256;
            //TL0 = (65536-65000) %6;
            TF0=0;
            }
            }
            2.進入中斷處理
            void Init_T0 (void) 定時器初始化
            {
            TMOD = 0x01;
            TH0 = (65536-65000) /256;
            TL0 = (65536-65000) %6;
            EA = 1;
            ET0 = 1;
            TR0 = 1;
            }
            void Time0_Int() interrupt 1 中斷處理函數(shù)
            {
            Speak1=~Speak1;
            //TH0 = (65536-65000) /256;
            //TL0 = (65536-65000) %6;
            }
            void Main() 主函數(shù)
            {
            Init_T0 ();
            Speak1 =1;
            while(1); 等待中斷
            }
            對于查詢方式,一定要手動清楚中斷標志。
            上面2段程序,我屏蔽了,中斷時重新裝計數(shù)初值的語句,程序都可正常運行,所以我認為無論對于那種處理方式,重裝初值都不必要。
            初始化時,可定義輸出口的初始狀態(tài)。而在處理中斷時,一定要用取反語句。手動置0或1,程序不能正常運行。
            對于方式2,開始main中沒寫最后的while(1),程序不正常運行。
            上述定時最大為65535,約65ms.如果計時大于此,可在中斷中處理。
            程序如下:
            int a;
            void Time0_Int() interrupt 1
            {
            if(a++==20)
            { a=0;
            Speak1=~Speak1;
            }
            }
            呵呵,在寫上面這一小段時,開始沒寫a=0,燈一直亮,后來參考下,發(fā)現(xiàn)不清0.a一直變大,程序只能執(zhí)行一次。



            關(guān)鍵詞: 51學習定時器中

            評論


            技術(shù)專區(qū)

            關(guān)閉