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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MCS-51單片機(jī)的中斷系統(tǒng)(2)

          MCS-51單片機(jī)的中斷系統(tǒng)(2)

          作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏

          中斷響應(yīng)過(guò)程

          中斷響應(yīng)過(guò)程為,中斷源發(fā)出中斷請(qǐng)求→對(duì)中斷請(qǐng)求進(jìn)行響應(yīng)→執(zhí)行中斷服務(wù)程序→返回主程序。這個(gè)過(guò)程可分為三個(gè)階段來(lái)完成。
          1. 中斷采樣
          對(duì)于外部中斷請(qǐng)求,中斷請(qǐng)求信號(hào)來(lái)自于單片機(jī)外部,計(jì)算機(jī)要想知道有沒(méi)有中斷請(qǐng)求發(fā)生,必須對(duì)信號(hào)進(jìn)行采樣。
          ① 電平觸發(fā)方式的外中斷請(qǐng)求(IT0/IT1=0)采樣到高電平時(shí),表明沒(méi)有中斷請(qǐng)求,IE0或IE1繼續(xù)為“0”。采樣到低電平時(shí),IE0/IE1由硬件自動(dòng)置“1”,表明有外中斷請(qǐng)求發(fā)生。
          ② 脈沖觸發(fā)式的外中斷請(qǐng)求(IT0/IT1=1)在相鄰的機(jī)器周期采樣到的電平由高電平變?yōu)榈碗娖綍r(shí),則IE0/IE1由硬件自動(dòng)置“1”,否則為“0”。
          2. 中斷查詢
          由CPU測(cè)試TCON和SCON中的各個(gè)中斷標(biāo)志位的狀態(tài),確定有那個(gè)中斷源發(fā)生請(qǐng)求,查詢時(shí)按優(yōu)先級(jí)順序進(jìn)行查詢,即先查詢高優(yōu)先級(jí)再查詢低優(yōu)先級(jí)。如果同級(jí),按以下順序查詢:
          #INT0→T0→#INT1→T1→ S
          如果查詢到有標(biāo)志位為“1”,表明有中斷請(qǐng)求發(fā)生,接著就從相鄰的下一機(jī)器周期開始進(jìn)行中斷響應(yīng)。
          3. 中斷響應(yīng)
          當(dāng)CPU查詢到中斷請(qǐng)求時(shí),由硬件自動(dòng)產(chǎn)生一條LCALL指令,LCALL指令執(zhí)行時(shí),首先將PC內(nèi)容壓入堆棧進(jìn)行斷點(diǎn)保護(hù),再把中斷入口地址裝入PC,使程序轉(zhuǎn)向相應(yīng)的中斷區(qū)入口地址。LCALL指令的形式如下:
          LCALL addr16 ;addr16:中斷入口地址
          入口地址已由系統(tǒng)設(shè)定,如下:
          中斷源入口地址
          0003H
          T0000BH
          0013H
          T1001BH
          S0023H
          從表中可以看出,每個(gè)中斷區(qū)只有8個(gè)單元,很難安排下一個(gè)中斷程序,一般是在中斷入口地址處加一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到用戶的服務(wù)程序入口。編寫中斷服務(wù)程序的格式一般如下:
          ORG 0000H
          SJMP MAIN
          ORG 0003H
          AJMP 1NJERRVP
          MAIN: ···
          HERE: SJMP HERE
          1NJERRVP: ··· ;中斷響應(yīng)程序
          RETI
          并不是所有的請(qǐng)求都被響應(yīng),當(dāng)遇到下列情況之一時(shí)不響應(yīng)這些中斷請(qǐng)求:
          (1)CPU正在處理一個(gè)同級(jí)或者高級(jí)的中斷服務(wù)
          (2)當(dāng)前指令還沒(méi)有執(zhí)行完畢
          (3)當(dāng)前指令是RET、RETI或者是訪問(wèn)IP、IE的指令,執(zhí)行完這些指令后,還必須再執(zhí)行一條指令,才響應(yīng)中斷請(qǐng)求。
          注意:MCS-51單片機(jī)對(duì)中斷查詢結(jié)果不作記憶,當(dāng)有新的查詢結(jié)果出現(xiàn)時(shí),因?yàn)橐陨显蚨煌涎拥牟樵兘Y(jié)果將不復(fù)存在,其中斷請(qǐng)求也就不能再被響應(yīng)了。

          中斷請(qǐng)求的撤銷

          中斷響應(yīng)后,TCON和SCON的中斷請(qǐng)求標(biāo)志位應(yīng)及時(shí)撤銷。否則意味著中斷請(qǐng)求仍然存在,有可能造成中斷的重復(fù)查詢和響應(yīng),因此需要在中斷響應(yīng)完成后,撤銷其中斷標(biāo)志。
          1. 定時(shí)中斷請(qǐng)求的撤銷
          硬件自動(dòng)把TF0(TF1)清0,不需要用戶參與。
          2. 串行中斷請(qǐng)求的撤銷
          需要軟件清零。
          3. 外部中斷請(qǐng)求的撤銷
          (1)脈沖觸發(fā)方式的外中斷請(qǐng)求撤銷
          中斷標(biāo)志位的清零是自動(dòng)的,脈沖信號(hào)過(guò)后就不存在了,因此其撤銷是自動(dòng)的。
          (2)電平觸發(fā)方式的外中斷請(qǐng)求撤銷
          中斷標(biāo)志位的清零是自動(dòng)的,但是如果低電平持續(xù)存在,在以后的機(jī)器周期采樣時(shí),又會(huì)把中斷請(qǐng)求標(biāo)志位(IE 0/IE 1)置位。為此,需要外加電路,把中斷請(qǐng)求信號(hào)從低電平強(qiáng)制為高電平。

          電平觸發(fā)方式的外中斷請(qǐng)求撤銷
          通過(guò)直接置位端#Sd使中斷請(qǐng)求信號(hào)強(qiáng)制從低電平變?yōu)楦唠娖?,要?shí)現(xiàn)此功能需要在中斷入口地址處加入如下兩條指令:
          ORL P1, #01H
          ANL P1,#0FEH


          關(guān)鍵詞: MCS-51單片機(jī)中斷系

          評(píng)論


          相關(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); })();