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