• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機外部中斷的總結

    51單片機外部中斷的總結

    作者: 時間:2012-10-23 來源:網絡 收藏

    有兩種可選:電平觸發和邊沿觸發。選擇電平觸發時,單片機在每個機器周期檢查中斷源口線,檢測到低電平,即置位中斷請求標志,向CPU請求中斷。選擇邊沿時,單片機在上一個機器周期檢測到中斷源口線為高電平,下一個機器周期檢測到低電平,即置位中斷標志,請求中斷。

    這個原理很好理解。但應用時需要特別注意的幾點:

    1) 電平時,中斷標志寄存器不鎖存中斷請求信號。也就是說,單片機把每個機器周期的S5P2采樣到的源口線的電平邏輯直接賦值到中斷標志寄存器。標志寄存器對于請求信號來說是透明的。這樣當中斷請求被阻塞而沒有得到及時響應時,將被丟失。換句話說,要使電平觸發的中斷被CPU響應并執行,必須保證源口線的低電平維持到中斷被執行為止。因此當CPU正在執行同級中斷或更高級中斷期間,產生的外部中斷源(產生低電平)如果在該中斷執行完畢之前撤銷(變為高電平)了,那么將得不到響應,就如同沒發生一樣。同樣,當CPU在執行不可被中斷的指令(如RETI)時,產生的電平觸發中斷如果時間太短,也得不到執行。

    2)邊沿觸發方式時,中斷標志寄存器鎖存了中斷請求。中斷口線上一個從高到低的跳變將記錄在標志寄存器中,直到CPU響應并轉向該中斷服務程序時,由硬件自動清除。因此當CPU正在執行同級中斷(甚至是外部中斷本身)或高級中斷時,產生的外部中斷(負跳變)同樣將被記錄在中斷標志寄存器中。在該中斷退出后,將被響應執行。如果你不希望這樣,必須在中斷退出之前,手工清除外部中斷標志。

    3)中斷標志可以手工清除。一個中斷如果在沒有得到響應之前就已經被手工清除,則該中斷將被CPU忽略。就如同沒有發生一樣。

    4)選擇電平觸發還是邊沿觸發方式應從系統使用外部中斷的目的上去考慮,而不是如許多資料上說的根據中斷源信號的特性來取舍。比如,有的書上說(《Keil C51使用技巧及實戰》),就有類似的觀點。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 诸暨市| 汾西县| 封丘县| 东源县| 博客| 邢台县| 许昌县| 门头沟区| 孟州市| 宜州市| 涞源县| 金秀| 伊春市| 如皋市| 庆安县| 白山市| 吴桥县| 绥德县| 凌海市| 胶南市| 华池县| 茶陵县| 上思县| 原平市| 灌云县| 通城县| 涿鹿县| 陵川县| 阜新市| 公主岭市| 双辽市| 含山县| 南皮县| 青川县| 华池县| 沂水县| 林周县| 团风县| 托克逊县| 榆中县| 额尔古纳市|