[51單片機] 中斷1-中斷整體介紹


 

 

>_<:簡單介紹--[高手繞過這一段;心急的直接跳到下一部份]

 

 

>_<:51單片機上的應用[應用控制篇]

 

>_<:MCS51的中斷源

外部中斷請求源:即外部中斷0 和1,經由外部引腳引入,在單片機上有兩個引腳,外稱為INT0、INT1,也就是P3.2、P3.3這兩個引腳

 

>_<:MCS51的中斷向量表

單片機內部的中斷模塊在每個CPU周期都查詢各個中斷源的狀態,當其發生預期的中斷事件時,通知CPU將程序跳轉到中斷服務程序所在的程序存儲器(ROM)地址。該地址稱為中斷向量。

中斷的實質仍然是查詢,只是不需要用戶程序查詢,不占用CPU運行時間而已。

51系列只有5個中斷向量,5X系列還增加一個定時器2的中斷向量

——————————————————————————————
       地址          |       中斷入口   |    中斷編號
——————————————————————————————
    0x0000           |        復位      |
    0x0003           |        外部中斷0  |            0          
    0x000B           |        定時器0   |            1
    0x0013           |        外部中斷1   |          2
    0x001B           |        定時器1     |          3
    0x0023           |        串口       |           4
    0x002B           |        定時器2(5x系列新增的)|  5
——————————————————————————————

 

>_<:MCS51中斷運行的機里

以INT0為例:中斷模塊在每個CPU時鍾周期都查詢P3.2的狀態,當輸入的電平由高電平變為低電平時,CPU的程序運行會立即跳轉的到地址0x03。處理INT0中斷的代碼放在地址為0x03開始的ROM區域。c語言中采用一類特殊的函數來實現此代碼定位的功能,叫做 中斷服務函數,格式如下:

   void 函數名()interrupt N

函數名可以任意,但一般要用一個有意義的函數名,N代表中斷向量編號。

 

>_<:中斷控制寄存器IE

MCS51中斷系統中,中斷的允許或禁止是由片內可以進行位尋址的8位中斷允許寄存器IE來控制的。

EX0 :外中斷0中斷允許

ET0 :定時器0中斷允許

EX1 :外中斷1中斷允許

ET1 :定時器1中斷允許

ES :串行口中斷允許

ET2 :定時器2中斷允許

EA :是總開關,若為0,則所有中斷都不允許。

 

>_<:中斷標志及外部中斷方式選擇寄存器 TCON

IT0 :INT0觸發方式控制位,邊沿/電平觸發模式

IE0 :INT0中斷請標志,

IT1 :同上

IE1 :同上

TF0 :定時器/計數器0的溢出中斷標志

TF1 :定時器/計數器1的溢出中斷標志

 

>_<:外部中斷的2種觸發模式

觸發模式由IT0和IT1控制。

1)邊沿觸發:IT0(IT1)=1,INT0(INT1)為邊沿觸發方式。如果一個周期中采樣到高電平,下個周期中采樣到低電平,則硬件使IE0(IE1)置1,向CPU請求中斷。

2)電平觸發:IT0(IT1)=0,INT0(INT1)為電平觸發方式。此時外部中斷是通過檢測P3.2(P3.3)腳的輸入電平(低電平)來觸發的。采用電平觸發時,輸入腳的外部中斷源必須保持低電平有效,直到該中斷被響應。同時在中斷返回前必須使用電平變高,否則將會再次產生中斷。

一般采用邊沿觸發方式,因為此模式抗干擾能力較強,極少采用電平觸發模式。

 

[>_<:這一部分轉自http://hi.baidu.com/ft1022/item/ea2713ea92f1382e5a7cfbc6]

>_<:謝謝分享總結這么好的知識]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM