




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.1中斷系統(tǒng)教學(xué)目的理解中斷的概念理解中斷系統(tǒng)的結(jié)構(gòu)和類型掌握中斷系統(tǒng)的中斷響應(yīng)過(guò)程掌握外部中斷的使用2023/2/41本章內(nèi)容中斷的概念中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)和控制寄存器中斷系統(tǒng)的響應(yīng)過(guò)程中斷仿真實(shí)例2023/2/4289C52的中斷系統(tǒng)
3.1.189C52的中斷系統(tǒng)結(jié)構(gòu)一、中斷的概念
CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生);
CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過(guò)程稱為中斷。2023/2/43MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回2023/2/44引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請(qǐng)求。CPU暫時(shí)中斷原來(lái)的事務(wù)A,轉(zhuǎn)去處理事件B。對(duì)事件B處理完畢后,再回到原來(lái)被中斷的地方(即斷點(diǎn)),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu))。2023/2/45
隨著計(jì)算機(jī)技術(shù)的深入應(yīng)用,應(yīng)用者發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機(jī)與慢速I(mǎi)/O設(shè)備的數(shù)據(jù)傳送問(wèn)題,而且還具有如下優(yōu)點(diǎn):
分時(shí)操作。CPU可以分時(shí)為多個(gè)I/O設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率;實(shí)時(shí)響應(yīng)。CPU能夠及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng);可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。2023/2/46二、89C52中斷系統(tǒng)的結(jié)構(gòu)
89C52的中斷系統(tǒng)有6個(gè)中斷源,2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套
。T2中斷2023/2/47中斷源的控制通過(guò)設(shè)置允許中斷寄存器IE、中斷優(yōu)先級(jí)寄存器IP的控制字實(shí)現(xiàn)。EA×ET2ESET1EX1ET0EX0(MSB)(LSB)IE:允許中斷寄存器控制字EA(IE.7)總允許位。若EA=0,禁止一切中斷。若EA=1,每個(gè)中斷源允許否,則分別由各自的允許位確定。_(IE.6)保留位ET2(IE.5)定時(shí)器2中斷允許位。若ET2=0,禁止定時(shí)器2中斷。ES(IE.4)串行口中斷允許位。若ES=0,禁止串行口中斷。ET1(IE.3)定時(shí)器1中斷允許位,若ET1=0,禁止定時(shí)器1中斷。EX1(IE.2)外部中斷1允許位,若EX1=0,禁止外部中斷1ET0(IE.1)定時(shí)器0中斷允許位,若ET0=0,禁止定時(shí)器0中斷。EX0(IE.0)外部中斷0允許位,若EX0=0,禁止外部中斷02023/2/483.1.289C52的中斷源
一、中斷源(外部引腳引入中斷)2023/2/49
1、INT0(P3.2)外中斷0。申請(qǐng)信號(hào)的有效性可由管理寄存器中的IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)硬件置1,向CPU申請(qǐng)中斷。2023/2/410
2、INT1(P3.3)外中斷1。申請(qǐng)信號(hào)的有效性可由管理寄存器中的IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1(TCON.3)硬件置1,向CPU申請(qǐng)中斷。2023/2/411
3、T0中斷(TF0TCON.5),片內(nèi)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生溢出時(shí),硬件置位TF0,并向CPU申請(qǐng)中斷。2023/2/412
4、T1中斷(TF1TCON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T1發(fā)生溢出時(shí),置位TF1,并向CPU申請(qǐng)中斷。2023/2/413
5、串行口中斷:RI(SCON.0)或TI(SCON.1),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向CPU申請(qǐng)中斷。
2023/2/414T2中斷(TF2T2CON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T2溢出中斷請(qǐng)求標(biāo)志,當(dāng)定時(shí)/計(jì)時(shí)器T2發(fā)生溢出時(shí),置位TF2,并向CPU申請(qǐng)中斷。2023/2/415二、中斷請(qǐng)求標(biāo)志寄存器(定時(shí)/計(jì)數(shù)器控制寄存器)1、TCON的中斷標(biāo)志IT0(TCON.0),外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式,低電平有效。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。CPU響應(yīng)后自動(dòng)清除IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請(qǐng)求標(biāo)志位。CPU響應(yīng)后自動(dòng)清除TF0(TCON.5),定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。自動(dòng)置位TF1(TCON.7),定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。自動(dòng)置位
2023/2/416TF1,TF0,IE1,IE0在有中斷請(qǐng)求時(shí)硬件自動(dòng)置“1”,其中,TF1,TF0在中斷被響應(yīng)后硬件自動(dòng)清零。IE1,IE0在外部中斷為跳變觸發(fā)方式時(shí),被響應(yīng)后由硬件自動(dòng)清零,若為電平觸發(fā)方式,響應(yīng)后不會(huì)自動(dòng)清零。2023/2/417IE0和IE1類似,IT0和IT1類似以IT1為例:IT1=1(軟件置1)時(shí),則外部中斷為跳變觸發(fā)方式。在每個(gè)機(jī)器周期采樣/INT1(P3.3)的輸入電平,若一個(gè)周期內(nèi)為高電平,下一個(gè)周期為低,則硬件置IE1為“1”,提出中斷申請(qǐng);
IT1=0時(shí),則/INT1為電平觸發(fā),即是通過(guò)檢測(cè)P3.3的輸入電平(低電平)來(lái)觸發(fā)的,此時(shí)IE1由硬件置1。即只要輸入到/INT1的外部中斷源為低電平,且IT1=0,則/INT1就已經(jīng)向CPU提出中斷申請(qǐng),它應(yīng)始終保持低電平,直到中斷被響應(yīng),且應(yīng)在中斷返回前變回高電平,否則會(huì)再次中斷。2023/2/418外部中斷(INT0,INT1)觸發(fā)方式的確定及注意事項(xiàng)若外部信號(hào)為一個(gè)頻率信號(hào),要求每個(gè)頻率均有中斷,外部中斷應(yīng)定義為跳變式觸發(fā)。若外部中斷要求為低電平時(shí)申請(qǐng)中斷,則外部中斷應(yīng)定義為低電平觸發(fā)方式。在電平觸發(fā)方式中,CPU響應(yīng)中斷時(shí),不會(huì)消除IE1標(biāo)志。
注:低電平持續(xù)時(shí)間<中斷服務(wù)程序執(zhí)行時(shí)間
否則會(huì)再次引發(fā)中斷。2023/2/419若外部中斷定義為電平觸發(fā)方式,中斷標(biāo)志位的狀態(tài)隨CPU在每個(gè)機(jī)器周期采樣到的外部中斷輸入引腳的電平變化而變化,這樣能提高CPU對(duì)外部中斷請(qǐng)求的響應(yīng)速度。但外部中斷源若有請(qǐng)求,必須把有效的低電平保持到請(qǐng)求獲得響應(yīng)時(shí)為止,不然就會(huì)漏掉;而在中斷服務(wù)程序結(jié)束之前,中斷源又必須撤消其有效的低電平,否則中斷返回之后將再次產(chǎn)生中斷。
電平觸發(fā)方式適合于外部中斷輸入以低電平輸入且中斷服務(wù)程序能清除外部中斷請(qǐng)求源的情況。例如,并行接口芯片8255的中斷請(qǐng)求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此,以其去請(qǐng)求電平觸發(fā)方式的中斷比較方便。2023/2/420
若外部中斷定義為邊沿觸發(fā)方式,在相繼連續(xù)的兩次采樣中,一個(gè)周期采樣到外部中斷輸入為高電平,下一個(gè)周期采樣到為低電平,則在IE0或IE1中將鎖存一個(gè)邏輯1。即便是CPU暫時(shí)不能響應(yīng),中斷申請(qǐng)標(biāo)志也不會(huì)丟失,直到CPU響應(yīng)此中斷時(shí)才清零。這樣,為保證下降沿能被可靠地采樣到,外中斷引腳上的高低電平(負(fù)脈沖的寬度)均至少要保持一個(gè)機(jī)器周期(若晶振為12MHz時(shí),為1微秒)。
邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外部中斷請(qǐng)求,如ADC0809的轉(zhuǎn)換結(jié)束標(biāo)志信號(hào)EOC為正脈沖,經(jīng)反相后就可以作為89C52的中斷輸入。2023/2/421定時(shí)器T2中斷見(jiàn)后續(xù)2023/2/4222、SCON的中斷標(biāo)志RI(SCON.0),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TI(SCON.1),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過(guò)程。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能自動(dòng)清除TI,TI必須由軟件清除。
2023/2/423清TI:在中斷服務(wù)程序中寫(xiě)入:CLRTI或ANLSCON,#0FDH清RI:在中斷服務(wù)程序中寫(xiě)入:CLRRI或ANLSCON,#0FEH
2023/2/424一、中斷允許控制
CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開(kāi)放和屏蔽是由中斷允許寄存器IE控制的。3.1.389C52中斷的控制
EX0(IE.0),外部中斷0允許位;為1,允許,為0,禁止ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷1允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;ET2(IE.5),
定時(shí)/計(jì)數(shù)器T2中斷控制位EA(IE.7),CPU中斷允許(總允許)位。2023/2/425
系統(tǒng)復(fù)位后,IE各位均為0,即禁止所有中斷。IE寄存器可進(jìn)行字節(jié)尋址,也可進(jìn)行位尋址。例:允許T0中斷,其他所有中斷均禁止1)SETBET0
CLREX1 CLRET1CLREX0 CLRESCLRET2SETBEA2)MOVIE,#82H2023/2/426二、中斷優(yōu)先級(jí)控制
89C52單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器IP中的相應(yīng)位的狀態(tài)來(lái)規(guī)定的
。PX0(IP.0),外部中斷0優(yōu)先級(jí)設(shè)定位,1為高,0為低;PT0(IP.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IP.2),外部中斷1優(yōu)先級(jí)設(shè)定位;PT1(IP.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS
(IP.4),串行口優(yōu)先級(jí)設(shè)定位;PT2(IP.5),定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位。2023/2/427復(fù)位后,IP各位均為0,即所有的都是低優(yōu)先級(jí)中斷,IP可進(jìn)行字節(jié)尋址和位尋址。例:定義外部中斷源INT0為最高級(jí),其他為低級(jí),初始化如下1)SETBPX0 CLRPT0CLRPX1CLRPT1CLRPSCLRPT22)MOVIP,#01H2023/2/428
同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問(wèn)題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:T2的優(yōu)先級(jí)最低,它的入口地址為002BH2023/2/42989C52單片機(jī)的中斷優(yōu)先級(jí)有三條原則:CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。同級(jí)n個(gè)中斷源同時(shí)來(lái)到時(shí),依據(jù)查詢規(guī)則:/INT0,T0,/INT1,T1,串行口,T2正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。為了實(shí)現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個(gè)用戶不能尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。其中一個(gè)置1,表示正在響應(yīng)高優(yōu)先級(jí)的中斷,它將阻斷后來(lái)所有的中斷請(qǐng)求;另一個(gè)置1,表示正在響應(yīng)低優(yōu)先級(jí)中斷,它將阻斷后來(lái)所有的低優(yōu)先級(jí)中斷請(qǐng)求。2023/2/430通常優(yōu)先級(jí)的確定:高級(jí):T0,T1低級(jí):/INT0,/INT1,串行口如此可保證定時(shí)/計(jì)數(shù)器的精度2023/2/4313.1.489C52單片機(jī)中斷處理過(guò)程
一、中斷響應(yīng)條件中斷源有中斷請(qǐng)求;此中斷源的中斷允許位為1;
CPU開(kāi)中斷(即EA=1)。同時(shí)滿足時(shí),CPU才有可能響應(yīng)中斷。3.1.4.1中斷響應(yīng)條件和時(shí)間
2023/2/432中斷服務(wù)的進(jìn)入:
CPU執(zhí)行程序過(guò)程中,在每個(gè)機(jī)器周期的S5P2期間,中斷系統(tǒng)對(duì)各個(gè)中斷源進(jìn)行采樣。這些采樣值在下一個(gè)機(jī)器周期內(nèi)按優(yōu)先級(jí)和內(nèi)部順序被依次查詢。如果某個(gè)中斷標(biāo)志在上一個(gè)機(jī)器周期的S5P2時(shí)被置成了1,那么它將于現(xiàn)在的查詢周期中及時(shí)被發(fā)現(xiàn)。接著CPU便執(zhí)行一條由中斷系統(tǒng)提供的硬件LCALL指令,轉(zhuǎn)向被稱作中斷向量的特定地址單元,進(jìn)入相應(yīng)的中斷服務(wù)程序。
2023/2/433遇以下任一條件,硬件將受阻,不產(chǎn)生LCALL指令:CPU正在處理同級(jí)或高優(yōu)先級(jí)中斷;當(dāng)前查詢的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。即在完成所執(zhí)行指令前,不會(huì)響應(yīng)中斷,從而保證指令在執(zhí)行過(guò)程中不被打斷;正在執(zhí)行的指令為RETI或任何訪問(wèn)IE或IP寄存器的指令。即只有在這些指令后面至少再執(zhí)行一條指令時(shí)才能接受中斷請(qǐng)求。
中斷查詢?cè)诿總€(gè)機(jī)器周期中重復(fù)執(zhí)行。若由于上述條件的阻礙中斷未能得到響應(yīng),當(dāng)條件消失時(shí)該中斷標(biāo)志卻已不再有效,那么該中斷將不被響應(yīng)。就是說(shuō),中斷標(biāo)志曾經(jīng)有效,但未獲響應(yīng),查詢過(guò)程在下個(gè)機(jī)器周期將重新進(jìn)行。2023/2/434二、中斷響應(yīng)時(shí)間3.1.4.2響應(yīng)時(shí)間--從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。(1)最快響應(yīng)時(shí)間以外部中斷的電平觸發(fā)為最快。從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期:
1個(gè)周期(查詢)+2個(gè)周期(長(zhǎng)調(diào)用LCALL)(2)最長(zhǎng)時(shí)間若當(dāng)前指令是RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長(zhǎng)為8個(gè)周期:2個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢)+4個(gè)周期乘除指令+2個(gè)周期長(zhǎng)調(diào)用=8個(gè)周期。2023/2/435將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(以阻斷后來(lái)的同級(jí)或低級(jí)的中斷請(qǐng)求)。根據(jù)中斷源類別,在硬件控制下內(nèi)部自動(dòng)形成LCALL指令,即把程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保存(但不自動(dòng)保存PSW內(nèi)容),再將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。程序轉(zhuǎn)向該中斷的矢量地址,以轉(zhuǎn)至中斷服務(wù)程序?qū)?yīng)的入口地址,執(zhí)行中斷服務(wù)程序。中斷響應(yīng)過(guò)程
中斷響應(yīng)過(guò)程的前兩步是由中斷系統(tǒng)內(nèi)部自動(dòng)完成的,而中斷服務(wù)程序則要由用戶編寫(xiě)程序來(lái)完成。
2023/2/436中斷源入口地址:/INT0:0003HT0:000BH/INT1:0013HT1:001BH串行口中斷:0023HT2:002BH2023/2/4373.1.4.3中斷處理響應(yīng)后從中斷服務(wù)程序的第一條指令開(kāi)始到返回指令過(guò)程如下:關(guān)中斷-保護(hù)現(xiàn)場(chǎng)-開(kāi)中斷-中斷服務(wù)-關(guān)中斷-恢復(fù)現(xiàn)場(chǎng)-開(kāi)中斷-中斷返回-斷點(diǎn)地址由堆棧彈入PC保護(hù)現(xiàn)場(chǎng):主程序用到的,中斷服務(wù)程序也要用到的寄存器都要保護(hù)起來(lái),如PSW、工作寄存器、專用寄存器
保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí),為不使現(xiàn)場(chǎng)信息受到破壞,則應(yīng)關(guān)中斷,使CPU暫不響應(yīng)其他中斷2023/2/438
3.1.4.4中斷請(qǐng)求撤銷CPU響應(yīng)中斷請(qǐng)求,轉(zhuǎn)向中斷服務(wù)程序執(zhí)行,在其執(zhí)行中斷返回指令(RETI)之前,中斷請(qǐng)求信號(hào)必須撤除,否則將會(huì)再一次引起中斷而出錯(cuò)。中斷請(qǐng)求撤除的方式有三種:1.由單片微機(jī)內(nèi)部硬件自動(dòng)復(fù)位。 對(duì)于T0、T1的溢出中斷和采用跳變觸發(fā)方式的外部中斷請(qǐng)求,在CPU響應(yīng)中斷后,由內(nèi)部硬件自動(dòng)清除中斷標(biāo)志TF0和TF1、IE0和IE1,而自動(dòng)撤除中斷請(qǐng)求。5.2中斷響應(yīng)過(guò)程2023/2/4392.采用軟件清除中斷請(qǐng)求對(duì)于串行中斷請(qǐng)求和定時(shí)/計(jì)數(shù)器2的溢出和捕獲中斷請(qǐng)求,在CPU響應(yīng)中斷后,必須在中斷服務(wù)程序中通過(guò)軟件清除RI、TI、TF2和EXF2這些中斷標(biāo)志,才能撤除中斷,即硬件置位,軟件清除。3.軟硬件結(jié)合的方法對(duì)中斷請(qǐng)求的撤除采用電平觸發(fā)方式的外部中斷請(qǐng)求,中斷撤銷是自動(dòng)的,但中斷請(qǐng)求信號(hào)的低電平可能繼續(xù)存在,在以后機(jī)器周期采樣時(shí)又會(huì)把已清零的IE0、IE1標(biāo)志重新置1,再次申請(qǐng)中斷。為保證在CPU中斷響應(yīng)后、執(zhí)行返回指令前,撤除中斷請(qǐng)求,應(yīng)該采取措施保證在中斷響應(yīng)后把中斷請(qǐng)求信號(hào)從低電平強(qiáng)制變?yōu)楦唠娖健?.2中斷響應(yīng)過(guò)程2023/2/440
3.1.4.5中斷返回RETI指令的具體功能是:將中斷響應(yīng)時(shí)壓入堆棧保存的斷點(diǎn)地址從棧頂彈出送回PC,CPU從原來(lái)中斷的地方繼續(xù)執(zhí)行程序;將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,通知中斷系統(tǒng),中斷服務(wù)程序已執(zhí)行完畢。
注意,不能用RET指令代替RETI指令。在中斷服務(wù)程序中PUSH指令與POP指令必須成對(duì)使用,否則不能正確返回?cái)帱c(diǎn)。2023/2/441注:1)中斷服務(wù)程序的最后一條指令必須是RETI2)復(fù)位是單片機(jī)最優(yōu)先的中斷3)中斷入口地址處安排一條跳轉(zhuǎn)指令,以跳到用戶的服務(wù)程序入口,中斷服務(wù)程序也應(yīng)放在0030H后。4)在主程序開(kāi)始對(duì)中斷進(jìn)行初始化5)中斷時(shí)硬件自動(dòng)保護(hù)斷點(diǎn),但不自動(dòng)保護(hù)現(xiàn)場(chǎng),軟件人員要保護(hù)現(xiàn)場(chǎng),恢復(fù)現(xiàn)場(chǎng)。2023/2/442
ORG0000H LJMPMIN ORG0003H LJMPINT0 ORG0030HMIN:主程序
ORG0100HINT0:中斷服務(wù)程序2023/2/443例:MCS-51的單步操作利用外部中斷引腳上的低電平實(shí)現(xiàn)原理:中斷處理程序中有RETI,所以響應(yīng)后,執(zhí)行完RETI須返回主程序執(zhí)行一條指令,然后才能響應(yīng)新的中斷。過(guò)程:只要引腳平時(shí)為低電平,且編程為電平觸發(fā),則主機(jī)響應(yīng)中斷,保存此時(shí)斷點(diǎn)地址,進(jìn)入中斷服務(wù)程序,并在該程序中停留,直到外部中斷引腳上收到一個(gè)脈沖,才彈出斷點(diǎn)地址,返回主程序執(zhí)行一條指令,而后再次進(jìn)入中斷,周而復(fù)始。2023/2/444假設(shè)采用/INT0來(lái)實(shí)現(xiàn)單步操作(*)初始化程序 CLRIT0 SETBEX0 SETBEA SETBPX0中斷服務(wù)程序:
…… WAIT1:JNBP3.2,WAIT1 WAIT2:JBP3.2,WAIT2 RETI要求正脈沖的高電平應(yīng)持續(xù)>=三個(gè)機(jī)器周期2023/2/4453.4.5Cx51中斷函數(shù)Cx51編譯器支持在C源程序中直接開(kāi)發(fā)中斷程序函數(shù)定義語(yǔ)法如下:
返回值函數(shù)名interruptn其中:n的對(duì)應(yīng)關(guān)系為
0:外部中斷0;1:定時(shí)器/計(jì)數(shù)器02:外部中斷1;3:定時(shí)器/計(jì)數(shù)器14:串行口中斷;5:定時(shí)器/計(jì)數(shù)器22023/2/4463.4.6寄存器組切換典型的C51程序默認(rèn)使用寄存器組0,寄存器組1,2,3最好在中斷服務(wù)程序中使用,以避免用堆棧保存和恢復(fù)寄存器。寄存器組的改變由RS1和RS0決定。運(yùn)行一個(gè)中斷任務(wù)時(shí),采用不同的寄存器組,同時(shí)把累加器和寄存器B壓棧。基本上,上下文切換包括兩個(gè)進(jìn)棧指令(Acc,B)和一個(gè)簡(jiǎn)單的位變化指令(RS1,RS0)2023/2/447使用中斷函數(shù)注意的問(wèn)題1.在設(shè)計(jì)時(shí),要注意的是哪些功能應(yīng)該放在中斷程序中,哪些功能應(yīng)該放在程序中。2.中斷函數(shù)不能傳遞參數(shù)。3.中斷函數(shù)沒(méi)有返回值。4.中斷函數(shù)調(diào)用其他函數(shù),要保證使用相同的寄存器組,否則出錯(cuò)。5.中斷函數(shù)使用浮點(diǎn)運(yùn)算要保存浮點(diǎn)寄存器的狀態(tài)。5.2中斷響應(yīng)過(guò)程2023/2/448中斷系統(tǒng)應(yīng)用舉例例:用單片機(jī)設(shè)計(jì)一個(gè)十字路口交通燈模擬控制系統(tǒng),要求東西、南北兩個(gè)方向都通行30S,警告5S,禁止35S,同時(shí)要考慮東西、南北兩個(gè)方向出現(xiàn)異常情況,出現(xiàn)異常情況時(shí)該方向通行60S,原理圖見(jiàn)教材167頁(yè)用12只發(fā)光二極管模擬十字交通燈控制。每個(gè)路口紅、綠、黃三個(gè),南北方向的紅、綠、黃發(fā)光二極管與單片機(jī)的P1.0、P1.1、P1.2相連。東西方向的紅、綠、黃發(fā)光二極管與單片機(jī)的P1.4、P1.5、P1.6相連。外中斷0和外中斷1接開(kāi)關(guān)模擬異常情況發(fā)生2023/2/449紅黃綠綠黃紅紅黃綠紅黃綠D1D2D3D4D5D6D7D8D9D10D11D12北南西東P1.0P1.1P1.2P1.0P1.1P1.2P1.4P1.5P1.6P1.6P1.5P1.42023/2/450交通燈正常運(yùn)行時(shí),可分為4種狀態(tài):狀態(tài)1,東西方向綠燈,南北方向紅燈20S;狀態(tài)2,東西方向黃燈,南北方向紅燈3S;狀態(tài)3,南北方向綠燈,東西方向紅燈20S;狀態(tài)4,南北方向黃燈,東西方向紅燈3S。東西方向發(fā)生異常情況時(shí),東西通行,南北禁止,東西方向綠燈閃,南北方向紅燈閃60S,南北方向發(fā)生異常情況時(shí),南北通行,東西禁止,南北方向綠燈閃,東西方向紅燈閃60S。主程序中實(shí)現(xiàn)交通燈正常運(yùn)行過(guò)程,兩種異常情況用外中斷0和外中斷1管理,外接開(kāi)關(guān)模擬異常情況發(fā)生,在中斷服務(wù)程序中實(shí)現(xiàn)異常處理,主程序開(kāi)放中斷0和外中斷1,設(shè)置邊沿觸發(fā)方式。500MS信號(hào)由定時(shí)/計(jì)數(shù)器0定時(shí)50MS,循環(huán)10次產(chǎn)生,定時(shí)/計(jì)數(shù)器0采用查詢方式2023/2/451
匯編語(yǔ)言程序:
ORG0000H;復(fù)位時(shí)程序起始地址LJMPMAINORG0003H;外中斷0入口LJMPINT_0ORG0013H;外中斷1入口LJMPINT_1ORG0030H;主程序MAIN:MOVSP,#50HMOVTMOD,#00000001BMOVIE,#10000101BMOVTCON,#00000101BSTART:;狀態(tài)1,東西方向綠燈亮,南北方向紅燈亮20SMOVP1,#001000001MOVR3,#40L1:LCALLDEL500MSDJNZR3,L12023/2/452
;狀態(tài)2,東西方向黃燈亮,南北方向紅燈亮3SMOVP1,#01000001BMOVR3,#6L2:LCALLDEL500MSDJNZR3,L2;狀態(tài)3,南北方向綠燈亮,東西方向紅燈亮20S。MOVP1,#00010010BMOVR3,#40L3:LCALLDEL500MSDJNZR3,L3;狀態(tài)4,南北方向黃燈亮,東西方向紅燈亮3S。MOVP1,#00010100BMOVR3,#6L4:LCALLDEL500MSDJNZR3,L4SJMPSTART
2023/2/453
;東西方向異常
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 項(xiàng)目風(fēng)險(xiǎn)評(píng)估在馬工學(xué)中的重要性試題及答案
- 語(yǔ)文感悟與理解能力試題及答案
- 心理咨詢師考生必知試題及答案
- 掌握2024年中醫(yī)康復(fù)理療師考試的重點(diǎn)試題及答案
- 2025-2030年金屬開(kāi)關(guān)面板項(xiàng)目投資價(jià)值分析報(bào)告
- 2025-2030年造紙銅網(wǎng)項(xiàng)目商業(yè)計(jì)劃書(shū)001
- 2025-2030年通絡(luò)足貼項(xiàng)目商業(yè)計(jì)劃書(shū)
- 2025-2030年透明電熱水壺項(xiàng)目商業(yè)計(jì)劃書(shū)
- 2025-2030年運(yùn)動(dòng)紀(jì)念幣項(xiàng)目投資價(jià)值分析報(bào)告
- 課本劇本創(chuàng)意寫(xiě)作試題及答案
- 支氣管鏡麻醉
- 2024年LED手電筒行業(yè)技術(shù)趨勢(shì)分析
- 醫(yī)療器械經(jīng)營(yíng)與藥品經(jīng)營(yíng)的區(qū)別
- 鋼絲繩吊裝時(shí)最大允許吊裝重物對(duì)應(yīng)表
- 專題四“挺膺擔(dān)當(dāng)”主題團(tuán)課
- 設(shè)計(jì)報(bào)價(jià)單模板
- 欽州卓達(dá)生物能源有限公司年產(chǎn)1500噸木炭項(xiàng)目環(huán)境影響報(bào)告表
- 汽車修理廠維修結(jié)算清單
- DB43-T+2181-2021學(xué)校治安反恐防范要求
- 內(nèi)河船舶安全檢查
- 松下全自動(dòng)COG機(jī)操作規(guī)范
評(píng)論
0/150
提交評(píng)論