版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第4 4章章 中斷系統(tǒng)中斷系統(tǒng)中斷響中斷響應(yīng)應(yīng)中斷級(jí)別中斷級(jí)別知識(shí)點(diǎn):知識(shí)點(diǎn):中斷控中斷控制制中斷源中斷源 先通過一個(gè)生活常識(shí),啟發(fā)對(duì)中斷的認(rèn)識(shí):先通過一個(gè)生活常識(shí),啟發(fā)對(duì)中斷的認(rèn)識(shí): 當(dāng)你正在家里上網(wǎng)聊天時(shí),電話鈴響了當(dāng)你正在家里上網(wǎng)聊天時(shí),電話鈴響了,你會(huì),你會(huì)暫時(shí)停止聊天而去接電話,暫時(shí)停止聊天而去接電話,正在接電話的時(shí)候有正在接電話的時(shí)候有人按門鈴人按門鈴,你不得不放下電話去開門,然后繼續(xù),你不得不放下電話去開門,然后繼續(xù)接電話,電話接完后再回到網(wǎng)上繼續(xù)聊天。接電話,電話接完后再回到網(wǎng)上繼續(xù)聊天。 這里的網(wǎng)上聊天是這里的網(wǎng)上聊天是當(dāng)前任務(wù)當(dāng)前任務(wù) 電話鈴響和門鈴響都屬于電話鈴響和門鈴
2、響都屬于中斷源中斷源 先處理門鈴還是電話鈴是先處理門鈴還是電話鈴是中斷級(jí)別中斷級(jí)別 接電話和開門是接電話和開門是中斷響應(yīng)中斷響應(yīng) 對(duì)于這三件事的孰緩孰急的判斷為對(duì)于這三件事的孰緩孰急的判斷為中斷控制。中斷控制。 計(jì)算機(jī)中的中斷概念計(jì)算機(jī)中的中斷概念中斷中斷是指由于某種隨機(jī)事件的發(fā)生,是指由于某種隨機(jī)事件的發(fā)生,計(jì)算機(jī)暫停現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去計(jì)算機(jī)暫?,F(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序,以處理發(fā)生的事件,執(zhí)行另一程序,以處理發(fā)生的事件,處理完畢后又自動(dòng)返回原來的程序處理完畢后又自動(dòng)返回原來的程序繼續(xù)運(yùn)行。繼續(xù)運(yùn)行。CPUCPU現(xiàn)行運(yùn)行的程序現(xiàn)行運(yùn)行的程序稱為稱為主程序主程序。處理隨機(jī)事件的程序處理
3、隨機(jī)事件的程序稱為稱為中斷服務(wù)中斷服務(wù)子程序子程序。 在在CPUCPU與外設(shè)交換信息時(shí),若用查詢的方與外設(shè)交換信息時(shí),若用查詢的方式,則式,則CPUCPU會(huì)浪費(fèi)較多的時(shí)間去等待外設(shè),使會(huì)浪費(fèi)較多的時(shí)間去等待外設(shè),使CPUCPU的工作效率較低,這就是快速的的工作效率較低,這就是快速的CPUCPU和慢速和慢速的外設(shè)之間的矛盾,為了解決這個(gè)問題,引入的外設(shè)之間的矛盾,為了解決這個(gè)問題,引入了中斷的概念,引入中斷后有以下優(yōu)點(diǎn):了中斷的概念,引入中斷后有以下優(yōu)點(diǎn): 1 1同步工作同步工作 2 2實(shí)時(shí)處理實(shí)時(shí)處理 3 3故障處理故障處理為為什什么么要要用用中中斷斷 計(jì)算機(jī)有了中斷功能后,就可以使計(jì)算機(jī)有了
4、中斷功能后,就可以使CPU和外設(shè)同和外設(shè)同步工作,步工作,CPU啟動(dòng)外設(shè)工作后,就繼續(xù)執(zhí)行主程序。啟動(dòng)外設(shè)工作后,就繼續(xù)執(zhí)行主程序。 外設(shè)把數(shù)據(jù)準(zhǔn)備好后,發(fā)出中斷請(qǐng)求,請(qǐng)求外設(shè)把數(shù)據(jù)準(zhǔn)備好后,發(fā)出中斷請(qǐng)求,請(qǐng)求CPU中中斷原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行輸入輸出斷原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行輸入輸出(中斷處理中斷處理),中,中斷程序執(zhí)行完后,斷程序執(zhí)行完后,CPU恢復(fù)執(zhí)行主程序,外設(shè)也繼續(xù)恢復(fù)執(zhí)行主程序,外設(shè)也繼續(xù)工作,這樣,工作,這樣,CPU就可指揮多個(gè)外設(shè)同時(shí)工作,大大就可指揮多個(gè)外設(shè)同時(shí)工作,大大提高了提高了CPU的利用率,也提高了輸入輸出速度。的利用率,也提高了輸入輸出速度。 在實(shí)時(shí)控制中,現(xiàn)場(chǎng)采集到
5、的各種數(shù)據(jù)可在實(shí)時(shí)控制中,現(xiàn)場(chǎng)采集到的各種數(shù)據(jù)可在任一時(shí)刻發(fā)出中斷請(qǐng)求,要求在任一時(shí)刻發(fā)出中斷請(qǐng)求,要求CPU處理,若處理,若中斷是開放的,則中斷是開放的,則CPU就可以馬上對(duì)數(shù)據(jù)進(jìn)行就可以馬上對(duì)數(shù)據(jù)進(jìn)行處理。處理。 若計(jì)算機(jī)在運(yùn)行過程中出現(xiàn)了事先預(yù)料不若計(jì)算機(jī)在運(yùn)行過程中出現(xiàn)了事先預(yù)料不到的情況或故障時(shí)到的情況或故障時(shí)(如掉電、存儲(chǔ)出錯(cuò)、溢出等如掉電、存儲(chǔ)出錯(cuò)、溢出等),可以利用中斷系統(tǒng)自行處理,而不必停機(jī)。可以利用中斷系統(tǒng)自行處理,而不必停機(jī)。通常的中斷源有以下幾種通常的中斷源有以下幾種外部輸入輸出設(shè)備,如鍵盤、打印機(jī)等。外部輸入輸出設(shè)備,如鍵盤、打印機(jī)等。 數(shù)據(jù)通信設(shè)備,如雙機(jī)或多機(jī)通信
6、。數(shù)據(jù)通信設(shè)備,如雙機(jī)或多機(jī)通信。定時(shí)時(shí)鐘。定時(shí)時(shí)鐘。故障源,如掉電保護(hù)請(qǐng)求等。故障源,如掉電保護(hù)請(qǐng)求等。為調(diào)試程序而設(shè)置的中斷源。為調(diào)試程序而設(shè)置的中斷源。中中斷斷源源引起中斷的原因,或能發(fā)出中斷申請(qǐng)的來源,稱為中斷源。引起中斷的原因,或能發(fā)出中斷申請(qǐng)的來源,稱為中斷源。 1實(shí)現(xiàn)中斷并返回實(shí)現(xiàn)中斷并返回2能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)3高級(jí)中斷源能中斷低級(jí)中斷源的中斷處理高級(jí)中斷源能中斷低級(jí)中斷源的中斷處理 中中斷斷系系統(tǒng)統(tǒng)的的功功能能 、當(dāng)某一個(gè)中斷源發(fā)出中斷請(qǐng)求時(shí),、當(dāng)某一個(gè)中斷源發(fā)出中斷請(qǐng)求時(shí),CPU應(yīng)決定是應(yīng)決定是否響應(yīng)這個(gè)中斷請(qǐng)求否響應(yīng)這個(gè)中斷請(qǐng)求(當(dāng)當(dāng)CPU正在執(zhí)行更重要的工作
7、時(shí),正在執(zhí)行更重要的工作時(shí),可暫不響應(yīng)中斷可暫不響應(yīng)中斷)。 、若響應(yīng)這個(gè)中斷請(qǐng)求,、若響應(yīng)這個(gè)中斷請(qǐng)求,CPU必須在現(xiàn)行的指令執(zhí)必須在現(xiàn)行的指令執(zhí)行完后,保護(hù)現(xiàn)場(chǎng)和斷點(diǎn),然后轉(zhuǎn)到需要處理的中斷源的行完后,保護(hù)現(xiàn)場(chǎng)和斷點(diǎn),然后轉(zhuǎn)到需要處理的中斷源的服務(wù)程序入口,執(zhí)行中斷服務(wù)程序。服務(wù)程序入口,執(zhí)行中斷服務(wù)程序。 、當(dāng)中斷處理完后再恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn),使、當(dāng)中斷處理完后再恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn),使CPU返回返回去繼續(xù)執(zhí)行主程序。去繼續(xù)執(zhí)行主程序。 通常,在系統(tǒng)中有多個(gè)中斷源,有時(shí)會(huì)出現(xiàn)兩個(gè)或兩通常,在系統(tǒng)中有多個(gè)中斷源,有時(shí)會(huì)出現(xiàn)兩個(gè)或兩個(gè)以上的中斷源同時(shí)提出中斷請(qǐng)求的情況,這時(shí),個(gè)以上的中斷源同時(shí)提出中斷
8、請(qǐng)求的情況,這時(shí),CPUCPU應(yīng)應(yīng)能找到優(yōu)先級(jí)別最高的中斷源,響應(yīng)它的中斷請(qǐng)求,在優(yōu)能找到優(yōu)先級(jí)別最高的中斷源,響應(yīng)它的中斷請(qǐng)求,在優(yōu)先級(jí)別最高的中斷源處理完后,再響應(yīng)級(jí)別較低的中斷源。先級(jí)別最高的中斷源處理完后,再響應(yīng)級(jí)別較低的中斷源。當(dāng)當(dāng)CPUCPU響應(yīng)某一中斷源的請(qǐng)求在進(jìn)行中斷處理時(shí),若有優(yōu)響應(yīng)某一中斷源的請(qǐng)求在進(jìn)行中斷處理時(shí),若有優(yōu)先級(jí)別更高的中斷源發(fā)出中斷請(qǐng)求,則先級(jí)別更高的中斷源發(fā)出中斷請(qǐng)求,則CPUCPU應(yīng)能中斷正在應(yīng)能中斷正在執(zhí)行的中斷服務(wù)程序,保留這個(gè)程序的斷點(diǎn)和現(xiàn)場(chǎng),響應(yīng)執(zhí)行的中斷服務(wù)程序,保留這個(gè)程序的斷點(diǎn)和現(xiàn)場(chǎng),響應(yīng)高級(jí)中斷,在高級(jí)中斷處理完后,再繼續(xù)執(zhí)行被中斷的中高級(jí)
9、中斷,在高級(jí)中斷處理完后,再繼續(xù)執(zhí)行被中斷的中斷服務(wù)程序。若當(dāng)發(fā)出新的中斷請(qǐng)求的中斷源的優(yōu)先級(jí)別斷服務(wù)程序。若當(dāng)發(fā)出新的中斷請(qǐng)求的中斷源的優(yōu)先級(jí)別與正在處理的中斷源同級(jí)或更低時(shí),與正在處理的中斷源同級(jí)或更低時(shí),CPUCPU不響應(yīng)這個(gè)中斷不響應(yīng)這個(gè)中斷請(qǐng)求,直到正在處理的中斷服務(wù)程序執(zhí)行完后,才去處理請(qǐng)求,直到正在處理的中斷服務(wù)程序執(zhí)行完后,才去處理新的中斷請(qǐng)求。新的中斷請(qǐng)求。 MCS-51中斷系統(tǒng)組成 中斷源中斷源 中斷標(biāo)志中斷標(biāo)志 中斷允許中斷允許 中斷優(yōu)先級(jí)中斷優(yōu)先級(jí) MCS-51MCS-51中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu) 中斷寄存器中斷寄存器 MCS-51MCS-51的中斷系統(tǒng)之中斷源的中斷系
10、統(tǒng)之中斷源8051單片機(jī)有單片機(jī)有5個(gè)中斷請(qǐng)求源個(gè)中斷請(qǐng)求源:?jiǎn)纹瑱C(jī)單片機(jī)INT0或 外部輸入中斷源外部輸入中斷源INT0(P3.2)INT1或 外部輸入中斷源外部輸入中斷源INT1(P3.3)T0 片內(nèi)定時(shí)器片內(nèi)定時(shí)器T0的溢出的溢出T1 片內(nèi)定時(shí)器片內(nèi)定時(shí)器T1的溢出的溢出串行口 片內(nèi)串行口發(fā)送或接收中斷源片內(nèi)串行口發(fā)送或接收中斷源 MCS-51MCS-51的中斷系統(tǒng)之中斷標(biāo)志的中斷系統(tǒng)之中斷標(biāo)志INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 每一個(gè)中斷源都有相應(yīng)的中斷標(biāo)志位每一個(gè)中斷源都有相應(yīng)的中斷標(biāo)志位 某一個(gè)中斷源申請(qǐng)中斷,相應(yīng)中斷標(biāo)志位
11、置某一個(gè)中斷源申請(qǐng)中斷,相應(yīng)中斷標(biāo)志位置1 MCS-51MCS-51的中斷系統(tǒng)之中斷允許的中斷系統(tǒng)之中斷允許INT0INT1T0T1串口IE0TF0IE1TF1TIRI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 EA總中斷允許位,總中斷允許位,EA=1開放所有中斷,開放所有中斷,EA=0,禁止所有中斷;,禁止所有中斷; 某一個(gè)中斷源還有相應(yīng)的中斷允許位,某一個(gè)中斷源還有相應(yīng)的中斷允許位,1允許相應(yīng)中斷源的中斷,允許相應(yīng)中斷源的中斷,0禁禁止相應(yīng)中斷源的中斷。止相應(yīng)中斷源的中斷。中斷允許中斷允許ESET0EX0EX1ET1EA MCS-51MCS-51的中斷系統(tǒng)之中斷優(yōu)先級(jí)的中斷系統(tǒng)之中斷優(yōu)先級(jí)INT0I
12、NT1T0T1串口IE0TF0IE1TF1TISI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)中斷和低優(yōu)先級(jí)中斷,單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)中斷和低優(yōu)先級(jí)中斷,前者優(yōu)先權(quán)高于后者(在程序中設(shè)置,相應(yīng)位前者優(yōu)先權(quán)高于后者(在程序中設(shè)置,相應(yīng)位=1=1,為高優(yōu)先級(jí));,為高優(yōu)先級(jí)); 同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定優(yōu)先級(jí)別(硬件同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定優(yōu)先級(jí)別(硬件形成,無法改變)。形成,無法改變)。中斷允許中斷允許ESET0EX0EX1ET1EA自然優(yōu)先級(jí)自然優(yōu)先級(jí)高低優(yōu)先控制優(yōu)先控制PSPT0PX0PX1PT1MCS-51MCS
13、-51的中斷系統(tǒng)之寄存器的中斷系統(tǒng)之寄存器 TF1 TF0 IE1 IT1 IE0 IT0TCONT1溢出中斷標(biāo)志溢出中斷標(biāo)志(TCON.7): T1啟動(dòng)計(jì)數(shù)后,計(jì)滿溢出由硬件置位TF1=1,向CPU請(qǐng)求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清0。也可用軟件查詢?cè)摌?biāo)志,并由軟件清0。76543210TCON寄存器T0和T1控制寄存器 TF1 TF0 IE1 IT1 IE0 IT0TCON 88H外部中斷外部中斷INT1中斷標(biāo)志中斷標(biāo)志位位(TCON.3) : IE11,外部中斷1向CPU申請(qǐng)中斷 外部中斷外部中斷INT1觸發(fā)方觸發(fā)方式控制位式控制位(TCON.2): IT1=0,
14、電平觸發(fā)方式 IT1=1, 下降沿觸發(fā)方式76543210注意:該寄存器可以位尋址注意:該寄存器可以位尋址 TI (SCON.1)串行發(fā)送中斷標(biāo)志。 RI (SCON.0)串行接收中斷標(biāo)志。 TI RISCON寄存器串行口控制寄存器SCON 98H76543210注意:該寄存器可以位尋址注意:該寄存器可以位尋址IE寄存器中斷允許寄存器 IE A8H EA ESET1EX1 ET0EX0例:允許定時(shí)器T0中斷: SETB EA SETB ET0 或 MOV IE,#82H76543210注意:該寄存器可以位尋址 5151單片機(jī)有兩個(gè)中斷優(yōu)先級(jí)單片機(jī)有兩個(gè)中斷優(yōu)先級(jí)高級(jí)和低級(jí)高級(jí)和低級(jí) 專用寄存器
15、專用寄存器IPIP為中斷優(yōu)先級(jí)寄存器,用戶可用軟件設(shè)定為中斷優(yōu)先級(jí)寄存器,用戶可用軟件設(shè)定 相應(yīng)位為相應(yīng)位為1 1,對(duì)應(yīng)的中斷源被設(shè)置為,對(duì)應(yīng)的中斷源被設(shè)置為高優(yōu)先級(jí)高優(yōu)先級(jí),相應(yīng)位為,相應(yīng)位為0 0,對(duì),對(duì)應(yīng)的中斷源被設(shè)置為低優(yōu)先級(jí)應(yīng)的中斷源被設(shè)置為低優(yōu)先級(jí) 系統(tǒng)復(fù)位時(shí),均為低優(yōu)先級(jí)系統(tǒng)復(fù)位時(shí),均為低優(yōu)先級(jí) 該寄存器可以位尋址該寄存器可以位尋址 PSPT1PX1PT0PX0IP寄存器中斷優(yōu)先級(jí)寄存器 IP B8H 765432101IT0 0IT0 1INT0T0T1TXRXTCONIEEX0EAIPPX01111100000PSPT1PX1PT0SCON中斷標(biāo)志源允許總允許硬件查詢矢量地址
16、矢量地址自然優(yōu)先級(jí)自然優(yōu)先級(jí)IT1 0IT1 1INT1IE0TF0IE1TF1TIRIEX0EX11ET1ES優(yōu)先級(jí)高級(jí)中斷請(qǐng)求PC低級(jí)中斷請(qǐng)求PC中斷處理過程 中斷處理過程分為三個(gè)階段:中斷處理過程分為三個(gè)階段:中斷響應(yīng)、中斷中斷響應(yīng)、中斷處理和中斷返回。處理和中斷返回。 中斷響應(yīng)中斷響應(yīng) 中斷處理中斷處理( (又稱中斷服務(wù)又稱中斷服務(wù)) ) 中斷返回中斷返回 中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除 中斷響應(yīng)中斷返回中斷響應(yīng)中斷響應(yīng)( (以外部中斷以外部中斷0 0為例為例) )中斷響應(yīng):在滿足中斷響應(yīng):在滿足CPUCPU的中斷的中斷響應(yīng)條件響應(yīng)條件之后,之后,CPUCPU對(duì)中斷源的對(duì)中斷源的中斷請(qǐng)求
17、予以處理。中斷請(qǐng)求予以處理。響應(yīng)條件:響應(yīng)條件:有中斷源發(fā)出中斷請(qǐng)求有中斷源發(fā)出中斷請(qǐng)求EA=1EA=1相應(yīng)中斷源的中斷允許位為相應(yīng)中斷源的中斷允許位為1 1中斷響應(yīng)斷點(diǎn)地址中斷服務(wù)中斷服務(wù)子程序的子程序的入口地址入口地址ORG 0003HAJMP ZD0ZD0中斷響應(yīng)中斷響應(yīng)( (以外部中斷以外部中斷0 0為例為例) )中斷響應(yīng)過程:中斷響應(yīng)過程: 硬件生成長(zhǎng)調(diào)用指令硬件生成長(zhǎng)調(diào)用指令LCALL addr16保護(hù)斷點(diǎn)地址;保護(hù)斷點(diǎn)地址;把程序轉(zhuǎn)向中斷服務(wù)程序的把程序轉(zhuǎn)向中斷服務(wù)程序的入口地址入口地址(通常稱矢量通常稱矢量地址地址)。 特別注意:這些工作是硬件自動(dòng)完成的!特別注意:這些工作是硬
18、件自動(dòng)完成的!程序存儲(chǔ)器程序存儲(chǔ)器ROMROM0000H:復(fù)位后,程序入口地址(PC=0000H)0023H:串行口中斷入口0003H:外部中斷0入口000BH:定時(shí)器0溢出中斷入口0013H:外部中斷1入口001BH:定時(shí)器1溢出中斷入口使用時(shí),通常在這些入口地址處存放一條跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去!中斷入口地址中斷入口地址( (矢量地址矢量地址):):程序存儲(chǔ)器程序存儲(chǔ)器ROMROM0000H:復(fù)位后,程序的入口地址復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口串行口中斷入口0003H:外部中斷外部中斷0入口入口000BH:定時(shí)器定時(shí)器0
19、溢出中斷入口溢出中斷入口0013H:外部中斷外部中斷1入口入口001BH:定時(shí)器定時(shí)器1溢出中斷入口溢出中斷入口002AHAJMP MAINAJMP NT0AJMP WINT0AJMP WINT1AJMP NT0AJMP SEIR中斷標(biāo)志的撤除 定時(shí)/計(jì)數(shù)器中斷請(qǐng)求的撤銷硬件自動(dòng)撤銷 外部中斷請(qǐng)求的撤銷 邊沿觸發(fā)方式: 中斷標(biāo)志位(IE0或IE1)的清零:硬件自動(dòng)完成 外部中斷信號(hào)的撤銷:自動(dòng)撤銷 電平方式: 中斷標(biāo)志位(IE0或IE1)的清零:硬件自動(dòng)完成 外部中斷信號(hào)的撤銷:系統(tǒng)中增加電路(見書),軟硬件相結(jié)合 串行口中斷請(qǐng)求的撤銷:軟件撤銷中斷服務(wù)及返回中斷服務(wù)及返回中斷服務(wù):從中斷服務(wù)
20、的第一條指令開始帶返回指令為止,注意以下幾點(diǎn)中斷入口地址內(nèi)放一條長(zhǎng)轉(zhuǎn)移指令LJMP執(zhí)行中斷服務(wù)子程序時(shí)要注意保護(hù)現(xiàn)場(chǎng)執(zhí)行當(dāng)前中斷時(shí)若要禁止高優(yōu)先級(jí)中斷,應(yīng)先軟件關(guān)閉CPU中斷,在中斷返回時(shí)再開放中斷中斷返回:最后一條指令必須為RETI中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間 CPUCPU不是在任何情況下都對(duì)中斷請(qǐng)求立即響不是在任何情況下都對(duì)中斷請(qǐng)求立即響應(yīng),不同的情況對(duì)中斷響應(yīng)的時(shí)間也不同。應(yīng),不同的情況對(duì)中斷響應(yīng)的時(shí)間也不同。 例如:外部中斷請(qǐng)求信號(hào)的電平在每個(gè)機(jī)器例如:外部中斷請(qǐng)求信號(hào)的電平在每個(gè)機(jī)器周期的周期的S5P2S5P2期間,經(jīng)反相后鎖存到期間,經(jīng)反相后鎖存到IE0IE0或或IE1IE1標(biāo)志標(biāo)志位
21、,位,CPUCPU在下一個(gè)機(jī)器周期才會(huì)查詢到這些值,這在下一個(gè)機(jī)器周期才會(huì)查詢到這些值,這時(shí)如果滿足響應(yīng)條件,時(shí)如果滿足響應(yīng)條件,CPUCPU響應(yīng)中斷時(shí),需執(zhí)行一響應(yīng)中斷時(shí),需執(zhí)行一條兩個(gè)機(jī)器周期的調(diào)用指令,以轉(zhuǎn)到相應(yīng)的中斷條兩個(gè)機(jī)器周期的調(diào)用指令,以轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序入口。服務(wù)程序入口。 這樣,從外部中斷請(qǐng)求有效到開始執(zhí)行中斷這樣,從外部中斷請(qǐng)求有效到開始執(zhí)行中斷服務(wù)程序的第一條指令,至少需要服務(wù)程序的第一條指令,至少需要3 3個(gè)機(jī)器周期。個(gè)機(jī)器周期。 如果在申請(qǐng)中斷時(shí),如果在申請(qǐng)中斷時(shí),CPUCPU正在處理最長(zhǎng)指令正在處理最長(zhǎng)指令( (如乘、除法指令如乘、除法指令) ),則額外等待時(shí)間
22、增加,則額外等待時(shí)間增加3 3個(gè)機(jī)器個(gè)機(jī)器周期;若正在執(zhí)行周期;若正在執(zhí)行RETIRETI或訪問或訪問IEIE、IPIP指令,則額指令,則額外等待時(shí)間又增加外等待時(shí)間又增加2 2個(gè)機(jī)器周期。個(gè)機(jī)器周期。 這樣,若系統(tǒng)中只有一個(gè)中斷源,則響應(yīng)時(shí)這樣,若系統(tǒng)中只有一個(gè)中斷源,則響應(yīng)時(shí)間為間為3 38 8個(gè)機(jī)器周期。個(gè)機(jī)器周期。 如果系統(tǒng)中有多個(gè)中斷源并且同時(shí)請(qǐng)求中斷如果系統(tǒng)中有多個(gè)中斷源并且同時(shí)請(qǐng)求中斷時(shí),則最低級(jí)的中斷的響應(yīng)時(shí)間會(huì)更長(zhǎng)。時(shí),則最低級(jí)的中斷的響應(yīng)時(shí)間會(huì)更長(zhǎng)。中斷服務(wù)程序的設(shè)計(jì)中斷服務(wù)程序的設(shè)計(jì)中斷程序設(shè)計(jì)的基本任務(wù):中斷程序設(shè)計(jì)的基本任務(wù): 設(shè)置中斷允許控制寄存器設(shè)置中斷允許控制寄
23、存器IE 設(shè)置中斷優(yōu)先級(jí)寄存器設(shè)置中斷優(yōu)先級(jí)寄存器IP 若是外部中斷源,需要設(shè)置中斷請(qǐng)求的觸若是外部中斷源,需要設(shè)置中斷請(qǐng)求的觸發(fā)方式發(fā)方式IT0或或IT1 編寫中斷服務(wù)程序,處理中斷請(qǐng)求編寫中斷服務(wù)程序,處理中斷請(qǐng)求注意:前三點(diǎn)一般放在注意:前三點(diǎn)一般放在初始化程序段初始化程序段中中例:多個(gè)故障顯示報(bào)警例:多個(gè)故障顯示報(bào)警 當(dāng)系統(tǒng)無故障時(shí),當(dāng)系統(tǒng)無故障時(shí),4個(gè)故障源輸入端個(gè)故障源輸入端X1X4全為低電平,顯示全為低電平,顯示燈全滅,當(dāng)某部分出現(xiàn)燈全滅,當(dāng)某部分出現(xiàn)故障,其對(duì)應(yīng)的輸入由故障,其對(duì)應(yīng)的輸入由低電平變?yōu)楦唠娖剑瑥牡碗娖阶優(yōu)楦唠娖?,從而引起而引起MCS-51單片機(jī)單片機(jī)中斷,中斷程序
24、的任務(wù)中斷,中斷程序的任務(wù)是判定故障源,并用對(duì)是判定故障源,并用對(duì)應(yīng)的發(fā)光二極管應(yīng)的發(fā)光二極管LED1LED4進(jìn)行顯進(jìn)行顯示。示。100編程如下:編程如下: ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 0003H ORG 0003H AJMP SERVE AJMP SERVE;外部中斷服務(wù)程序;外部中斷服務(wù)程序MAIN: ORL P1,#0FFH ;燈全滅,準(zhǔn)備讀入;燈全滅,準(zhǔn)備讀入 SETB IT0 ;選擇邊沿方式;選擇邊沿方式 SETB EX0 ;允許;允許INT0中斷中斷 SETB EA ;CPU開中斷開中斷 AJMP $ ;等待中斷;等待中斷S
25、ERVE:JNB P1.3,Ll CLR P1.4 ;若;若X1有故障,有故障,LEDl亮亮L1: JNB P1.2,L2 CLR P1.5 ;若;若X2有故障,有故障, LED2亮亮L2: JNB P1.1,L3 CLR P1.6 ;若;若X3有故障有故障 ,LED3亮亮L3: JNB P1.0 L4 CLR P1.7 ;若;若X4有故障,有故障, LED4亮亮L4: RETI1 1、中斷究竟要解決什么問題?、中斷究竟要解決什么問題?2 2、就你的理解,用圖示方法描述主程序與中斷服務(wù)程序、就你的理解,用圖示方法描述主程序與中斷服務(wù)程序之間的關(guān)系。之間的關(guān)系。3 3、熟記、熟記5 5個(gè)中斷入口
26、地址。個(gè)中斷入口地址。主要解決快速的主要解決快速的CPU和慢速的外設(shè)之間的矛盾,以提高和慢速的外設(shè)之間的矛盾,以提高CPU的工作效率。的工作效率。0003H、000BH、0013H、001BH、0023HRETI 子程序SUB 主程序MAINLCALL SUB 結(jié)束 1 1、利用定時(shí)器作外部中斷源。、利用定時(shí)器作外部中斷源。 MCS-51MCS-51單片機(jī)有兩個(gè)定時(shí)器計(jì)數(shù)器,當(dāng)單片機(jī)有兩個(gè)定時(shí)器計(jì)數(shù)器,當(dāng)它們選擇計(jì)數(shù)工作方式時(shí),它們選擇計(jì)數(shù)工作方式時(shí),T0T0或或T1T1引腳上的負(fù)跳引腳上的負(fù)跳變將使變將使T0T0或或T1T1計(jì)數(shù)器加計(jì)數(shù)器加1 1計(jì)數(shù),故若把定時(shí)器計(jì)計(jì)數(shù),故若把定時(shí)器計(jì)數(shù)器設(shè)
27、置成計(jì)數(shù)工作方式,計(jì)數(shù)初始設(shè)定為滿量數(shù)器設(shè)置成計(jì)數(shù)工作方式,計(jì)數(shù)初始設(shè)定為滿量程,一旦外部從計(jì)數(shù)引腳輸入一個(gè)負(fù)跳變信號(hào),程,一旦外部從計(jì)數(shù)引腳輸入一個(gè)負(fù)跳變信號(hào),計(jì)數(shù)器計(jì)數(shù)器T0T0或或T1T1加加1 1產(chǎn)生溢出中斷,這樣,便可把外產(chǎn)生溢出中斷,這樣,便可把外部計(jì)數(shù)輸入端部計(jì)數(shù)輸入端T0(P3T0(P34)4)或或T1(P3T1(P35)5)擴(kuò)充作為外擴(kuò)充作為外部中斷源輸入。部中斷源輸入。中斷應(yīng)用舉例中斷應(yīng)用舉例 例如:將例如:將T1T1設(shè)置為工作方式設(shè)置為工作方式2(2(自動(dòng)恢復(fù)常數(shù)自動(dòng)恢復(fù)常數(shù)) )及外部計(jì)數(shù)方式,計(jì)數(shù)器及外部計(jì)數(shù)方式,計(jì)數(shù)器THlTHl、TLlTLl初值設(shè)置為初值設(shè)置為F
28、FHFFH,當(dāng)計(jì)數(shù)輸入端當(dāng)計(jì)數(shù)輸入端T1(P3T1(P35)5)發(fā)生一次負(fù)跳變,計(jì)數(shù)器發(fā)生一次負(fù)跳變,計(jì)數(shù)器加加1 1并產(chǎn)生溢出標(biāo)志,向并產(chǎn)生溢出標(biāo)志,向CPUCPU申請(qǐng)中斷,中斷處理申請(qǐng)中斷,中斷處理程序使累加器程序使累加器A A內(nèi)容加內(nèi)容加1 1,送,送P1P1口輸出,然后返回口輸出,然后返回主程序。主程序。TMOD=60H 為了讓為了讓T1 的輸入端的輸入端(P3(P35)5)輸入輸入1個(gè)脈沖,個(gè)脈沖,T1發(fā)出中斷發(fā)出中斷請(qǐng)求,計(jì)數(shù)初值應(yīng)設(shè)置成請(qǐng)求,計(jì)數(shù)初值應(yīng)設(shè)置成FFH,即,即TL1=FFH。 設(shè)置初值的方法是:設(shè)置初值的方法是:MOV TL1,#0FFH 由于由于T1的工作方式為方式
29、的工作方式為方式2,TL1計(jì)數(shù)滿后計(jì)數(shù)滿后TH1的值是自的值是自動(dòng)裝入動(dòng)裝入TL1,所以,所以TH1也應(yīng)設(shè)置成也應(yīng)設(shè)置成FFH,即,即TH1=FFH。 設(shè)置初值的方法是:設(shè)置初值的方法是:MOV TH1,#0FFH啟動(dòng)啟動(dòng)T1T1計(jì)數(shù)的方法是計(jì)數(shù)的方法是SETB TRl允許允許T1T1中斷的方法是中斷的方法是SETB ET1 CPU CPU 開中斷的方法是開中斷的方法是SETB EA編程如下:編程如下: ORG 0000H ORG 0000H ;用戶程序首址;用戶程序首址 AJMP MAIN AJMP MAIN ;轉(zhuǎn)主程序;轉(zhuǎn)主程序 ORG 001BHORG 001BH AJMP INT AJ
30、MP INT ;轉(zhuǎn)中斷服務(wù)程序;轉(zhuǎn)中斷服務(wù)程序 ORG 1FF2HORG 1FF2HMAINMAIN: MOV SPMOV SP,#53H #53H ;堆棧指針賦初值;堆棧指針賦初值 MOV TMODMOV TMOD,#60H #60H ;T1T1方式方式2 2,計(jì)數(shù),計(jì)數(shù) MOV T L1MOV T L1,#0FFH #0FFH ;送常數(shù);送常數(shù) MOV TH1MOV TH1,#0FFH#0FFH SETB TRl SETB TRl ;啟動(dòng);啟動(dòng)T1T1計(jì)數(shù)計(jì)數(shù) SETB ET1 SETB ET1 ;允許;允許T1T1中斷中斷 SETB EA SETB EA ;CPUCPU開中斷開中斷LOOPLOOP: SJMP LOOP SJMP LOOP ;等待;等待 ORG 3000HORG 3000HINTINT: INC A INC A ;T1T1中斷處理程序中斷處理程序 MOV P1MOV P1,A A RETI RETI ;中斷返回;中斷返回 2 2、利用定時(shí)器、利用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年消防通風(fēng)施工項(xiàng)目合作合同版B版
- 美容院香薰師聘用合同模板
- 高速公路照明系統(tǒng)線路施工合同
- 臨時(shí)人力資源專員聘用合同模板
- 臨時(shí)工聘用合同簽訂要點(diǎn)
- 保健品公司甲方代表招聘協(xié)議
- 棒球場(chǎng)個(gè)人車位租賃合同范本
- 居民社區(qū)背景音樂廣播安裝合同
- 環(huán)保企業(yè)聘用合同違約金上限
- 二手車市場(chǎng)地坪漆施工協(xié)議
- 零基礎(chǔ)的住宅和城市設(shè)計(jì)智慧樹知到答案章節(jié)測(cè)試2023年同濟(jì)大學(xué)
- 2022年湖北省武漢市中考英語試卷及答案
- casio-5800p程序集錦(卡西歐5800編程計(jì)算機(jī))
- 酒店安全整改報(bào)告
- 陳淑惠中文網(wǎng)絡(luò)成癮量表
- 先找財(cái)源還是先找人源財(cái)源源
- 黑布林英語 Can I play閱讀課件
- 《智能家居系統(tǒng)設(shè)計(jì)開題報(bào)告(含提綱)》
- GA/T 1175-2014軟件相似性檢驗(yàn)技術(shù)方法
- 拒絕毒品珍愛生命
- 微服務(wù)架構(gòu)原理和設(shè)計(jì)方法課件
評(píng)論
0/150
提交評(píng)論