第5章89C51的中斷系統(tǒng)_第1頁(yè)
第5章89C51的中斷系統(tǒng)_第2頁(yè)
第5章89C51的中斷系統(tǒng)_第3頁(yè)
第5章89C51的中斷系統(tǒng)_第4頁(yè)
第5章89C51的中斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 CPU處理事件的過(guò)程稱(chēng)為處理事件的過(guò)程稱(chēng)為CPU的的中斷響應(yīng)過(guò)中斷響應(yīng)過(guò)程程。 對(duì)事件整個(gè)處理過(guò)程稱(chēng)為對(duì)事件整個(gè)處理過(guò)程稱(chēng)為中斷處理(或中斷中斷處理(或中斷服務(wù))服務(wù))。 能夠?qū)崿F(xiàn)中斷處理的功能部件稱(chēng)為能夠?qū)崿F(xiàn)中斷處理的功能部件稱(chēng)為中斷系統(tǒng)。中斷系統(tǒng)。 產(chǎn)生中斷請(qǐng)求的源稱(chēng)為產(chǎn)生中斷請(qǐng)求的源稱(chēng)為中斷請(qǐng)求源中斷請(qǐng)求源。 中斷源向中斷源向CPU提出的處理請(qǐng)求稱(chēng)為提出的處理請(qǐng)求稱(chēng)為中斷請(qǐng)求中斷請(qǐng)求(或(或中斷申請(qǐng)中斷申請(qǐng))。)。 CPU完成中斷服務(wù)程序,繼續(xù)執(zhí)行被中斷的完成中斷服務(wù)程序,繼續(xù)執(zhí)行被中斷的主程序稱(chēng)為主程序稱(chēng)為中斷返回中斷返回。 89C51的中斷系統(tǒng):的中斷系統(tǒng): 五個(gè)中斷源五個(gè)中斷源

2、兩個(gè)中斷優(yōu)先級(jí)兩個(gè)中斷優(yōu)先級(jí) 可實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套可實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套 每一個(gè)中斷源可由軟件獨(dú)立地控制為允許中斷或關(guān)每一個(gè)中斷源可由軟件獨(dú)立地控制為允許中斷或關(guān)中斷狀態(tài);每一個(gè)中斷源的中斷級(jí)別可由軟件來(lái)設(shè)置。中斷狀態(tài);每一個(gè)中斷源的中斷級(jí)別可由軟件來(lái)設(shè)置。CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中斷源中斷源中斷標(biāo)志位中斷標(biāo)志位 單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)中斷和單片機(jī)中有兩個(gè)中斷優(yōu)先級(jí),即高優(yōu)先級(jí)中斷和低優(yōu)先級(jí)中斷,前者優(yōu)先權(quán)高于后者(低優(yōu)先級(jí)中斷,前者優(yōu)先權(quán)高于后者(可軟件設(shè)置可軟件設(shè)置,在程序中設(shè)置,相應(yīng)位在程序中設(shè)置,相應(yīng)位=1=1,為

3、高優(yōu)先級(jí));,為高優(yōu)先級(jí)); 同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定同一優(yōu)先級(jí)別的中斷源按照自然優(yōu)先級(jí)順序確定優(yōu)先級(jí)別(優(yōu)先級(jí)別(硬件形成硬件形成,無(wú)法改變)。,無(wú)法改變)。中斷允許中斷允許ESET0EX0EX1ET1EA自然優(yōu)先級(jí)自然優(yōu)先級(jí)高低優(yōu)先控制優(yōu)先控制PSPT0PX0PX1PT1 89C51的中斷系統(tǒng)結(jié)構(gòu)圖的中斷系統(tǒng)結(jié)構(gòu)圖中斷標(biāo)中斷標(biāo)志位志位中斷源中斷源允許允許總允許總允許中斷優(yōu)中斷優(yōu)先級(jí)先級(jí)89C51單片機(jī)有單片機(jī)有5個(gè)個(gè)中斷請(qǐng)求源中斷請(qǐng)求源: 外部輸入中斷源外部輸入中斷源INT0(P3.2),中斷請(qǐng)求標(biāo)志為,中斷請(qǐng)求標(biāo)志為IE0 外部輸入中斷源外部輸入中斷源INT1(P3.3

4、),中斷請(qǐng)求標(biāo)志為中斷請(qǐng)求標(biāo)志為IE1 定時(shí)器定時(shí)器T0的溢出的溢出,中斷請(qǐng)求標(biāo)志為,中斷請(qǐng)求標(biāo)志為T(mén)F0 定時(shí)器定時(shí)器T1的溢出的溢出,中斷請(qǐng)求標(biāo)志為,中斷請(qǐng)求標(biāo)志為T(mén)F1 串行口發(fā)送或接收中斷源串行口發(fā)送或接收中斷源,中斷請(qǐng)求標(biāo)志為發(fā)送中斷,中斷請(qǐng)求標(biāo)志為發(fā)送中斷TI或接收中斷或接收中斷RI中斷請(qǐng)求源的中斷請(qǐng)求標(biāo)志位分別由中斷請(qǐng)求源的中斷請(qǐng)求標(biāo)志位分別由TCON和和SCON的相應(yīng)位鎖定的相應(yīng)位鎖定 TCON為定時(shí)器為定時(shí)器/計(jì)數(shù)器的控制寄存器,字節(jié)地址為計(jì)數(shù)器的控制寄存器,字節(jié)地址為88H SCON為串口控制寄存器,字節(jié)地址為為串口控制寄存器,字節(jié)地址為98H TCONlIT0:外部中斷:

5、外部中斷0的中斷觸發(fā)方式控制位。的中斷觸發(fā)方式控制位。lIT0=0時(shí),外部中斷時(shí),外部中斷0程控為電平觸發(fā)方式。程控為電平觸發(fā)方式。lIT0=1時(shí),外部中斷時(shí),外部中斷0程控為邊沿觸發(fā)方式。程控為邊沿觸發(fā)方式。 TCONlIE0:外部中斷:外部中斷0的中斷請(qǐng)求標(biāo)志。的中斷請(qǐng)求標(biāo)志。 INT1(P3.2)l當(dāng)當(dāng)IT0=0,CPU在每一個(gè)機(jī)器周期在每一個(gè)機(jī)器周期S5P2期間采樣外期間采樣外部中斷請(qǐng)求引腳的輸入電平。若外部中斷部中斷請(qǐng)求引腳的輸入電平。若外部中斷0請(qǐng)求為低請(qǐng)求為低電平,則使電平,則使IE0置置1;若為高電平,則使;若為高電平,則使IE0清清0l當(dāng)當(dāng)IT0=1,如果在相繼的兩個(gè)機(jī)器周期

6、采樣過(guò)程中,如果在相繼的兩個(gè)機(jī)器周期采樣過(guò)程中,一個(gè)機(jī)器周期采樣到外部中斷一個(gè)機(jī)器周期采樣到外部中斷0請(qǐng)求引腳為高電平,請(qǐng)求引腳為高電平,接著的下一個(gè)機(jī)器周期采樣到為低電平(負(fù)脈沖寬度接著的下一個(gè)機(jī)器周期采樣到為低電平(負(fù)脈沖寬度只是保持只是保持12個(gè)時(shí)鐘周期),則使個(gè)時(shí)鐘周期),則使IE0置置1。直到。直到CPU響應(yīng)該中斷時(shí),才由硬件使響應(yīng)該中斷時(shí),才由硬件使IE1清清0lSETB IT0 TCONlTF0:定時(shí)器:定時(shí)器0的溢出中斷標(biāo)志。的溢出中斷標(biāo)志。lT0被啟動(dòng)計(jì)數(shù)后,從初值做加被啟動(dòng)計(jì)數(shù)后,從初值做加1計(jì)數(shù),計(jì)滿(mǎn)溢出后由計(jì)數(shù),計(jì)滿(mǎn)溢出后由硬件置位硬件置位TF0,同時(shí)向,同時(shí)向CPU發(fā)

7、出中斷請(qǐng)求,此標(biāo)志一發(fā)出中斷請(qǐng)求,此標(biāo)志一直保持到直保持到CPU響應(yīng)中斷后才由硬件自動(dòng)清響應(yīng)中斷后才由硬件自動(dòng)清0。也可由。也可由軟件查詢(xún)?cè)摌?biāo)志,并由軟件清軟件查詢(xún)?cè)摌?biāo)志,并由軟件清0。l當(dāng)單片機(jī)復(fù)位后,當(dāng)單片機(jī)復(fù)位后,TCON被清被清0,則,則CPU關(guān)中斷,關(guān)中斷,所有中斷請(qǐng)求被禁止。所有中斷請(qǐng)求被禁止。 SCONlTI串行口發(fā)送中斷請(qǐng)求標(biāo)志位串行口發(fā)送中斷請(qǐng)求標(biāo)志位l當(dāng)當(dāng)CPU將一個(gè)要發(fā)送的數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器時(shí),將一個(gè)要發(fā)送的數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)發(fā)送。每發(fā)送完一個(gè)串行幀,硬件使就啟動(dòng)發(fā)送。每發(fā)送完一個(gè)串行幀,硬件使TI自動(dòng)置自動(dòng)置1l注意:當(dāng)注意:當(dāng)CPU響應(yīng)中斷時(shí),響

8、應(yīng)中斷時(shí),TI不能由硬件清不能由硬件清0,必須由,必須由軟件清軟件清0。 SCONlRI串行口接收中斷請(qǐng)求標(biāo)志位串行口接收中斷請(qǐng)求標(biāo)志位l當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,硬當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,硬件使件使RI自動(dòng)置自動(dòng)置1。同樣,。同樣,RI必須由軟件清必須由軟件清0l串行中斷請(qǐng)求由串行中斷請(qǐng)求由TI和和RI的邏輯或得到,即無(wú)論是發(fā)送的邏輯或得到,即無(wú)論是發(fā)送標(biāo)志標(biāo)志TI還是接收標(biāo)志還是接收標(biāo)志RI,都會(huì)產(chǎn)生串行中斷請(qǐng)求。,都會(huì)產(chǎn)生串行中斷請(qǐng)求。l中斷優(yōu)先級(jí)管理遵循的基本原則是:中斷優(yōu)先級(jí)管理遵循的基本原則是:l(1)低優(yōu)先級(jí)可被高優(yōu)先級(jí)中斷,反之不能低優(yōu)先級(jí)

9、可被高優(yōu)先級(jí)中斷,反之不能l(2)任何一種中斷,一旦得到響應(yīng),不會(huì)被它的同任何一種中斷,一旦得到響應(yīng),不會(huì)被它的同級(jí)中斷源中斷級(jí)中斷源中斷l(xiāng)中斷系統(tǒng)內(nèi)部設(shè)置了兩個(gè)用戶(hù)不可訪問(wèn)的優(yōu)中斷系統(tǒng)內(nèi)部設(shè)置了兩個(gè)用戶(hù)不可訪問(wèn)的優(yōu)先級(jí)狀態(tài)觸發(fā)器先級(jí)狀態(tài)觸發(fā)器l一個(gè)是高優(yōu)先級(jí)狀態(tài)觸發(fā)器,置一個(gè)是高優(yōu)先級(jí)狀態(tài)觸發(fā)器,置1 1時(shí)表示當(dāng)前服務(wù)時(shí)表示當(dāng)前服務(wù)的中斷是高優(yōu)先級(jí)的,以阻止其他中斷申請(qǐng);的中斷是高優(yōu)先級(jí)的,以阻止其他中斷申請(qǐng);l另一個(gè)是低優(yōu)先級(jí)狀態(tài)觸發(fā)器,置另一個(gè)是低優(yōu)先級(jí)狀態(tài)觸發(fā)器,置1 1時(shí)表示當(dāng)前服時(shí)表示當(dāng)前服務(wù)的中斷是低優(yōu)先級(jí)的,它允許被高優(yōu)先級(jí)的中斷務(wù)的中斷是低優(yōu)先級(jí)的,它允許被高優(yōu)先級(jí)的中斷申請(qǐng)

10、所中斷。申請(qǐng)所中斷。l當(dāng)系統(tǒng)復(fù)位時(shí),當(dāng)系統(tǒng)復(fù)位時(shí),IP寄存器被清寄存器被清0,將,將5個(gè)中個(gè)中斷源均設(shè)置為低優(yōu)先級(jí)中斷。斷源均設(shè)置為低優(yōu)先級(jí)中斷。l如果同一級(jí)的幾個(gè)中斷源同時(shí)向如果同一級(jí)的幾個(gè)中斷源同時(shí)向CPU申請(qǐng)申請(qǐng)中斷,中斷,CPU便通過(guò)內(nèi)部硬件查詢(xún)邏輯按自便通過(guò)內(nèi)部硬件查詢(xún)邏輯按自然優(yōu)先級(jí)決定響應(yīng)順序。然優(yōu)先級(jí)決定響應(yīng)順序。中斷控制允許寄存器中斷控制允許寄存器IE:IE字節(jié)地址為字節(jié)地址為A8H。通過(guò)對(duì)。通過(guò)對(duì)IE的編程寫(xiě)入,控制的編程寫(xiě)入,控制CPU對(duì)中斷源的開(kāi)放或禁止,以及對(duì)每一中斷源是否允許中對(duì)中斷源的開(kāi)放或禁止,以及對(duì)每一中斷源是否允許中斷。斷。lEACPU中斷允許總控制位。中斷

11、允許總控制位。lEA=1,CPU開(kāi)放中斷開(kāi)放中斷.lEA=0,CPU屏蔽所有的中斷請(qǐng)求,即關(guān)中斷。屏蔽所有的中斷請(qǐng)求,即關(guān)中斷。lEX0外部中斷外部中斷0允許位;允許位;lET0定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0中斷允許位;中斷允許位;lEX1外部中斷外部中斷1允許位;允許位;lET1定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1中斷允許位;中斷允許位;lES串行口中斷允許位串行口中斷允許位;lMOV IE,#82H;1000 0010Bl也可以用下面的位操作指令實(shí)現(xiàn):也可以用下面的位操作指令實(shí)現(xiàn):SETB EASETB ET0中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IP:中斷系統(tǒng)具有兩級(jí)中斷優(yōu)先級(jí)管理。每一個(gè)中斷源均可中斷系統(tǒng)

12、具有兩級(jí)中斷優(yōu)先級(jí)管理。每一個(gè)中斷源均可通過(guò)對(duì)中斷優(yōu)先級(jí)寄存器通過(guò)對(duì)中斷優(yōu)先級(jí)寄存器IP的設(shè)置,選擇高優(yōu)先級(jí)中斷或的設(shè)置,選擇高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷,并可實(shí)現(xiàn)二級(jí)中斷嵌套。低優(yōu)先級(jí)中斷,并可實(shí)現(xiàn)二級(jí)中斷嵌套。IP的字節(jié)地址為的字節(jié)地址為0B8H,通過(guò)對(duì),通過(guò)對(duì)IP的編程,可實(shí)現(xiàn)將的編程,可實(shí)現(xiàn)將l個(gè)個(gè)中斷源分別設(shè)置為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷。中斷源分別設(shè)置為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷。lPS串行口中斷優(yōu)先級(jí)設(shè)定位。串行口中斷優(yōu)先級(jí)設(shè)定位。lPS=1,高優(yōu)先級(jí),高優(yōu)先級(jí)lPS=0,低優(yōu)先級(jí),低優(yōu)先級(jí)lPX0 外部中斷外部中斷0優(yōu)先級(jí)設(shè)定位;優(yōu)先級(jí)設(shè)定位;lPT0 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0

13、優(yōu)先級(jí)設(shè)定位優(yōu)先級(jí)設(shè)定位;lPX1 外部中斷外部中斷1優(yōu)先級(jí)設(shè)定位;優(yōu)先級(jí)設(shè)定位;lPT1 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;優(yōu)先級(jí)設(shè)定位;例例: :設(shè)置設(shè)置IPIP寄存器的初始值,使寄存器的初始值,使2 2個(gè)外中斷請(qǐng)求個(gè)外中斷請(qǐng)求為高優(yōu)先級(jí),其它中斷請(qǐng)求為低優(yōu)先級(jí)。為高優(yōu)先級(jí),其它中斷請(qǐng)求為低優(yōu)先級(jí)。(1)用位操作指令)用位操作指令 SETB PX0 ;2個(gè)外中斷為高優(yōu)先級(jí)個(gè)外中斷為高優(yōu)先級(jí) SETB PX1 CLR PS ;串口為低優(yōu)先級(jí)中斷;串口為低優(yōu)先級(jí)中斷CLR PT0 ;2個(gè)定時(shí)器個(gè)定時(shí)器/計(jì)數(shù)器低優(yōu)先級(jí)中斷計(jì)數(shù)器低優(yōu)先級(jí)中斷CLR PT1(2)用字節(jié)操作指令)用字節(jié)操作指令

14、 MOV IP,#05H或:或:MOV 0B8H,#05H ;B8H為為IP寄存器的寄存器的字節(jié)地址字節(jié)地址例:例:假設(shè)允許外部中斷假設(shè)允許外部中斷0中斷,并設(shè)定它為高級(jí)中斷,并設(shè)定它為高級(jí)中斷,其它中斷源為低級(jí)中斷,采用跳沿觸中斷,其它中斷源為低級(jí)中斷,采用跳沿觸發(fā)方式。發(fā)方式。在主程序中編寫(xiě)如下程序段:在主程序中編寫(xiě)如下程序段: SETB EA ;CPU開(kāi)中斷開(kāi)中斷 SETB ET0 ;允許外中斷;允許外中斷0產(chǎn)生中斷產(chǎn)生中斷 SETB PX0 ;外中斷;外中斷0為高級(jí)中斷為高級(jí)中斷 SETB IT0 ;外中斷;外中斷0為跳沿觸發(fā)方式為跳沿觸發(fā)方式CPU響應(yīng)中斷的基本條件如下:響應(yīng)中斷的基

15、本條件如下:有中斷源發(fā)出中斷申請(qǐng);有中斷源發(fā)出中斷申請(qǐng);中斷總允許位中斷總允許位EA=1,即,即CPU開(kāi)放中斷;開(kāi)放中斷; 無(wú)同級(jí)或更高級(jí)的中斷正在被服務(wù);無(wú)同級(jí)或更高級(jí)的中斷正在被服務(wù);請(qǐng)求中斷的中斷源的中斷允許位置請(qǐng)求中斷的中斷源的中斷允許位置1,即該中斷源可以,即該中斷源可以向向CPU發(fā)中斷申請(qǐng)。發(fā)中斷申請(qǐng)。中斷響應(yīng)過(guò)程:中斷響應(yīng)過(guò)程: 將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1; 由硬件清除相應(yīng)的中斷請(qǐng)求標(biāo)志;由硬件清除相應(yīng)的中斷請(qǐng)求標(biāo)志; 執(zhí)行一條由硬件生成的長(zhǎng)調(diào)用指令執(zhí)行一條由硬件生成的長(zhǎng)調(diào)用指令LCALL。該指令。該指令將自動(dòng)把斷點(diǎn)地址將自動(dòng)把斷點(diǎn)地址(PC值值)壓入

16、堆棧保護(hù)起來(lái)。然后將對(duì)壓入堆棧保護(hù)起來(lái)。然后將對(duì)應(yīng)的中斷入口地址送入程序計(jì)數(shù)器應(yīng)的中斷入口地址送入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中,使程序轉(zhuǎn)向該中斷入口地址去執(zhí)行中斷服務(wù)程序。斷入口地址去執(zhí)行中斷服務(wù)程序。 中斷返回:中斷返回:中斷服務(wù)程序的最后一條是返回指令中斷服務(wù)程序的最后一條是返回指令RETI。RETI指令指令的執(zhí)行標(biāo)志著中斷服務(wù)程序的結(jié)束,該指令自動(dòng)將斷點(diǎn)的執(zhí)行標(biāo)志著中斷服務(wù)程序的結(jié)束,該指令自動(dòng)將斷點(diǎn)地址從棧頂彈出,裝入程序計(jì)數(shù)器地址從棧頂彈出,裝入程序計(jì)數(shù)器PC,使程序返回到被,使程序返回到被中斷的程序斷點(diǎn)處,繼續(xù)向下執(zhí)行。中斷的程序斷點(diǎn)處,繼續(xù)向下執(zhí)行。中斷響應(yīng)封鎖:中斷響應(yīng)封鎖:

17、CPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序;正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序;現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,即現(xiàn)行指令完成前不響應(yīng)任何中斷請(qǐng)求;即現(xiàn)行指令完成前不響應(yīng)任何中斷請(qǐng)求;當(dāng)前正在執(zhí)行的是中斷返回指令當(dāng)前正在執(zhí)行的是中斷返回指令RETI或訪問(wèn)特殊功能寄或訪問(wèn)特殊功能寄存器存器IE或或IP的指令。也就是說(shuō),在執(zhí)行的指令。也就是說(shuō),在執(zhí)行RETI或是訪問(wèn)或是訪問(wèn)IE、IP的指令后,至少需要再執(zhí)行的指令后,至少需要再執(zhí)行條其他指令,才會(huì)響應(yīng)條其他指令,才會(huì)響應(yīng)中斷請(qǐng)求。中斷請(qǐng)求。若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,

18、可先若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可先用軟件關(guān)閉用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在中斷返中斷,或禁止某中斷源中斷,在中斷返回前再開(kāi)放中斷回前再開(kāi)放中斷。中斷響應(yīng)請(qǐng)求的撤銷(xiāo):中斷響應(yīng)請(qǐng)求的撤銷(xiāo):1.定時(shí)器定時(shí)器/計(jì)數(shù)器中斷請(qǐng)求,自動(dòng)撤銷(xiāo)。計(jì)數(shù)器中斷請(qǐng)求,自動(dòng)撤銷(xiāo)。2.外部中斷請(qǐng)求撤銷(xiāo)外部中斷請(qǐng)求撤銷(xiāo)(1)跳變沿外部中斷請(qǐng)求是自動(dòng)撤銷(xiāo)的。跳變沿外部中斷請(qǐng)求是自動(dòng)撤銷(xiāo)的。(2)電平方式外部中斷請(qǐng)求的撤銷(xiāo)是需要外部電路的。電平方式外部中斷請(qǐng)求的撤銷(xiāo)是需要外部電路的。3.串行口中斷請(qǐng)求的撤銷(xiāo)只能使用軟件方法撤銷(xiāo)。串行口中斷請(qǐng)求的撤銷(xiāo)只能使用軟件方法撤銷(xiāo)。CLR TI ;清;清TI

19、標(biāo)志位標(biāo)志位CLR RI ;清;清RI標(biāo)志位標(biāo)志位外部中斷響應(yīng)時(shí)間:外部中斷響應(yīng)時(shí)間:從查詢(xún)中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中從查詢(xún)中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。斷服務(wù)入口地址所需的機(jī)器周期數(shù)。(1)最快響應(yīng)時(shí)間)最快響應(yīng)時(shí)間-以外部中斷的電平觸發(fā)為最快。以外部中斷的電平觸發(fā)為最快。從查詢(xún)中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期從查詢(xún)中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期l 1個(gè)周期(查詢(xún))個(gè)周期(查詢(xún))2個(gè)周期(長(zhǎng)調(diào)用個(gè)周期(長(zhǎng)調(diào)用LCALL)外部中斷響應(yīng)時(shí)間:外部中斷響應(yīng)時(shí)間:從查詢(xún)中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中從查詢(xún)中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。斷服務(wù)入

20、口地址所需的機(jī)器周期數(shù)。在一個(gè)單一中斷的系統(tǒng)中,在一個(gè)單一中斷的系統(tǒng)中,89C51單片機(jī)對(duì)外部中斷請(qǐng)單片機(jī)對(duì)外部中斷請(qǐng)求的響應(yīng)時(shí)間總是在求的響應(yīng)時(shí)間總是在3-8個(gè)機(jī)器周期之間個(gè)機(jī)器周期之間(2)最長(zhǎng)時(shí)間)最長(zhǎng)時(shí)間l若當(dāng)前指令是若當(dāng)前指令是RET、RETI和和IP、IE指令,緊接著下一指令,緊接著下一條是乘除指令發(fā)生,則最長(zhǎng)為條是乘除指令發(fā)生,則最長(zhǎng)為8個(gè)周期:個(gè)周期:l2個(gè)周期執(zhí)行當(dāng)前指令(其中含有個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢(xún))個(gè)周期查詢(xún))4個(gè)周期乘除指令個(gè)周期乘除指令2個(gè)周期長(zhǎng)調(diào)用個(gè)周期長(zhǎng)調(diào)用8個(gè)周期。個(gè)周期。lSETB EA ; 總中斷允許總中斷允許lSETB EX1 ;INT

21、1允許允許lSETB ET1 ;TF1允許允許lSETB ES ;TI 和和RI允許允許lSETB PS ; TI 和和RI高優(yōu)先級(jí)別高優(yōu)先級(jí)別lSETB PT1 ;TF1高優(yōu)先級(jí)別高優(yōu)先級(jí)別l SETB PX0 ;INT0高優(yōu)先級(jí)別高優(yōu)先級(jí)別則則: _可以被響應(yīng)可以被響應(yīng). A. CPU 正在執(zhí)行正在執(zhí)行INT1中斷中斷,TF1請(qǐng)求請(qǐng)求. B. CPU正在執(zhí)行正在執(zhí)行TF1中斷中斷, TI請(qǐng)求請(qǐng)求. C. CPU正在執(zhí)行正在執(zhí)行INT1中斷中斷, INT0請(qǐng)求請(qǐng)求 . D. CPU正執(zhí)行主程序正執(zhí)行主程序, TF1出現(xiàn)請(qǐng)求出現(xiàn)請(qǐng)求(2)設(shè)置中斷優(yōu)先級(jí)寄存器)設(shè)置中斷優(yōu)先級(jí)寄存器IP。(1)設(shè)

22、置中斷允許控制寄存器)設(shè)置中斷允許控制寄存器IE (4)編寫(xiě)中斷服務(wù)程序,處理中斷請(qǐng)求。)編寫(xiě)中斷服務(wù)程序,處理中斷請(qǐng)求。(3)對(duì)外中斷源,是采用電平觸發(fā)還是跳沿觸發(fā)。)對(duì)外中斷源,是采用電平觸發(fā)還是跳沿觸發(fā)。前前3 3條一般放在主程序的初始化程序段中條一般放在主程序的初始化程序段中中斷服務(wù)程序設(shè)計(jì)的任務(wù):中斷服務(wù)程序設(shè)計(jì)的任務(wù):有有5個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí),可以實(shí)現(xiàn)個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí),可以實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套。兩級(jí)中斷服務(wù)程序嵌套。中斷源中斷源中斷入口地址中斷入口地址 外部中斷外部中斷0 /INT0 0003H 定時(shí)器定時(shí)器0 T0 000BH 外部中斷外部中斷1 /INT1 0

23、013H 定時(shí)器定時(shí)器1 T1 001BH 串行口串行口 0023H中斷源中斷源常用的主程序結(jié)構(gòu)如下:常用的主程序結(jié)構(gòu)如下:ORG 0000HLJMP MAINORG X3X2X1X0 ; X3X2X1X0為某中斷源中斷入口為某中斷源中斷入口LJMP INT ;為某中斷源的入口標(biāo)號(hào)為某中斷源的入口標(biāo)號(hào) ORG Y3Y2Y1Y0H;主程序入口地址;主程序入口地址MAIN:主:主 程程 序序INT:中斷服務(wù)程序:中斷服務(wù)程序采用中斷時(shí)的主程序結(jié)構(gòu):采用中斷時(shí)的主程序結(jié)構(gòu):若有多個(gè)中斷源,則按地址由小到大排列多個(gè)中斷入口若有多個(gè)中斷源,則按地址由小到大排列多個(gè)中斷入口中斷服務(wù)子程中斷服務(wù)子程序的流程

24、:序的流程:例例:根據(jù)圖中中斷服務(wù)程序流程,編出中斷服務(wù)程序。:根據(jù)圖中中斷服務(wù)程序流程,編出中斷服務(wù)程序。假設(shè),現(xiàn)場(chǎng)保護(hù)只需將假設(shè),現(xiàn)場(chǎng)保護(hù)只需將PSW和和A的內(nèi)容壓入堆棧中的內(nèi)容壓入堆棧中保護(hù)。保護(hù)。 INT:CLR EA;CPU關(guān)中斷關(guān)中斷PUSH PSW;現(xiàn)場(chǎng)保護(hù);現(xiàn)場(chǎng)保護(hù)PUSH ACC; SETB EA;CPU開(kāi)中斷開(kāi)中斷 中斷處理程序段中斷處理程序段 CLR EA;CPU關(guān)中斷關(guān)中斷POP ACC;現(xiàn)場(chǎng)恢復(fù);現(xiàn)場(chǎng)恢復(fù)POP PSWSETB EA;CPU開(kāi)中斷開(kāi)中斷RETI;中斷返回,恢復(fù)斷點(diǎn);中斷返回,恢復(fù)斷點(diǎn)幾點(diǎn)說(shuō)明:幾點(diǎn)說(shuō)明:(1)現(xiàn)場(chǎng)保護(hù)僅涉及到)現(xiàn)場(chǎng)保護(hù)僅涉及到PSW和和

25、A的內(nèi)容,如還有其的內(nèi)容,如還有其它需保護(hù)的內(nèi)容,只需要在相應(yīng)的位置再加幾條它需保護(hù)的內(nèi)容,只需要在相應(yīng)的位置再加幾條PUSH和和POP指令即可。指令即可。(2) “中斷處理程序段中斷處理程序段”,應(yīng)根據(jù)任務(wù)的具體要求,應(yīng)根據(jù)任務(wù)的具體要求,來(lái)編寫(xiě)。來(lái)編寫(xiě)。(3)如果本中斷服務(wù)程序不允許被其它的中斷所中)如果本中斷服務(wù)程序不允許被其它的中斷所中斷??蓪?。可將“中斷處理程序段中斷處理程序段”前后的前后的“SETB EA”和和“CLR EA”兩條指令去掉。兩條指令去掉。(4)中斷服務(wù)程序的最后一條指令必須是返回指令)中斷服務(wù)程序的最后一條指令必須是返回指令RETI。l在如圖所示的電路中,用在如圖

26、所示的電路中,用P1口輸出控制的口輸出控制的8只發(fā)光二極管,實(shí)現(xiàn)只發(fā)光二極管,實(shí)現(xiàn)8位二進(jìn)制計(jì)數(shù)器,對(duì)位二進(jìn)制計(jì)數(shù)器,對(duì)INT0上出現(xiàn)的脈沖進(jìn)行計(jì)數(shù)。上出現(xiàn)的脈沖進(jìn)行計(jì)數(shù)。脈沖產(chǎn)生電路脈沖產(chǎn)生電路顯示電路顯示電路 ORG 0000H AJMP MAIN ;轉(zhuǎn)主程序;轉(zhuǎn)主程序 ORG 0003H ;外中斷入口地址;外中斷入口地址 AJMP SER ;中斷服務(wù)程序;中斷服務(wù)程序 MAIN: SETB IT0 ;設(shè)定外中斷;設(shè)定外中斷0為邊沿觸發(fā)為邊沿觸發(fā) SETB EX0 ;開(kāi)外中斷;開(kāi)外中斷0允許允許 SETB EA ;開(kāi);開(kāi)CPU中斷允許中斷允許 CLR A ;計(jì)數(shù)單元清;計(jì)數(shù)單元清0 MOV P1,A ;清顯示;清顯示HERE: SJMP $ ;等待中斷;等待中斷SER: INC A ;計(jì)數(shù)單元加;計(jì)數(shù)單元加1 MOV P1,A ;顯示;顯示 RETI ;中斷返回;中斷返回 END l在如圖所示的電路中,在如圖所示的電路中,P1口輸出控制口輸出控制8只發(fā)光二只發(fā)光二極管以極管以20HZ呈現(xiàn)循環(huán)燈狀態(tài),當(dāng)開(kāi)關(guān)按下時(shí),呈現(xiàn)循環(huán)燈狀態(tài),當(dāng)開(kāi)關(guān)按下時(shí),發(fā)光二極管全部熄滅發(fā)光二極管全部熄滅0.5S,然后回到原來(lái)的狀態(tài)。,然后回到原來(lái)的狀態(tài)。 ORG 0000

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論