AT89S52單片機中斷系統
AT89S52單片機的中斷系統共有8個中斷源,6個中斷矢量,兩級中斷優先級,可實現兩級中斷服務程序嵌套,通過軟件來屏蔽或允許相應的中斷請求。每一個中斷源可以編程為高優先級中斷或低優先級中斷,允許或禁止向CPU申請中斷。中斷系統的特殊功寄存器有中斷允許寄存器IE、中斷優先級寄存器IP等。
圖1為AT89S52單片機的中斷系統結構示意圖。AT89S52有兩個外部中斷源INT0、INT1;串口通信有接收和發送兩個中斷源,經過一個或門,公用同一個中斷矢量;定時器/計數器0、定時器/計數器1的溢出中斷源對應兩個中斷矢量;定時/計數器2有計數溢出和捕獲兩種中斷源,經或門共用一個中斷矢量。

圖1 中斷系統結構示意圖 (1) 來自P3.2引腳上的外部中斷請求(外部中斷0),低電平或下降沿(從高到低)有效,通過設置IT0的值可將外部中斷0設置為低電平觸發或下降沿觸發,IT0=0時,為電平觸發方式,當引腳上出現低電平時就向CPU申請中斷;IT0=1時,為跳變觸發方式,當引腳上出現負跳變時,置位TCON.1的IE0中斷請求標志位,向CPU申請中斷。CPU在每個機器周期的S5P2狀態采樣IE0標志位,當條件滿足,則響應中斷請求。
(2) 來自P3.3引腳上的外部中斷請求(外部中斷1),低電平或下降沿有效。其功能與操作同。
(3) T0 片內定時器/計數器0溢出(TF0)中斷請求。定時/計數器0無論內部定時或對外部事件T0計數,當計數器(TH0、TL0)計數溢出,置位TCON.5的TF0中斷請求標志位。CPU在每個機器周期的S5P2狀態時采樣TF0標志位,當條件滿足時CPU響應中斷請求,轉向對應的中斷矢量,執行該中斷服務程序,并由硬件自動將TF0標志位清0。
(4) T1片內定時器/計數器1溢出(TF1)中斷請求。其功能和操作類似定時/計數器0。其中斷請求標志位為TCON.7的TF1。
(5) T2片內定時器/計數器2溢出中斷請求。定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發。程序進入中斷服務后,這些標志位都可以由硬件清0。定時器2有兩種不同的工作方式。
定時/計數器方式。當定時/計數器方式的計數器(TH2、TL2)計數滿后溢出,置位中斷請求標志位(T2CON.7)TF2,向CPU請求中斷處理。
“捕獲”方式。當外部輸入端口T2EX發生從1→0下降沿時,亦將置位T2CON.6的中斷請求標志位EXF2,向CPU請求中斷處理。
(6) 串行口中斷。片內串行口完成一幀發送或接收,置位中斷請求源TI或RI。當完成一串行幀的接收/發送時分別置位串行通信控制寄存器SCON中的RI/TI中斷請求標志位,當條件滿足時CPU響應中斷請求。
每一個中斷源都對應有一個中斷請求標志位,它們設置在定時/計數器控制寄存器TCON、定時/計數器2控制寄存器T2CON和串行通信控制寄存器SCON的相應位來鎖存。另外還有中斷控制寄存器IE和中斷優先級控制寄存器IP,IE用于確定各中斷是允許還是禁止,IP用于定義各中斷源的中斷優先級,用戶通過設置其狀態來管理中斷系統。

編輯:admin 最后修改時間:2019-06-23


