版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四章 中斷系統(tǒng) 中斷的基本概念中斷的基本概念 中斷系統(tǒng)是單片機(jī)的重要組成部分。中斷系統(tǒng)是單片機(jī)的重要組成部分。 應(yīng)用:檢測、實時控制、故障自動處理往往采應(yīng)用:檢測、實時控制、故障自動處理往往采用中斷系統(tǒng),單片機(jī)與外圍設(shè)備間傳送數(shù)據(jù)及實用中斷系統(tǒng),單片機(jī)與外圍設(shè)備間傳送數(shù)據(jù)及實現(xiàn)人機(jī)聯(lián)系也常采用中斷方式。現(xiàn)人機(jī)聯(lián)系也常采用中斷方式。 中斷系統(tǒng)的應(yīng)用使計算機(jī)的功能更強(qiáng),效率更中斷系統(tǒng)的應(yīng)用使計算機(jī)的功能更強(qiáng),效率更高,使用更加靈活方便。高,使用更加靈活方便。 一、什么是中斷一、什么是中斷 生活中:生活中:由于某個原因,使當(dāng)前正在進(jìn)行的工由于某個原因,使當(dāng)前正在進(jìn)行的工作暫時停止(打斷一下),而去
2、執(zhí)行和本工作無關(guān)或作暫時停止(打斷一下),而去執(zhí)行和本工作無關(guān)或者是有關(guān)的另外一個工作,在處理完這些工作后,還者是有關(guān)的另外一個工作,在處理完這些工作后,還能回到原來的地方繼續(xù)以前的工作。能回到原來的地方繼續(xù)以前的工作。 擴(kuò)展到計算機(jī)中:中斷就是在執(zhí)行某一段程序的擴(kuò)展到計算機(jī)中:中斷就是在執(zhí)行某一段程序的過程中,過程中,由于某種原因由于某種原因,要求,要求CPUCPU盡快盡快中止原程序中止原程序的的執(zhí)行,執(zhí)行,而去執(zhí)行相應(yīng)的處理程序而去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束后,再,待處理結(jié)束后,再回來執(zhí)行被中止的程序?;貋韴?zhí)行被中止的程序。二、中斷的基本術(shù)語二、中斷的基本術(shù)語 1)1)、主程序:就是計
3、算機(jī)中斷前所執(zhí)行的程、主程序:就是計算機(jī)中斷前所執(zhí)行的程序序 2) 2)、中斷源:引起中斷的原因、事件,就是能、中斷源:引起中斷的原因、事件,就是能夠發(fā)出中斷申請的來源。夠發(fā)出中斷申請的來源。3)3)、中斷服務(wù)程序:中斷后所執(zhí)行的程序;、中斷服務(wù)程序:中斷后所執(zhí)行的程序;4)4)、斷點;主程序被斷開的位置(或地址)。、斷點;主程序被斷開的位置(或地址)。5)5)、中斷請求信號:光有中斷源還不行,計算機(jī)是、中斷請求信號:光有中斷源還不行,計算機(jī)是如何知道中斷源有要求呢?這就需要中斷源要有一如何知道中斷源有要求呢?這就需要中斷源要有一個要求服務(wù)的請求信號,稱為中斷請求信號。個要求服務(wù)的請求信號,稱
4、為中斷請求信號。6)6)、中斷的優(yōu)先級、中斷的優(yōu)先級 凡事都可能有輕重緩急,一般是盡量先做重要或凡事都可能有輕重緩急,一般是盡量先做重要或很急的事情。很急的事情。 引起引起CPUCPU中止當(dāng)前正在執(zhí)行的程序的事情有可能中止當(dāng)前正在執(zhí)行的程序的事情有可能也不止一個,有的請求比較迫切,也不止一個,有的請求比較迫切,CPUCPU必須盡快響應(yīng),必須盡快響應(yīng),而有的則可以等一會,這里也有優(yōu)先級的問題。而有的則可以等一會,這里也有優(yōu)先級的問題。 如果在執(zhí)行級別比較低的中斷服務(wù)程序的時候,如果在執(zhí)行級別比較低的中斷服務(wù)程序的時候,忽然來了一個高級中斷,計算機(jī)也會停止執(zhí)行低級的忽然來了一個高級中斷,計算機(jī)也會
5、停止執(zhí)行低級的中斷服務(wù)程序,去為這個高級的中斷服務(wù)。這就是所中斷服務(wù)程序,去為這個高級的中斷服務(wù)。這就是所謂的謂的“中斷嵌套中斷嵌套”,類似于子程序嵌套。,類似于子程序嵌套。 中斷源中斷源 中斷申請中斷申請開放中斷開放中斷保護(hù)現(xiàn)場保護(hù)現(xiàn)場中斷服務(wù)中斷服務(wù)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場中斷返回中斷返回中斷涉及的幾個環(huán)節(jié)中斷涉及的幾個環(huán)節(jié)(提出中斷申請的甲方)(提出中斷申請的甲方)(甲方發(fā)出信號提出申請)(甲方發(fā)出信號提出申請)(乙方同意傳送)(乙方同意傳送)(安排好當(dāng)前的工作)(安排好當(dāng)前的工作)(乙方按預(yù)案響應(yīng))(乙方按預(yù)案響應(yīng))(預(yù)案完事后,回去(預(yù)案完事后,回去)(乙方繼續(xù)做打斷前的工作)(乙方繼續(xù)做打
6、斷前的工作)三、中斷服務(wù)程序和子程序的區(qū)別三、中斷服務(wù)程序和子程序的區(qū)別 中斷大概的處理過程:中斷大概的處理過程: 1 1、保護(hù)斷點:當(dāng)有事件產(chǎn)生,如果計算機(jī)要對、保護(hù)斷點:當(dāng)有事件產(chǎn)生,如果計算機(jī)要對它進(jìn)行處理,在處理之前首先要保存下一條將要執(zhí)行它進(jìn)行處理,在處理之前首先要保存下一條將要執(zhí)行的指令的的指令的PCPC地址,也就是斷點地址,并將這個地址送地址,也就是斷點地址,并將這個地址送入堆棧。入堆棧。 2 2、根據(jù)事件的不同執(zhí)行相應(yīng)的中斷服務(wù)程序。、根據(jù)事件的不同執(zhí)行相應(yīng)的中斷服務(wù)程序。 3 3、中斷返回:執(zhí)行完中斷指令后,就返回到主、中斷返回:執(zhí)行完中斷指令后,就返回到主程序的斷點處,繼續(xù)
7、執(zhí)行。程序的斷點處,繼續(xù)執(zhí)行。 和調(diào)用子程序相同點:它們都要進(jìn)行斷點保護(hù)。和調(diào)用子程序相同點:它們都要進(jìn)行斷點保護(hù)。響應(yīng)中斷或是執(zhí)行子程序之前都會把斷點壓入堆棧中,響應(yīng)中斷或是執(zhí)行子程序之前都會把斷點壓入堆棧中,返回的時候?qū)帱c地址返回給程序計數(shù)器返回的時候?qū)帱c地址返回給程序計數(shù)器PCPC。 和子程序調(diào)用的不同點:和子程序調(diào)用的不同點: 中斷產(chǎn)生是隨機(jī)的,而調(diào)用子程序是事先預(yù)定中斷產(chǎn)生是隨機(jī)的,而調(diào)用子程序是事先預(yù)定好的。好的。 中斷服務(wù)程序為外設(shè)或各種事件服務(wù),與正在中斷服務(wù)程序為外設(shè)或各種事件服務(wù),與正在執(zhí)行的程序可能沒有任何關(guān)系。而子程序是為主程執(zhí)行的程序可能沒有任何關(guān)系。而子程序是為
8、主程序服務(wù),有可能和外設(shè)沒有關(guān)系。序服務(wù),有可能和外設(shè)沒有關(guān)系。 中斷子程序還要考慮在子程序中是否開中斷子程序還要考慮在子程序中是否開( (或關(guān)或關(guān)) )中斷,并力求在保護(hù)和恢復(fù)現(xiàn)場動作期間不被高級中斷,并力求在保護(hù)和恢復(fù)現(xiàn)場動作期間不被高級中斷申請打斷。中斷申請打斷。 返回動作不同。返回動作不同。RETRET與與RETIRETI有區(qū)別,后者除有區(qū)別,后者除PCPC出棧外,還要對中斷優(yōu)先級狀態(tài)觸發(fā)器復(fù)位,即出棧外,還要對中斷優(yōu)先級狀態(tài)觸發(fā)器復(fù)位,即恢復(fù)中斷優(yōu)先鏈?;謴?fù)中斷優(yōu)先鏈。四、中斷技術(shù)的優(yōu)勢四、中斷技術(shù)的優(yōu)勢 計算機(jī)采用中斷技術(shù),大大提高了它的工作計算機(jī)采用中斷技術(shù),大大提高了它的工作效
9、率和處理問題的靈活性。主要表現(xiàn)在四個方面:效率和處理問題的靈活性。主要表現(xiàn)在四個方面:1 1、解決了快速的、解決了快速的CPUCPU與慢速的外設(shè)之間的矛盾,與慢速的外設(shè)之間的矛盾,使使CPUCPU與外設(shè)并行、分時工作。與外設(shè)并行、分時工作。2 2、使計算機(jī)能夠及時處理實時控制中的許多隨機(jī)、使計算機(jī)能夠及時處理實時控制中的許多隨機(jī)信息。信息。3 3、使計算機(jī)具備處理故障的能力。、使計算機(jī)具備處理故障的能力。4 4、使計算機(jī)具備從低功耗狀態(tài)喚醒的能力、使計算機(jī)具備從低功耗狀態(tài)喚醒的能力。例例S4 S4 任務(wù)任務(wù)4 4:信號燈的控制:信號燈的控制4 4一、要求一、要求在任務(wù)在任務(wù)“讓讓P1P1口口8
10、 8個二極管同時閃爍個二極管同時閃爍”的電路的基的電路的基礎(chǔ)上,擴(kuò)展如圖礎(chǔ)上,擴(kuò)展如圖5-15-1所示的相應(yīng)外部電路,將并所示的相應(yīng)外部電路,將并A A端端接到單片機(jī)的接到單片機(jī)的P3.2P3.2引腳上。引腳上。編寫程序,使程序在運行時,每當(dāng)按一次圖編寫程序,使程序在運行時,每當(dāng)按一次圖5-15-1中中的按鍵的按鍵K K,P1P1口的發(fā)光二極管就會亮、滅切換一次??诘陌l(fā)光二極管就會亮、滅切換一次。圖圖5-1 任務(wù)任務(wù)4電路圖電路圖 K K未按:未按:a=0a=0,b=1b=1,兩個與非門輸出分別是,兩個與非門輸出分別是A=1A=1,B=0B=0。 K K按下:按下:a=1a=1,b=0b=0,
11、A A、B B端的電平就會進(jìn)行切換,端的電平就會進(jìn)行切換,A=0A=0,B=1B=1,這樣就會從,這樣就會從A A、B B端輸出相應(yīng)的負(fù)脈沖和正端輸出相應(yīng)的負(fù)脈沖和正脈沖。脈沖。 將將A A端接到端接到P3.2P3.2引腳,就是要從引腳,就是要從P3.2P3.2引腳向單片引腳向單片機(jī)輸入一個由按下按鍵所產(chǎn)生的負(fù)脈沖,由這個負(fù)脈機(jī)輸入一個由按下按鍵所產(chǎn)生的負(fù)脈沖,由這個負(fù)脈沖來完成發(fā)光二極管的亮、滅變換。沖來完成發(fā)光二極管的亮、滅變換。 二、任務(wù)分析與實現(xiàn)二、任務(wù)分析與實現(xiàn) 之前任務(wù):只是讓單片機(jī)執(zhí)行一定的指令或程之前任務(wù):只是讓單片機(jī)執(zhí)行一定的指令或程序來實現(xiàn)相應(yīng)的功能。在程序的運行過程中,我
12、們?nèi)诵騺韺崿F(xiàn)相應(yīng)的功能。在程序的運行過程中,我們?nèi)瞬]有進(jìn)行干預(yù),沒有做任何動作。并沒有進(jìn)行干預(yù),沒有做任何動作。 這次任務(wù):發(fā)光二極管的亮、滅變換取決于我們這次任務(wù):發(fā)光二極管的亮、滅變換取決于我們在程序運行過程中的一個按鍵的動作。按一下鍵將會在程序運行過程中的一個按鍵的動作。按一下鍵將會在在A A端產(chǎn)生一個負(fù)脈沖,由這個負(fù)脈沖來完成發(fā)光二端產(chǎn)生一個負(fù)脈沖,由這個負(fù)脈沖來完成發(fā)光二極管的亮、滅變換。極管的亮、滅變換。#include void main ( ) P1= 0 x00; EA = 1; EX0 =1; IT0 =1;;IT0=1;IT0=1,使外部中斷,使外部中斷0 0的觸發(fā)方式
13、為下降沿觸發(fā)的觸發(fā)方式為下降沿觸發(fā) while(1););void INT0_T3 ( ) interrupt 0 P1 = P1;中斷系統(tǒng)硬件結(jié)構(gòu)注注: :各中斷允許控制位各中斷允許控制位=0,=0,開關(guān)斷開;開關(guān)斷開; =1, =1,開關(guān)接通開關(guān)接通IE0IE0EX0EX0TF0TF0IE1IE1TF1TF1TITIESESET1ET1EX1EX1ET0ET0外部中斷外部中斷 請求請求0 0外部中斷外部中斷 請求請求1 1內(nèi)部內(nèi)部 定時器定時器0 0內(nèi)部內(nèi)部 定時器定時器1 1內(nèi)部內(nèi)部 串行口串行口T TR RRIRIIEIE寄存器寄存器 EA EA位位IPIP寄存器寄存器各單路開關(guān)各單路
14、開關(guān) 總開關(guān)總開關(guān)中斷源標(biāo)志中斷源標(biāo)志位查詢機(jī)構(gòu)位查詢機(jī)構(gòu)高中斷級高中斷級中斷請求中斷請求低中斷級低中斷級中斷請求中斷請求中斷入口中斷入口中斷源中斷源標(biāo)志位標(biāo)志位INT0INT0INT1INT1中斷入口中斷入口中斷源中斷源標(biāo)志位標(biāo)志位5151單片機(jī)的中斷源單片機(jī)的中斷源5151子系列允許子系列允許5 5個個(52(52子系列子系列6 6個個) )中斷源:中斷源: 2 2個外部中斷請求:個外部中斷請求:INT0INT0,INT1INT1 2 2個片內(nèi)定時器個片內(nèi)定時器/ /計數(shù)器計數(shù)器T0T0和和T1T1中斷請求:中斷請求: TF0 TF0,TF1TF1,(TF252TF252子系列有子系列有T
15、2T2) 1 1個串行口中斷請求:個串行口中斷請求:TI/RITI/RI 與中斷有關(guān)的寄存器有與中斷有關(guān)的寄存器有4個:個:定時定時/計數(shù)控制寄存器計數(shù)控制寄存器TCON串行口控制寄存器串行口控制寄存器SCON中斷允許控制寄存器中斷允許控制寄存器IE中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP中斷允許寄存器中斷允許寄存器IE(0A8H)IE(0A8H):EAESET1EX1ET0EX0定時定時/ /計數(shù)控制寄存器計數(shù)控制寄存器TCON(88H)TCON(88H):PSPT1PX1PT0PX0中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP (0B8H)IP (0B8H)TIRI串行控制寄存器串行控
16、制寄存器SCON(098H)中斷允許控制寄存器中斷允許控制寄存器IEMCS-51/52單片機(jī)對中斷源的開放或屏蔽是由中斷允許單片機(jī)對中斷源的開放或屏蔽是由中斷允許寄存器寄存器IE控制的??刂频摹?D7D6D5D4D3D2D1D0IE(0A8H)0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8HEAET2ESET1EX1ET0EX0D7D6D5D4D3D2D1D0IE(0A8H)0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8HEAET2ESET1EX1ET0EX0例:允許串口中斷,例:允許串口中斷,IE怎么賦值怎么賦值例:允許外部中斷例:允許外部中斷0和和T0中斷,
17、中斷,IE怎么賦值怎么賦值EA = 1;EX0 =1;D7D6D5D4D3D2D1D0TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0TCON寄存器中和中斷請求及控制相關(guān)的位主要有:寄存器中和中斷請求及控制相關(guān)的位主要有:TF1:定時器:定時器/計數(shù)器計數(shù)器1(T1)的溢出標(biāo)志。當(dāng)?shù)囊绯鰳?biāo)志。當(dāng)T1的內(nèi)部計數(shù)的內(nèi)部計數(shù)器計數(shù)溢出時,由硬件將此位置器計數(shù)溢出時,由硬件將此位置1。TF1是定時器是定時器/計數(shù)器計數(shù)器1的中斷請求標(biāo)志,也可供程序查詢。的中斷請求標(biāo)志,也可供程序查詢。TF0:定時器:定時器/計數(shù)器計數(shù)器0(T0)的溢出
18、標(biāo)志。其功能和操作方的溢出標(biāo)志。其功能和操作方式同式同TF1。D7D6D5D4D3D2D1D0TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0IE1:外部中斷:外部中斷1(/INT1)的中斷請求標(biāo)志。當(dāng)檢測到外部的中斷請求標(biāo)志。當(dāng)檢測到外部中斷中斷1引腳引腳(P3.3)上存在有效的中斷請求信號時,由硬件上存在有效的中斷請求信號時,由硬件使使IE1置置1。IE0:外部中斷:外部中斷0的中斷請求標(biāo)志。其含義與的中斷請求標(biāo)志。其含義與IE1類同。類同。D7D6D5D4D3D2D1D0TCON(88H)8FH8EH8DH8CH8BH8A
19、H89H88HTF1TR1TF0TR0IE1IT1IE0IT0IT1:外部中斷:外部中斷1的中斷觸發(fā)方式控制位。的中斷觸發(fā)方式控制位。IT1=0時,時,INT1為為電平電平觸發(fā)方式,觸發(fā)方式,CPU在每個機(jī)器周在每個機(jī)器周期期S5P2采樣采樣INT1引腳上的輸入電平。若引腳上的輸入電平。若INT1為低電為低電平,則使平,則使IE1置置1,向,向CPU申請中斷。若該引腳為高申請中斷。若該引腳為高電平,則使電平,則使IE1清清0。IT1=1時,時,INT1為為邊沿邊沿觸發(fā)方式。在連續(xù)兩個機(jī)器周觸發(fā)方式。在連續(xù)兩個機(jī)器周期,第一個機(jī)器周期采樣到外部中斷期,第一個機(jī)器周期采樣到外部中斷1引腳為高電平,
20、引腳為高電平,第二個機(jī)器周期采樣到該引腳為低電平(即采樣到一第二個機(jī)器周期采樣到該引腳為低電平(即采樣到一個下降沿),則使個下降沿),則使IE1置置1,向,向CPU申請中斷。此后申請中斷。此后即使下降沿已經(jīng)結(jié)束,即使下降沿已經(jīng)結(jié)束,IE1也一直保持為也一直保持為1,直到,直到CPU響應(yīng)該中斷時才由硬件將響應(yīng)該中斷時才由硬件將IE1清清0。IT0:外部中斷:外部中斷0的中斷觸發(fā)方式控制位。其含義與的中斷觸發(fā)方式控制位。其含義與IT1類類同。同。D7D6D5D4D3D2D1D0TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0例:例:
21、IT0 =1;CPU CPU 在每個機(jī)器周期的在每個機(jī)器周期的S5P2S5P2期間,會自動查詢期間,會自動查詢各個中斷申請標(biāo)志位,若查到某標(biāo)志位被置位各個中斷申請標(biāo)志位,若查到某標(biāo)志位被置位, ,將啟動中斷機(jī)制。將啟動中斷機(jī)制。CPUCPU識別中斷申請的依據(jù)識別中斷申請的依據(jù):TcTsTmTmTc=1/fosc Ts=6Tc Tm=12Tc=6TsTc=1/fosc Ts=6Tc Tm=12Tc=6TsS5S6S4S3S2S5S6S4S3S2S1 PT2 PS PT1 PT2 PS PT1 PX1 PX1 PT0 PX0PT0 PX0IPIPPX0/PX1PX0/PX1:INT0/1INT0/
22、1優(yōu)先級控制位:優(yōu)先級控制位: =0 =0 時屬低優(yōu)先級;時屬低優(yōu)先級; =1 =1 時屬高優(yōu)先級。時屬高優(yōu)先級。PT0/PT1/PT2PT0/PT1/PT2:T0/1/2T0/1/2中斷優(yōu)先級控制位:中斷優(yōu)先級控制位: =0 =0 時屬低優(yōu)先級;時屬低優(yōu)先級; =1 =1 時屬高優(yōu)先級。時屬高優(yōu)先級。PS1PS1:串行口中斷優(yōu)先級控制位:串行口中斷優(yōu)先級控制位: =0 =0 時屬低優(yōu)先級;時屬低優(yōu)先級; =1 =1 時屬高優(yōu)先級。時屬高優(yōu)先級。中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP (0B8H)IP (0B8H)對同時發(fā)生多個中斷申請時:對同時發(fā)生多個中斷申請時:不同優(yōu)先級的中斷同時申
23、請不同優(yōu)先級的中斷同時申請( (很難遇到很難遇到) ) 先高后低先高后低相同優(yōu)先級的中斷同時申請相同優(yōu)先級的中斷同時申請( (很難遇到很難遇到) ) 按序執(zhí)行按序執(zhí)行正處理低優(yōu)先級中斷又接到高級別中斷正處理低優(yōu)先級中斷又接到高級別中斷 高打斷低高打斷低正處理高優(yōu)先級中斷又接到低級別中斷正處理高優(yōu)先級中斷又接到低級別中斷 高不理低高不理低中斷優(yōu)先級處理原則沒有同級的中斷或更高級別的中斷正在處理;沒有同級的中斷或更高級別的中斷正在處理;在中斷源提出了中斷申請且在中斷源提出了中斷申請且CPUCPU此前已經(jīng)允許中斷此前已經(jīng)允許中斷的前提下,還須滿足以下三個條件的前提下,還須滿足以下三個條件: :正在執(zhí)
24、行的指令必須執(zhí)行完最后正在執(zhí)行的指令必須執(zhí)行完最后 1 1個機(jī)器周期;個機(jī)器周期;若正在執(zhí)行若正在執(zhí)行RETIRETI,或正在訪問,或正在訪問IEIE或或IPIP寄存器寄存器, ,須須執(zhí)行完上述指令和下一條指令以后方能響應(yīng)中斷。執(zhí)行完上述指令和下一條指令以后方能響應(yīng)中斷。 RI,TIRI,TI:串行口收:串行口收/ /發(fā)數(shù)據(jù)申請中斷標(biāo)志位發(fā)數(shù)據(jù)申請中斷標(biāo)志位 1 1 申請中斷;申請中斷; 0 0 不申請中斷不申請中斷 SM0 SM1 SM2 REN TB8 RB8 TI RISCONSCON#include void main ( ) P1= 0 x00; EA = 1; EX0 =1; IT
25、0 =1;;IT0=1;IT0=1,使外部中斷,使外部中斷0 0的觸發(fā)方式為下降沿觸發(fā)的觸發(fā)方式為下降沿觸發(fā) while(1););void INT0_T3 ( ) interrupt 0 P1 = P1;中斷號中斷號中斷源中斷源0外部中斷外部中斷01定時器定時器/計數(shù)器計數(shù)器0溢出中斷溢出中斷2外部中斷外部中斷13定時器定時器/計數(shù)器計數(shù)器1溢出中斷溢出中斷4串行口中斷串行口中斷5定時器定時器/計數(shù)器計數(shù)器2溢出中斷溢出中斷在在CPUCPU已經(jīng)開放了外部中斷允許的前提下:已經(jīng)開放了外部中斷允許的前提下:在在INT0/INT1INT0/INT1引腳輸入一個引腳輸入一個負(fù)脈沖負(fù)脈沖或或低電平低電
26、平, TCONTCON寄存器中的寄存器中的IE0/IE1IE0/IE1標(biāo)志位自動變標(biāo)志位自動變“1 1”,檢測到檢測到IE0/IE1IE0/IE1變變“1 1”后后, ,將產(chǎn)生指令:將產(chǎn)生指令: LCALL 0003H(/0013H) LCALL 0003H(/0013H)執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序, ,并將并將IE0/IE1IE0/IE1標(biāo)志位自動清標(biāo)志位自動清“0 0”, ,以備下次申請。以備下次申請。外部中斷INT0(P3.2),INT1(P3.3)申請過程單片機(jī)的中斷矢量與優(yōu)先級單片機(jī)的中斷矢量與優(yōu)先級中斷矢量:中斷矢量: MCS-51 MCS-51單片機(jī)的單片機(jī)的 5 5 個中
27、斷源分別對個中斷源分別對應(yīng)有各自的中斷服務(wù)程序入口地址應(yīng)有各自的中斷服務(wù)程序入口地址中斷矢量中斷矢量000BH000BHTF0TF0定時定時/ /計數(shù)器計數(shù)器0(T0)0(T0)0023H0023HRI/TIRI/TI串行口接收串行口接收/ /發(fā)送發(fā)送001BH001BHTF1TF1定時定時/ /計數(shù)器計數(shù)器1(T1)1(T1)0013H0013HIE1IE1外部中斷外部中斷1( INT1)1( INT1)0003H0003HIE0IE0外部中斷外部中斷0( INT0)0( INT0)中斷優(yōu)先級中斷優(yōu)先級中斷矢量中斷矢量申請標(biāo)志申請標(biāo)志中中 斷斷 源源最高優(yōu)先級最高優(yōu)先級最低優(yōu)先級最低優(yōu)先級外
28、部中斷外部中斷低電平低電平/ /負(fù)脈沖負(fù)脈沖INT0/INT1INT0/INT1引腳可觸發(fā)中斷引腳可觸發(fā)中斷TF1 TR1 TF0 TR0 IE1 IT1 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IE0 IT0TCON TCON (88H)(88H)IT0/IT1IT0/IT1:INT0/1INT0/1的觸發(fā)方式選擇位:的觸發(fā)方式選擇位: IT0/IT1 =0 IT0/IT1 =0 時,時,INT0/INT1INT0/INT1是低電平有效;是低電平有效; IT0/IT1 =1 IT0/IT1 =1 時,時,INT0/INT1INT0/INT1是負(fù)跳變有效。是負(fù)跳變有效。低
29、電平觸發(fā)低電平觸發(fā) 引腳上的低電平須持續(xù)到中斷發(fā)生。若中斷引腳上的低電平須持續(xù)到中斷發(fā)生。若中斷返回前仍未及時撤除低電平返回前仍未及時撤除低電平, ,將再次中斷。將再次中斷。負(fù)脈沖觸發(fā)負(fù)脈沖觸發(fā) CPU CPU在前一機(jī)器周期采到在前一機(jī)器周期采到INT0/INT1INT0/INT1引腳為高引腳為高, ,后一機(jī)器周期采到為低才認(rèn)為是一次中斷請求。后一機(jī)器周期采到為低才認(rèn)為是一次中斷請求。CPU CPU 可自可自動撤除中斷申請。動撤除中斷申請。中斷請求的撤除中斷請求的撤除: :定時定時/ /計數(shù)器中斷及中斷請求的撤除:計數(shù)器中斷及中斷請求的撤除: 定時定時/ /計數(shù)器的溢出中斷,在計數(shù)器的溢出中斷
30、,在CPUCPU響應(yīng)中斷過程中,自動響應(yīng)中斷過程中,自動用硬件清除有關(guān)的中斷請求標(biāo)志用硬件清除有關(guān)的中斷請求標(biāo)志TF0TF0和和TF1TF1;如果未開相應(yīng)的中;如果未開相應(yīng)的中斷,需用軟件將相應(yīng)的標(biāo)志清除。斷,需用軟件將相應(yīng)的標(biāo)志清除。串行中斷及中斷請求的撤除:串行中斷及中斷請求的撤除:TITI、RIRI標(biāo)志必須在中斷服務(wù)程序中用軟件清除。標(biāo)志必須在中斷服務(wù)程序中用軟件清除。程序中必須有:程序中必須有: TI=0; TI=0; RI=0; RI=0; 總結(jié)總結(jié)-1-1: 與中斷有關(guān)的寄存器有與中斷有關(guān)的寄存器有4 4個:個:定時定時/ /計數(shù)控制寄存器計數(shù)控制寄存器TCONTCON串行口控制寄
31、存器串行口控制寄存器SCONSCON中斷允許控制寄存器中斷允許控制寄存器IEIE中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IPIP中斷源有中斷源有5 5個:個:1 1、外部中斷、外部中斷0 0:由:由P3.2P3.2管腳(管腳(/INT0/INT0)輸入)輸入2 2、外部中斷、外部中斷1 1:由:由P3.3P3.3管腳(管腳(/INT1/INT1)輸入)輸入3 3、定時、定時/ /計數(shù)器計數(shù)器0 0的溢出中斷的溢出中斷4 4、定時、定時/ /計數(shù)器計數(shù)器1 1的溢出中斷的溢出中斷5 5、串行口中斷、串行口中斷 中斷源標(biāo)志有中斷源標(biāo)志有5 5個:個: 外部中斷外部中斷0 0請求標(biāo)志請求標(biāo)志 IE0
32、 IE0 外部中斷外部中斷1 1請求標(biāo)志請求標(biāo)志IE1IE1 定時器定時器0 0溢出中斷請求標(biāo)志溢出中斷請求標(biāo)志TF0TF0 定時器定時器1 1溢出中斷請求標(biāo)志溢出中斷請求標(biāo)志TF1TF1 串行中斷請求標(biāo)志串行中斷請求標(biāo)志RIRI或或TITI。 總結(jié)總結(jié)-2-2: 5 5個中斷源的排列順序由中斷優(yōu)先級控制寄存器個中斷源的排列順序由中斷優(yōu)先級控制寄存器IPIP和順序查詢邏輯電路共同決定,和順序查詢邏輯電路共同決定,5 5個中斷源分別對應(yīng)個中斷源分別對應(yīng)5 5個個固定的中斷入口地址。固定的中斷入口地址。 總結(jié)總結(jié)-3-3:總結(jié)總結(jié)-4-4:中斷應(yīng)用前后要做的幾項工作:中斷應(yīng)用前后要做的幾項工作 中
33、斷前中斷前 開中斷允許:必須開中斷允許:必須 選擇優(yōu)先級:根據(jù)需要選擇,可有選擇優(yōu)先級:根據(jù)需要選擇,可有/ /可無可無 設(shè)置控制位:設(shè)置控制位:INTxINTx觸發(fā)方式觸發(fā)方式(ITx)(ITx) TxTCON,TMOD,TRx, TxTCON,TMOD,TRx,初值初值 RI/TISCON,REN,RB8,TB8, RI/TISCON,REN,RB8,TB8,中斷后中斷后進(jìn)入中斷服務(wù)后:保護(hù)現(xiàn)場,關(guān)中斷,進(jìn)入中斷服務(wù)后:保護(hù)現(xiàn)場,關(guān)中斷,退出中斷服務(wù)前:恢復(fù)現(xiàn)場退出中斷服務(wù)前:恢復(fù)現(xiàn)場, ,開中斷開中斷, ,設(shè)設(shè)TxTx的初的初 值值, ,清清TI/RI,TI/RI,中斷服務(wù)程序的最后一條
34、指令必是中斷服務(wù)程序的最后一條指令必是 RETI RETI外部中斷源的擴(kuò)展外部中斷源的擴(kuò)展在實際應(yīng)用中,若外部中斷源超過兩個,則需擴(kuò)充外在實際應(yīng)用中,若外部中斷源超過兩個,則需擴(kuò)充外部中斷源,這里介紹兩種簡單可行的方法。部中斷源,這里介紹兩種簡單可行的方法。 1 1用定時器作外部中斷源用定時器作外部中斷源 MCS-51 MCS-51單片機(jī)有兩個定時器,具有兩個內(nèi)中斷單片機(jī)有兩個定時器,具有兩個內(nèi)中斷標(biāo)志和外計數(shù)引腳。標(biāo)志和外計數(shù)引腳。 此時,可將定時器設(shè)置成計數(shù)方式,計數(shù)初值此時,可將定時器設(shè)置成計數(shù)方式,計數(shù)初值可設(shè)為滿量程,則它們的計數(shù)輸入端可設(shè)為滿量程,則它們的計數(shù)輸入端T0T0(P3.
35、4P3.4)或)或T1T1(P3.5P3.5)引腳上發(fā)生負(fù)跳變時,計數(shù)器加)引腳上發(fā)生負(fù)跳變時,計數(shù)器加1 1便產(chǎn)生溢出便產(chǎn)生溢出中斷。中斷。利用此特性,可把利用此特性,可把T0T0腳或腳或T1T1腳作為外部中斷請腳作為外部中斷請求輸入線,而計數(shù)器的溢出中斷作為外部中斷請求標(biāo)求輸入線,而計數(shù)器的溢出中斷作為外部中斷請求標(biāo)志。志。 例例: : 將定時器將定時器T0T0擴(kuò)展為外部中斷源。擴(kuò)展為外部中斷源。 解:將定時器解:將定時器T0T0設(shè)定為方式設(shè)定為方式2 2(自動恢復(fù)計數(shù)初(自動恢復(fù)計數(shù)初值),值),TH0TH0和和TF0TF0的初值均設(shè)置為的初值均設(shè)置為FFHFFH,允許,允許T0T0中斷
36、,中斷,CPUCPU開放中斷,源程序如下:開放中斷,源程序如下:TMODTMOD0 x06 0 x06 ; T0 T0設(shè)定為方式設(shè)定為方式2 2TH0=0 xFF TH0=0 xFF ; 計數(shù)器賦初值計數(shù)器賦初值TL0=0 xFF ;TL0=0 xFF ;TR0=1TR0=1ET0=1ET0=1EA=1EA=1 當(dāng)連接在當(dāng)連接在T0T0(P3.4P3.4)引腳的外部中斷請求輸)引腳的外部中斷請求輸入線發(fā)生負(fù)跳變時,入線發(fā)生負(fù)跳變時,TL0TL0加加1 1溢出,溢出,TF0TF0置置1 1,向,向CPUCPU發(fā)出中斷申請,同時,發(fā)出中斷申請,同時,TH0TH0的內(nèi)容自動送至的內(nèi)容自動送至TL0T
37、L0使使TL0TL0恢復(fù)初值。這樣,恢復(fù)初值。這樣,T0T0引腳每輸入一個負(fù)跳變,引腳每輸入一個負(fù)跳變,TF0TF0都會置都會置1 1,向,向CPUCPU請求中斷,此時,請求中斷,此時,T0T0腳相當(dāng)于腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。邊沿觸發(fā)的外部中斷源輸入線。 同樣,也可將定時器同樣,也可將定時器T1T1擴(kuò)展為外部中斷源。擴(kuò)展為外部中斷源。 2 2中斷和查詢相結(jié)合中斷和查詢相結(jié)合 利用兩根外部中斷輸入線(和腳),每一中利用兩根外部中斷輸入線(和腳),每一中斷輸入線可以通過線與的關(guān)系連接多個外部中斷斷輸入線可以通過線與的關(guān)系連接多個外部中斷源,同時,利用并行輸入端口線作為多個中斷源源,同時
38、,利用并行輸入端口線作為多個中斷源的識別線,其電路原理圖如下圖所示。的識別線,其電路原理圖如下圖所示。一個外中斷擴(kuò)展成多個外中斷的原理圖一個外中斷擴(kuò)展成多個外中斷的原理圖 由圖可知,由圖可知,4 4個外部擴(kuò)展中斷源通過與門電路組個外部擴(kuò)展中斷源通過與門電路組成線與后再與(成線與后再與(P3.2P3.2)相連,)相連,4 4個外部擴(kuò)展中斷源個外部擴(kuò)展中斷源EXINT0 EXINT0 EXINT3 EXINT3中有一個或幾個出現(xiàn)低電平則輸出中有一個或幾個出現(xiàn)低電平則輸出為為0 0,使,使P3.2P3.2腳為低電平,從而發(fā)出中斷請求。腳為低電平,從而發(fā)出中斷請求。CPUCPU執(zhí)執(zhí)行中斷服務(wù)程序時,先
39、依次查詢行中斷服務(wù)程序時,先依次查詢P1P1口的中斷源輸入狀口的中斷源輸入狀態(tài),然后,轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序,態(tài),然后,轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序,4 4個擴(kuò)展中個擴(kuò)展中斷源的優(yōu)先級順序由軟件查詢順序決定,即最先查詢斷源的優(yōu)先級順序由軟件查詢順序決定,即最先查詢的優(yōu)先級最高,最后查詢的優(yōu)先級最低。的優(yōu)先級最高,最后查詢的優(yōu)先級最低。 【例例4.14.1】試編寫允許試編寫允許/INT1/INT1、T0T0中斷,并將中斷,并將/INT1/INT1設(shè)置高優(yōu)先級的初始化程序。設(shè)置高優(yōu)先級的初始化程序。 #include #include void main ( )void main ( ) EA =
40、1 EA = 1; /CPU/CPU開中斷開中斷 EX1 = 1 EX1 = 1; /允許允許/INT1/INT1中斷中斷 ET0 = 1 ET0 = 1; /允許允許T0T0中斷中斷 PX1 = 1PX1 = 1; / /設(shè)置設(shè)置/INT1/INT1為高優(yōu)先級為高優(yōu)先級 【例例4.34.3】將任務(wù)將任務(wù)3 3的電路圖中的的電路圖中的A A端改接在端改接在P3.3P3.3上,上,編寫程序,使每按下按鍵編寫程序,使每按下按鍵SW1SW1后,后,P1P1口的發(fā)光二極管口的發(fā)光二極管實現(xiàn)亮點流動。實現(xiàn)亮點流動。 分析:改變的地方有兩處,一是電路變了分析:改變的地方有兩處,一是電路變了(P3.2P3.
41、2改成了改成了P3.3P3.3),二是閃爍狀態(tài)變了(由亮滅),二是閃爍狀態(tài)變了(由亮滅切換變成流動)。切換變成流動)。 程序只要做如下改變:一是改變一下中斷服務(wù)程序只要做如下改變:一是改變一下中斷服務(wù)程序的入口地址(使用程序的入口地址(使用/INT1/INT1,而不是,而不是INT0INT0),二是),二是在主程序中改變一下中斷控制位和在主程序中改變一下中斷控制位和A A的初始值,三是的初始值,三是改變一下中斷服務(wù)程序改變一下中斷服務(wù)程序( (函數(shù)函數(shù)) )。則可編程如下:。則可編程如下:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138
42、P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C130pFC230pFX1CRYSTALVCCGNDC310uFR18.2kGNDVCCR2560R3560R4560R5560R6560R7560R8560R9560VCCD5LED-YELLOWD1LED-YELLOWD2LED-YELLOWD3LED-YELLOWD4LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8R104.7kR114.7kSW1SW-SPDT123U2:A7400456U2:B7400abA#include #include unsigned
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)教師教學(xué)能力提升制度
- 企業(yè)員工培訓(xùn)與素質(zhì)發(fā)展目標(biāo)路徑技能制度
- 2026年可持續(xù)發(fā)展視角下的綠色交通建設(shè)與策略題庫
- 合成生物學(xué)“細(xì)胞工廠”生產(chǎn)過程的實時代謝流分析與優(yōu)化軟件服務(wù)合同
- 會員客戶分級權(quán)益管理制度
- 2025年山西省運城市單招職業(yè)適應(yīng)性測試題庫附答案解析
- 2025年浙江工商大學(xué)馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 2025年蘇州工業(yè)職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2025年臨汾職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試題庫帶答案解析
- 2025年山東省淄博市單招職業(yè)適應(yīng)性考試題庫附答案解析
- 深海資源勘探中的分布式感知系統(tǒng)布設(shè)與效能評估
- 個人IP打造運營方案【新媒體運營】【個人自媒體IP】
- 2024-2025學(xué)年七年級語文上學(xué)期期末專題復(fù)習(xí):基礎(chǔ)知識運用(含答案)
- 高溫熔融金屬企業(yè)安全知識培訓(xùn)
- 航天禁(限)用工藝目錄(2021版)-發(fā)文稿(公開)
- 鄰近鐵路營業(yè)線施工監(jiān)測技術(shù)規(guī)程編制說明
- 教育科學(xué)研究方法智慧樹知到期末考試答案章節(jié)答案2024年浙江師范大學(xué)
- 民辦高中辦學(xué)方案
- 樹脂鏡片制作課件
- 企業(yè)對賬函模板11
- GB/T 20452-2021仁用杏杏仁質(zhì)量等級
評論
0/150
提交評論