資源描述:
《中斷服務(wù)與中斷設(shè)定》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、蒄蒂螇芄膄蚇蚃袁芆蒀蕿袀莈蚆羈衿膈蒈襖袈芀螄螀袇莃薇蚆袇蒅莀羅袆膅薅袁羅芇莈螇羄荿薃蚃羃聿莆蕿羂芁薂羇羈莄蒄袃羈蒆蝕蝿羀膆蒃蚅罿羋蚈薁肈莀蒁袀肇肀蚇螆肆膂葿螞肅莄蚅蚈肅蕆薈羆肄膆莀袂肅艿薆螈肂莁荿蚄膁肁薄薀膀膃莇衿腿芅薂螅腿蒈蒞螁膈膇蟻蚇膇芀蒄羅膆莂蠆袁膅蒄蒂螇芄膄蚇蚃袁芆蒀蕿袀莈蚆羈衿膈蒈襖袈芀螄螀袇莃薇蚆袇蒅莀羅袆膅薅袁羅芇莈螇羄荿薃蚃羃聿莆蕿羂芁薂羇羈莄蒄袃羈蒆蝕蝿羀膆蒃蚅罿羋蚈薁肈莀蒁袀肇肀蚇螆肆膂葿螞肅莄蚅蚈肅蕆薈羆肄膆莀袂肅艿薆螈肂莁荿蚄膁肁薄薀膀膃莇衿腿芅薂螅腿蒈蒞螁膈膇蟻蚇膇芀蒄羅膆
2、莂蠆袁膅蒄蒂螇芄膄蚇蚃袁芆蒀蕿袀莈蚆羈衿膈蒈襖袈芀螄螀袇莃薇蚆袇蒅莀羅袆膅薅袁羅芇莈螇羄荿薃蚃羃聿莆蕿羂芁薂羇羈莄蒄袃羈蒆蝕蝿羀膆蒃蚅罿羋蚈薁肈莀蒁袀肇肀蚇螆肆膂葿螞肅莄蚅蚈肅蕆薈羆肄膆莀袂肅艿薆螈肂莁荿蚄膁肁薄薀膀膃莇衿腿芅薂螅腿蒈蒞螁膈膇蟻蚇膇芀蒄羅膆莂蠆袁膅蒄蒂螇芄膄蚇蚃袁芆蒀蕿袀莈蚆羈衿膈蒈襖袈芀螄螀袇莃薇蚆袇蒅莀羅袆膅薅袁第七章中斷服務(wù)與中斷設(shè)定7-1中斷的功能8051單晶片的中斷服務(wù)功能,可使中斷服務(wù)的需求以中斷的方式通知8501CPU,以使CPU獨(dú)立執(zhí)行主程式,而提升執(zhí)行效率。在805
3、1單晶片中提供5個(gè)中斷源,分別為:1.INT0:外部中斷,由8051單晶片第12接腳輸入。2.Timer0:計(jì)時(shí)/計(jì)數(shù)器中斷。3.INT1:外部中斷,由8051單晶片第13接腳輸入。4.Timer1:計(jì)時(shí)/計(jì)數(shù)器中斷。5.UART:串列埠中斷。上列中斷源在8051中都有相對(duì)應(yīng)的旗標(biāo),當(dāng)中斷條件產(chǎn)生時(shí),中斷源就會(huì)使其相對(duì)應(yīng)的旗標(biāo)值設(shè)定為1。8051的CPU會(huì)在每一個(gè)機(jī)械週期檢查這些旗標(biāo)的狀態(tài),若系統(tǒng)允許相對(duì)的中斷源產(chǎn)生中斷,且該中斷相對(duì)應(yīng)的旗標(biāo)值亦為1時(shí),則CPU會(huì)在執(zhí)行完目前正在執(zhí)行的指令後,將程式
4、在記憶體中的位址存入堆疊中,並產(chǎn)生中斷服務(wù)副程式的呼叫,跳到該中斷所對(duì)應(yīng)之中斷向量位址去執(zhí)行,CPU執(zhí)行該中斷服務(wù)副程式,直到「RETI」指令後才結(jié)束中斷副程式,再從堆疊中取出先前存入的位址值繼續(xù)執(zhí)行被中斷的程式。7-28051的中斷向量與中斷相關(guān)暫存器8051單晶片的5個(gè)中斷源,其中斷向量、旗標(biāo)名稱與該旗標(biāo)所屬暫存器如下:中斷源中斷向量(位址值)旗標(biāo)所屬暫存器INT00003HIE0TCON.1Timer0000BHTF0TCON.5INT10013HIE1TCON.3Timer1001BHTF1
5、TCON.7UART(TXD)0023HTISCON.1UART(RXD)0023HRISCON.0中斷源INT0與INT1分別位於8051單晶片接腳第12與13支,當(dāng)此二接腳為低電位(或〝0〞)時(shí),則IE0與IE1會(huì)設(shè)定為〝1〞;而當(dāng)對(duì)應(yīng)之中斷服務(wù)副程式執(zhí)行完畢後,則8051會(huì)自動(dòng)清除IE0與IE1旗標(biāo)。Timer0與Timer1的中斷產(chǎn)生則如第六章所介紹,當(dāng)計(jì)時(shí)/計(jì)數(shù)值產(chǎn)生溢位時(shí),則對(duì)應(yīng)之旗標(biāo)TF0與TF1設(shè)定為〝1〞;而當(dāng)對(duì)應(yīng)之中斷服務(wù)副程式執(zhí)行完畢後,則8051會(huì)自動(dòng)清除TF0與TF1旗標(biāo)。
6、UART為串列埠中斷源,當(dāng)串列埠做為傳送或接收時(shí)其對(duì)應(yīng)不同的旗標(biāo)TI與RI,其使用方式將在下一章介紹,當(dāng)其對(duì)應(yīng)旗標(biāo)設(shè)定為〝1〞後,且中斷致能,則中斷服務(wù)副程式將會(huì)執(zhí)行。當(dāng)對(duì)應(yīng)之中斷服務(wù)副程式執(zhí)行完畢後,則8051會(huì)自動(dòng)清除TI與RI旗標(biāo)。中斷致能暫存器(InterrupterEnableregister,簡稱IE,可位元定址)用於致能中斷的發(fā)生,若被致能,則中斷發(fā)生後將執(zhí)行中斷服務(wù)副程式,否則即使中斷發(fā)生亦不會(huì)執(zhí)行中斷服務(wù)副程式。以下為中斷致能暫存器結(jié)構(gòu):位址:A8HEA--------ESET1E
7、X1ET0EX0EA(IE.7):若EA=0,則禁止所有中斷;若EA=1,則各中斷是否致能可由各自的中斷致能位元來各別設(shè)定。----(IE.6):未使用。----(IE.5):未使用,但於8052單晶片中則為Timer2致能位元。ES(IE.4):致能串列埠的中斷。ET1(IE.3):致能Timer1的中斷。EX1(IE.2):致能INT1的中斷。ET0(IE.1):致能Timer0的中斷。EX0(IE.0):致能INT0的中斷。在8051單晶片工作時(shí),並不一定要使用全部的中斷源來產(chǎn)生中斷,因此可藉
8、由IE來設(shè)定致能部分所要用到的中斷源。此外,每一個(gè)中斷源在中斷優(yōu)先暫存器(InterruptPriorityregister,簡稱IP)中都有一個(gè)位元來決定該中斷源之中斷服務(wù)副程式被執(zhí)行的優(yōu)先順序,設(shè)定為〝1〞表示為高優(yōu)先權(quán),清除為〝0〞則表示為低優(yōu)先權(quán)。當(dāng)一個(gè)中斷要求發(fā)生時(shí),若中斷是被致能的,則8051CPU會(huì)執(zhí)行該中斷服務(wù)副程式。然而在執(zhí)行中若有較高優(yōu)先權(quán)的中斷源要求中斷,則CPU會(huì)先暫停目前正在執(zhí)行的中斷服務(wù)副程式,而立即執(zhí)行這個(gè)較高優(yōu)先權(quán)的中斷服務(wù)副程式。如果