AT89S52單片機中斷系統(tǒng)
AT89S52單片機的中斷系統(tǒng)共有8個中斷源,6個中斷矢量,兩級中斷優(yōu)先級,可實現(xiàn)兩級中斷服務(wù)程序嵌套,通過軟件來屏蔽或允許相應(yīng)的中斷請求。每一個中斷源可以編程為高優(yōu)先級中斷或低優(yōu)先級中斷,允許或禁止向CPU申請中斷。中斷系統(tǒng)的特殊功寄存器有中斷允許寄存器IE、中斷優(yōu)先級寄存器IP等。
圖1為AT89S52單片機的中斷系統(tǒng)結(jié)構(gòu)示意圖。AT89S52有兩個外部中斷源INT0、INT1;串口通信有接收和發(fā)送兩個中斷源,經(jīng)過一個或門,公用同一個中斷矢量;定時器/計數(shù)器0、定時器/計數(shù)器1的溢出中斷源對應(yīng)兩個中斷矢量;定時/計數(shù)器2有計數(shù)溢出和捕獲兩種中斷源,經(jīng)或門共用一個中斷矢量。
圖1 中斷系統(tǒng)結(jié)構(gòu)示意圖 (1) 來自P3.2引腳上的外部中斷請求(外部中斷0),低電平或下降沿(從高到低)有效,通過設(shè)置IT0的值可將外部中斷0設(shè)置為低電平觸發(fā)或下降沿觸發(fā),IT0=0時,為電平觸發(fā)方式,當(dāng)引腳上出現(xiàn)低電平時就向CPU申請中斷;IT0=1時,為跳變觸發(fā)方式,當(dāng)引腳上出現(xiàn)負跳變時,置位TCON.1的IE0中斷請求標(biāo)志位,向CPU申請中斷。CPU在每個機器周期的S5P2狀態(tài)采樣IE0標(biāo)志位,當(dāng)條件滿足,則響應(yīng)中斷請求。
(2) 來自P3.3引腳上的外部中斷請求(外部中斷1),低電平或下降沿有效。其功能與操作同。
(3) T0 片內(nèi)定時器/計數(shù)器0溢出(TF0)中斷請求。定時/計數(shù)器0無論內(nèi)部定時或?qū)ν獠渴录⺄0計數(shù),當(dāng)計數(shù)器(TH0、TL0)計數(shù)溢出,置位TCON.5的TF0中斷請求標(biāo)志位。CPU在每個機器周期的S5P2狀態(tài)時采樣TF0標(biāo)志位,當(dāng)條件滿足時CPU響應(yīng)中斷請求,轉(zhuǎn)向?qū)?yīng)的中斷矢量,執(zhí)行該中斷服務(wù)程序,并由硬件自動將TF0標(biāo)志位清0。
(4) T1片內(nèi)定時器/計數(shù)器1溢出(TF1)中斷請求。其功能和操作類似定時/計數(shù)器0。其中斷請求標(biāo)志位為TCON.7的TF1。
(5) T2片內(nèi)定時器/計數(shù)器2溢出中斷請求。定時器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。定時器2有兩種不同的工作方式。
定時/計數(shù)器方式。當(dāng)定時/計數(shù)器方式的計數(shù)器(TH2、TL2)計數(shù)滿后溢出,置位中斷請求標(biāo)志位(T2CON.7)TF2,向CPU請求中斷處理。
“捕獲”方式。當(dāng)外部輸入端口T2EX發(fā)生從1→0下降沿時,亦將置位T2CON.6的中斷請求標(biāo)志位EXF2,向CPU請求中斷處理。
(6) 串行口中斷。片內(nèi)串行口完成一幀發(fā)送或接收,置位中斷請求源TI或RI。當(dāng)完成一串行幀的接收/發(fā)送時分別置位串行通信控制寄存器SCON中的RI/TI中斷請求標(biāo)志位,當(dāng)條件滿足時CPU響應(yīng)中斷請求。
每一個中斷源都對應(yīng)有一個中斷請求標(biāo)志位,它們設(shè)置在定時/計數(shù)器控制寄存器TCON、定時/計數(shù)器2控制寄存器T2CON和串行通信控制寄存器SCON的相應(yīng)位來鎖存。另外還有中斷控制寄存器IE和中斷優(yōu)先級控制寄存器IP,IE用于確定各中斷是允許還是禁止,IP用于定義各中斷源的中斷優(yōu)先級,用戶通過設(shè)置其狀態(tài)來管理中斷系統(tǒng)。
編輯:admin 最后修改時間:2019-06-23