<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)中斷概念及理解

          單片機(jī)中斷概念及理解

          作者: 時(shí)間:2013-12-02 來源:網(wǎng)絡(luò) 收藏

          1 :指能向CPU發(fā)出中斷請求信號的部件和設(shè)備。

          2 :指內(nèi)部或外部產(chǎn)生的申請信號。這個(gè)信號通常是電信號的某種變化形式,有以下幾類:

          1)脈沖的上跳沿或下降沿(上升沿觸發(fā)型或下降沿觸發(fā)型)

          2)高電平或低電平

          3)電平的變化

          3 中斷向量:

          發(fā)出的請求信號被CPU檢測到之后,如果的中斷控制系統(tǒng)允許響應(yīng)中斷,則CPU會自動(dòng)轉(zhuǎn)移,執(zhí)行一個(gè)固定的程序空間地址中的指令。這個(gè)固定的地址稱作中斷入口地址,也要中斷向量。

          中斷控制與中斷響應(yīng)條件:

          中,對應(yīng)每一個(gè)中斷源都有一個(gè)相應(yīng)的中斷標(biāo)志位,該中斷標(biāo)志位將占據(jù)中斷控制寄存器中的一位。當(dāng)檢測到某一中斷源產(chǎn)生符合條件的時(shí),其硬件會自動(dòng)將該中斷源對應(yīng)的中斷標(biāo)志位置1。這就意味著有產(chǎn)生并向MCU申請中斷。

          響應(yīng)A中斷=全局中斷允許標(biāo)志位 + 中斷A允許標(biāo)志位 + 中斷A的標(biāo)志位

          內(nèi)部中斷:單片機(jī)的內(nèi)部集成許多功能模塊,如定時(shí)器,串口通信,A/D轉(zhuǎn)換器……在發(fā)生中斷時(shí)才需要CPU參與,發(fā)出請求信號通知CPU。

          外部中斷:系統(tǒng)的外部設(shè)備產(chǎn)生的中斷源,產(chǎn)生一個(gè)中斷信號(通常是高低地那瓶或者電平跳變的上升/下降),送到單片機(jī)的外部中斷請求引腳供CPU檢測。

          中斷進(jìn)行的大概過程:

          總中斷允許位打開,本身中斷允許位打開,中斷源產(chǎn)生一個(gè)符合條件的中斷信號,當(dāng)MCU檢測到這個(gè)信號,其硬件就自動(dòng)將該中斷源對應(yīng)的中斷標(biāo)志位置1(這個(gè)標(biāo)志位在中斷控制寄存器中占一位),即響應(yīng)中斷,則CPU會自動(dòng)轉(zhuǎn)移,執(zhí)行一個(gè)固定的程序空間地址中的指令(即中斷向量),在中斷向量處放置著一條跳轉(zhuǎn)到中斷服務(wù)程序的指令。這樣,CPU響應(yīng)后,執(zhí)行中斷向量中的轉(zhuǎn)移指令,進(jìn)而執(zhí)行中斷服務(wù)程序。

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理




          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();