什么是MCS 51單片機的中斷系統(tǒng)
中斷的概述
中斷是計算機中一個很重要的概念,中斷技術(shù)的引入使計算機的發(fā)展和應(yīng)用大大地推進了一步。因此,中斷功能的強弱已成為衡量一臺計算機功能完善與否的重要指標之一。
1. 中斷
中斷是指計算機在執(zhí)行某一程序的過程中,由于計算機系統(tǒng)內(nèi)、外的某種原因,而必須中止原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束之后,再回來繼續(xù)執(zhí)行被中止的原程序的過程。
采用了中斷技術(shù)后的計算機,可以解決 CPU 與外設(shè)之間速度匹配的問題,使計算機可以及時處理系統(tǒng)中許多隨機的參數(shù)和信息,同時,它也提高了計算機處理故障與應(yīng)變的能力。
2. 中斷源
中斷源是指在計算機系統(tǒng)中向 CPU 發(fā)出 斷請求的來源 ,中斷可以人為設(shè)定 ,也可以是為響應(yīng)突發(fā)性隨機事件而設(shè)置 。通常有 I/O 設(shè)備 、實時控制系統(tǒng)中的隨機參數(shù)和信息、故障源等。
3. 中斷優(yōu)先級
由于在實際的系統(tǒng)中,往往有多個中斷源,且中斷申請是隨機 的,故有時可能會有多個中斷源同時提出中斷申請 ,但 CPU 一次只能響應(yīng)一個中斷源發(fā)出的中斷請求,這時 CPU 應(yīng)響應(yīng)哪個中斷請求?這就需要用軟件或硬件按中斷源工作性質(zhì)的輕重緩急,給它們安排一個優(yōu)先順序,即所謂的優(yōu)先級排隊。中斷優(yōu)先級越高 ,則響應(yīng)優(yōu)先權(quán)就越高 。當 CPU 正在執(zhí)行中斷服務(wù)程序時,又有中斷優(yōu)先級更高的中斷申請產(chǎn)生,這時 CPU 就會暫停當前的中斷服務(wù)轉(zhuǎn)而處理高級中斷申請,待高級中斷處理程序完畢再返回原中斷程序斷點處繼續(xù)執(zhí)行,這一過程稱為中斷嵌套。
4. 中斷響應(yīng)的過程
(1) 在每條指令結(jié)束后,系統(tǒng)都自動檢測中斷請求信號,如果有中斷請求,且 CPU 處于開中斷狀態(tài)下,則響應(yīng)中斷。
(2) 保護現(xiàn)場,在保護現(xiàn)場前,一般要關(guān)中斷,以防止現(xiàn)場被破壞。保護現(xiàn)場一般是用堆棧指令將原程序中用到的寄存器推入堆棧。在保護現(xiàn)場之后要開中斷 ,以響應(yīng)更高優(yōu)先級的中斷申請。
(3) 中斷服務(wù),即為相應(yīng)的中斷源服務(wù)。
(4) 恢復(fù)現(xiàn)場,用堆棧指令將保護在堆棧中的數(shù)據(jù)彈出來,在恢復(fù)現(xiàn)場前要關(guān)中斷,以防止現(xiàn)場被破壞。在恢復(fù)現(xiàn)場后應(yīng)及時開中斷。
(5) 返回,此時 CPU 將推入到堆棧的斷點地址彈回到程序計數(shù)器,從而使 CPU 繼續(xù)執(zhí)行剛才被中斷的程序。
MCS 51 中斷系統(tǒng)
MCS 51 單片機的中斷系統(tǒng)由與中斷有關(guān)的特殊功能寄存器、中斷入口、順序查詢邏 輯電路組成,其結(jié)構(gòu)如圖 5.1 所示。
圖 5.1 MCS 51 中斷系統(tǒng)結(jié)構(gòu)框圖
中斷源
MCS 51 單片機的中斷系統(tǒng),是 8 位單片機中功能最強的一種 。由圖 5.1 可知,8051 提供了 5 個中斷源(8052 提供了 6 個), 其作用如表 5.1 所示。
8051 的中斷請求分別由特殊功能寄存器 TCON 和 SCON 的相應(yīng)位鎖存。
1.特殊功能寄存器 TCON 中的標志
TCON 為內(nèi)部定時器/計數(shù)器 T0 、T1 的控制寄存器,其字節(jié)地址為 88H ,位地址為 88H~8FH ,圖 5.2 示出了 TCON 各位的定義。
圖 5.2 中各位的作用如下:
TF1 :內(nèi)部定時器 1 溢出標志 。當定時器/計數(shù)器溢出時,由硬件置位 ,申請中斷,進入中斷服務(wù)后被硬件自動清除。
TR1 :內(nèi)部定時器 1 運行控制位。靠軟件置位或清除,置位時,定時器/計數(shù)器接通工作,清除時停止工作。
TF0 :內(nèi)部定時器 0 溢出標志。其作用類同于 TF1 。
TR0 :內(nèi)部定時器 1 運行控制位。其作用類同于 TR1 。
IE1 :外部中斷 1 請求標志。檢測到在 INT1引腳上出現(xiàn)的外部中斷信號有效時,由硬件置位,請求中斷。進入中斷服務(wù)后被硬件自動清除。
IT1 :外部中斷 1 類型控制位??寇浖碓O(shè)置或清除,以控制外部中斷的觸發(fā)類型。 IT1=1 時是下降沿觸發(fā),IT1=0 時是低電平觸發(fā)。
IE0:外部中斷 0 請求標志。其作用類同于 IE1 。
IT0:外部中斷 0 類型控制位。其作用類同于 IT1 。
2.特殊功能寄存器 SCON
SCON 用于控制和監(jiān)視串行口的工作狀態(tài) 。其字節(jié)地址為 98H ,位地址為 98H ~ 9FH ,各位定義見圖 5.3 。
圖 5.3 中各位的作用如下:
SM0 和 SM1 :串行口操作模式選擇位;
SM2 :多機通信使能位;
REN:允許接收位;
TB8:發(fā)送數(shù)據(jù)位 8 ;
RB8:接收數(shù)據(jù)位 8 ;
以上 6 位定義將在串行接口中說明。
TI :串行口發(fā)送中斷標志。串行口每發(fā)送完一幀數(shù)據(jù)后,硬件就置位 TI 。CPU 響應(yīng)中 斷后不會自動清零 TI,需由軟件來完成。
RI :串行口接收中斷標志 。串行口每接收完一幀數(shù)據(jù)后,硬件就置位 RI 。CPU 響應(yīng)中 斷后不會自動清零 RI,需由軟件來完成。