第4章 單片機中斷系統(tǒng)與定時器《單片機原理與應(yīng)用系統(tǒng)設(shè)計》_第1頁
第4章 單片機中斷系統(tǒng)與定時器《單片機原理與應(yīng)用系統(tǒng)設(shè)計》_第2頁
第4章 單片機中斷系統(tǒng)與定時器《單片機原理與應(yīng)用系統(tǒng)設(shè)計》_第3頁
第4章 單片機中斷系統(tǒng)與定時器《單片機原理與應(yīng)用系統(tǒng)設(shè)計》_第4頁
第4章 單片機中斷系統(tǒng)與定時器《單片機原理與應(yīng)用系統(tǒng)設(shè)計》_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《單片機原理與應(yīng)用系統(tǒng)設(shè)計》?精品課件合集第X章XXXX第四章單片機中斷系統(tǒng)與定時器4.14.24.34.4第四章 單片機中斷系統(tǒng)與定時器中 斷 系 統(tǒng) 概 述中

能51單片機中斷系

統(tǒng)51單片機定時器/計數(shù)器4.1 中斷系統(tǒng)概述當(dāng)CPU

與外設(shè)交換信息時,若采用查詢方式,CPU

就要浪費很多時間去等待外設(shè)。這樣就引出一個快速的CPU

與慢速的外設(shè)之間數(shù)據(jù)傳送的矛盾,這也是計算機在發(fā)展過程中遇到的嚴重問題之一。為解決這個問題,一方面要提高外設(shè)的工作速度,另一方面發(fā)展了中斷概念。中斷系統(tǒng)是計算機的重要指標(biāo)之一。中斷又是一項重要的計算機技術(shù),這一技術(shù)在單片機中得到了充分繼承。其實,中斷現(xiàn)象不僅在計算機中存在,就是在我們的日常生活中也同樣存在。4.1 中斷系統(tǒng)概述把這種方法上升到計算機理論,就是一個資源(CPU)面對多項任務(wù),但由于資源有限,因此就可能出現(xiàn)資源競爭的局面,即幾項任務(wù)來爭奪一個CPU。而中斷技術(shù)就是解決資源競爭的有效方法,采用中斷技術(shù)可以使多項任務(wù)共享一個資源,所以中斷技術(shù)實質(zhì)上就是一種資源共享技術(shù)。4

.

2 中斷的概念與功能中斷的概念外界突然發(fā)生了緊急情況,要求CPU

暫時停下現(xiàn)行程序的執(zhí)行,轉(zhuǎn)向為臨時發(fā)生的事件進行處理,處理完后,再返回繼續(xù)執(zhí)行原來程序,這個過程叫“中斷”。中斷是一種在發(fā)生了一個外部的事件時調(diào)用相應(yīng)的處理程序的過程。中斷服務(wù)程序與中斷時CPU正在運行的主程序是相互獨立的,相互不傳遞數(shù)據(jù)。中斷源:向CPU

發(fā)出中斷請求的設(shè)備或事件稱為“中斷源”。中斷請求:中斷源向CPU

提出的處理請求,稱為中斷請求或中斷申請。中斷響應(yīng)過程:CPU

暫時中止自身的事務(wù),轉(zhuǎn)去處理事件的過程,稱為CPU

的中斷響應(yīng)過程。4

.

2 中斷的概念與功能中斷的概念中斷服務(wù):對事件的整個處理過程,稱為中斷服務(wù)(或中斷處理)。中斷返回:中斷處理完畢,執(zhí)行中斷返回指令,自動彈出斷點地址到PC,再回到原來被中止的地方,稱為中斷返回。中斷優(yōu)先級:一個系統(tǒng)中,常有多個中斷源同時申請中斷,這時,CPU

必須確定首先服務(wù)的中斷源以及服務(wù)順序。在計算機應(yīng)用系統(tǒng)中,中斷源的優(yōu)先級是根據(jù)事件的實時性、重要性和軟件處理的方便性來安排的。4

.

2 中斷的概念與功能中斷的概念中斷嵌套:當(dāng)CPU

在執(zhí)行某一個中斷處理程序時,若有一優(yōu)先級更高的中斷源請求服務(wù),則CPU

應(yīng)該能掛起(用保護斷點的方式)正在運行的低優(yōu)先級中斷處理程序,響應(yīng)這個高優(yōu)先級中斷請求,即在中斷過程中發(fā)生的又一次中斷。矢量中斷:識別中斷源的方法。要求提供中斷源的信號類型或其中斷服務(wù)程序的入口地址,又稱中斷矢量,即每個中斷源都預(yù)先指定好各自的中斷標(biāo)志和中斷矢量。中斷系統(tǒng):一個計算機系統(tǒng)的中斷源有多個,用來管理這些中斷源的邏輯電路稱為中斷系統(tǒng)。中斷屏蔽:指通過設(shè)置相應(yīng)的中斷屏蔽位,禁止響應(yīng)某個中斷。4

.

2 中斷的概念與功能中斷的功能實現(xiàn)CPU

與外設(shè)的速度配合;實現(xiàn)實時控制;實現(xiàn)故障的及時處理;實現(xiàn)人機聯(lián)系。中斷系統(tǒng)需要解決的基本問題中斷源;中斷響應(yīng)與返回;優(yōu)先級控制。4.3 51單片機中斷系統(tǒng)中斷源定時中斷:定時中斷是為滿足定時或計數(shù)的需要而設(shè)置的。為此在單片機芯片內(nèi)部有兩個定時器/計數(shù)器,以對其中的計數(shù)結(jié)構(gòu)進行計數(shù)的方法,來實現(xiàn)定時或計數(shù)功能。串行中斷:串行中斷是為串行數(shù)據(jù)傳送的需要而設(shè)置的。每當(dāng)串行口接收或發(fā)送完一組串行數(shù)據(jù)時,就產(chǎn)生一個中斷請求。外中斷:外中斷是由外部信號引起的,共有2

個中斷源,即外部中斷“0”和外部中斷“1”。它們的中斷請求信號分別由引腳INT0(P3.2)和INT1(P3.3)引入。4.3 51單片機中斷系統(tǒng)中斷系統(tǒng)中斷系統(tǒng)的邏輯結(jié)構(gòu)示意圖4.3 51單片機中斷系統(tǒng)中斷系統(tǒng)每個中斷源都對應(yīng)一個中斷請求標(biāo)志位,中斷源和相關(guān)的特殊功能寄存器以及內(nèi)部硬件構(gòu)成了51

單片機的中斷系統(tǒng)。在51

單片機中,用于此目的的控制寄存器共有4

個,即定時器控制寄存器TCON、中斷允許控制寄存器IE、中斷優(yōu)先級控制寄存器IP

以及串行口控制寄存器SCON。這4個控制寄存器都屬于專用寄存器之列。4.3 51單片機中斷系統(tǒng)中斷系統(tǒng)中斷允許控制寄存器IE:可字節(jié)尋址,也可以位尋址。用戶通過對這個特殊功能寄存器的編程設(shè)置,可靈活控制每個中斷源的中斷允許或禁止。中斷優(yōu)先級寄存器IP:可字節(jié)尋址,也可以位尋址。用戶通過對這個特殊功能寄存器的編程設(shè)置,可靈活地控制每個中斷源的中斷優(yōu)先級。4.3 51單片機中斷系統(tǒng)中斷系統(tǒng)定時器控制寄存器TCON:可字節(jié)尋址,也可以位尋址。這個寄存器既有定時器/計數(shù)器的控制功能又有中斷控制功能,用戶通過對這個特殊功能寄存器的IT0、IT1

編程設(shè)置,可靈活地控制2

個外部中斷源的請求方式。串行口控制寄存器SCON:可字節(jié)尋址,也可以位尋址。4.3 51單片機中斷系統(tǒng)中斷響應(yīng)的條件單片機響應(yīng)中斷的條件為中斷源有請求(中斷允許寄存器IE

相應(yīng)位置1),且CPU開中斷(即EA=1)。如有中斷請求,且不滿足下列條件之一,則在下一個機器周期的S1

期間響應(yīng)中斷:CPU

正處在為一個同級或高級的中斷服務(wù)中。查詢中斷請求的機器周期不是當(dāng)前指令的最后一個機器周期。當(dāng)前指令是返回指令(RET、RETI)或訪問IE、IP的指令。4.3 51單片機中斷系統(tǒng)中斷響應(yīng)過程采樣中斷請求。對采樣到的中斷標(biāo)志進行查詢。CPU

響應(yīng)中斷。執(zhí)行中斷服務(wù)程序。中斷請求的撤除。中斷返回。由此過程可知,51

單片機響應(yīng)中斷后,只保護斷點而不保護現(xiàn)場信息(如累加器A、工作寄存器Rn、程序狀態(tài)字PSW等),且不能清除串行口中斷標(biāo)志TI和RI,也無法清除電平觸發(fā)的外部中斷請求信號。這都需要用戶在編制中斷服務(wù)程序時予以考慮。4.3 51單片機中斷系統(tǒng)中斷響應(yīng)時間是指CPU

檢測到中斷請求信號到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機器周期數(shù)。51

單片機響應(yīng)中斷的最短時間需3

個機器周期。中斷響應(yīng)的最長時間由下列情況所決定:若中斷檢測時正在執(zhí)行RETI或訪問IE或IP指令的第一個機器周期,則包括檢測在內(nèi)需要2

個機器周期(以上三條指令均需2

個機器周期);若緊接著要執(zhí)行的指令恰好是執(zhí)行時間最長的乘除法指令,則這兩條指令的執(zhí)行時間均為4

個機器周期;再用2

個機器周期執(zhí)行一條長調(diào)用指令轉(zhuǎn)入中斷服務(wù)程序,總共需要8

個機器周期。其他情況下的中斷響應(yīng)時間一般為3~8

個機器周期。4.3 51單片機中斷系統(tǒng)中斷響應(yīng)與執(zhí)行過程中斷響應(yīng)就是對中斷源提出的中斷請求的接受,是在中斷查詢之后進行的,當(dāng)查詢到有效的中斷請求時,緊接著就進行中斷響應(yīng)。中斷響應(yīng)的主要內(nèi)容是由硬件自動生成一條長調(diào)用指令LCALL。其格式為LCALL

addrl6,這里的addrl6

就是程序存儲器中相應(yīng)中斷源的入口地址。中斷響應(yīng)與執(zhí)行過程示意圖4.3 51單片機中斷系統(tǒng)中斷優(yōu)先級——中斷優(yōu)先級控制正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷,一直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序中的一條指令后,CPU

才響應(yīng)新的中斷請求。正在進行的低優(yōu)先級中斷服務(wù)能被高優(yōu)先級中斷請求所中斷,實現(xiàn)兩級中斷嵌套。CPU

同時接收到幾個中斷請求時,首先響應(yīng)優(yōu)先級最高的中斷請求。4.3 51單片機中斷系統(tǒng)中斷優(yōu)先級——自然優(yōu)先級系統(tǒng)復(fù)位時低優(yōu)先級是默認值。當(dāng)有若干中斷源處于同一中斷優(yōu)先級時,若同時接收到幾個同一優(yōu)先級的中斷請求,在這種情況下,響應(yīng)的優(yōu)先順序由中斷系統(tǒng)的硬件確定,CPU

自動按自然優(yōu)先級執(zhí)行,用戶無法決定。順序從高到低如下:外部中斷源0→定時器0→外部中斷源1→定時器1→串口中斷4.3 51單片機中斷系統(tǒng)中斷程序舉例——主程序主程序是以跳轉(zhuǎn)的目標(biāo)地址作為起始地址開始編寫,一般從0030H開始。主程序的初始化是對將要用到的51

單片機內(nèi)部部件或擴展芯片進行初始工作狀態(tài)設(shè)定。51

單片機復(fù)位后,特殊功能寄存器IE、IP的內(nèi)容均為00H,所以應(yīng)對IE,IP

進行初始化編程,以開放CPU中斷,允許某些中斷源中斷和設(shè)置中斷優(yōu)先級等。主程序地址安排4.3 51單片機中斷系統(tǒng)中斷程序舉例——中斷服務(wù)程序如果中斷程序的指令代碼少于8

個字節(jié),則可從規(guī)定的中斷服務(wù)程序入口地址開始,直接編寫中斷服務(wù)程序;若中斷服務(wù)程序的指令代碼大于8個字節(jié),則應(yīng)采用與主程序相同的方法,在相應(yīng)的入口處寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標(biāo)地址作為中斷服務(wù)程序的起始地址進行編程。以INT0

為例,中斷矢量地址為

0003H,中斷服務(wù)程序從0200H

開始。中斷服務(wù)程序地址4.3 51單片機中斷系統(tǒng)中斷程序舉例——中斷服務(wù)程序中斷服務(wù)程序編制中的注意事項:為了使中斷服務(wù)程序的執(zhí)行不破壞CPU中寄存器或存儲單元的原有內(nèi)容,以免在中斷返回后影響主程序的運行,用戶在進入中斷服務(wù)之后,首先要把CPU中有關(guān)寄存器或存儲單元的內(nèi)容推入堆棧中保護起來。在保護現(xiàn)場和恢復(fù)現(xiàn)場時,為了不使現(xiàn)場信息受到破壞或造成混亂,一般應(yīng)關(guān)閉CPU中斷,使CPU

暫不響應(yīng)新的中斷請求。若要在執(zhí)行當(dāng)前中斷程序時禁止更高優(yōu)先級中斷,可以先用軟件關(guān)閉CPU

中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。及時清除那些不能被硬件自動清除的中斷請求標(biāo)志,以免產(chǎn)生錯誤的中斷。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器概述定時器/計數(shù)器是51單片機的重要功能模塊之一。在檢測、控制及智能儀器等應(yīng)用中,常用定時器作實時時鐘來實現(xiàn)定時檢測、定時控制;還可用定時器產(chǎn)生毫秒寬的脈沖,來驅(qū)動步進電機一類的電器機械。計數(shù)器主要用于外部事件的計數(shù)。定時器/計數(shù)器特點定時器/計數(shù)器有多種方式,可以是計數(shù)方式,也可以是定時方式。定時器/計數(shù)器的計數(shù)值是可變的,當(dāng)然計數(shù)的最大值是有限的,這取決于計數(shù)器的位數(shù)。計數(shù)的最大值也就限定了定時的最大值。在到達設(shè)定的定時或計數(shù)值時發(fā)出中斷申請,以便實現(xiàn)功能控制。4.4 51單片機定時器/計數(shù)器定時方法軟件定時:軟件定時是靠執(zhí)行一個循環(huán)程序以進行時間延遲。時間不精確,不需外加硬件電路。但軟件定時要占用CPU,增加CPU

開銷,因此軟件定時的時間不宜太長。硬件定時:對于時間較長的定時,常使用硬件電路完成。硬件定時方法的特點是定時功能全部由硬件電路完成,不占CPU

時間,定時精確。可編程定時器定時:是通過對系統(tǒng)時鐘脈沖的計數(shù)來實現(xiàn)的。計數(shù)值通過程序設(shè)定,改變計數(shù)值,也就改變了定時時間,使用起來既靈活又方便。4.4 51單片機定時器/計數(shù)器計數(shù)功能的實現(xiàn)所謂計數(shù)是指對外部事件進行計數(shù)。外部事件的發(fā)生以輸入脈沖表示,因此計數(shù)功能的實質(zhì)就是對外來脈沖進行計數(shù)。當(dāng)設(shè)置為計數(shù)工作方式時,51

單片機有T0(P3.4)和T1(P3.5)兩個信號引腳,分別是這兩個計數(shù)器的計數(shù)輸入端。外部輸入的脈沖在負跳變時有效,進行計數(shù)器加l(加法計數(shù))。計數(shù)方式下,單片機在每個機器周期的S5P2

拍節(jié)對外部計數(shù)脈沖進行采樣。如果前一個機器周期采樣為高電平,后一個機器周期采樣為低電平,即為一個有效的計數(shù)脈沖。在在下一機器周期的S3P1

進行計數(shù)??梢姴蓸佑嫈?shù)脈沖是在2

個機器周期進行的。鑒于此,計數(shù)脈沖的頻率不能高于振蕩脈沖頻率的l/24。4.4 51單片機定時器/計數(shù)器定時功能的實現(xiàn)定時功能也是通過計數(shù)器的計數(shù)來實現(xiàn)的,不過此時的計數(shù)脈沖來自單片機的內(nèi)部,即每個機器周期產(chǎn)生一個計數(shù)脈沖。也就是對片內(nèi)機器時鐘(周期方波)進行計數(shù),每個機器周期計數(shù)器加1。由于一個機器周期等于12

個振蕩脈沖周期,因此計數(shù)頻率為振蕩頻率的1/12。定時時間的長短與計數(shù)器事先裝入的初值有關(guān),裝入的初值越大,定時越短。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器的結(jié)構(gòu)51

系列單片機內(nèi)部就有兩個定時器/計數(shù)器T0

和T1。每個定時器/計數(shù)器都具有定時和計數(shù)兩種功能。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器的結(jié)構(gòu)定時器/計數(shù)器的核心是16

位加法計數(shù)器,16

位加1

計數(shù)器由兩個8

位的特殊功能寄存器組成,分別用TH0、TL0

及TH1、TL1

表示。它們可被程序控制為不同的組合狀態(tài)(13

位、16位、兩個分開的8

位等),只需用指令改變TMOD(工作方式控制寄存器)的相應(yīng)位,就形成了定時器/計數(shù)器不同的四種工作方式。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器的工作原理定時器/計數(shù)器的核心是一個加1

計數(shù)器,其輸入的計數(shù)脈沖有兩個來源:一個是外部脈沖源,另一個是系統(tǒng)的時鐘振蕩器。計數(shù)器對兩個脈沖源之一進行輸入計數(shù),每輸入一個脈沖,計數(shù)值加1。加1

計數(shù)器的基本功能是對輸入脈沖進行計數(shù),至于其工作在定時還是計數(shù)狀態(tài),則取決于外接什么樣的脈沖源。當(dāng)脈沖源為時鐘振蕩器(等間隔脈沖序列)時,由于計數(shù)脈沖為一時間基準(zhǔn),所以脈沖數(shù)乘以計數(shù)脈沖周期就是定時時間,因此是定時功能。當(dāng)脈沖源為間隔不等的外部脈沖發(fā)生器時,就是外部事件的計數(shù)器,因此是計數(shù)功能。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器的工作原理定時器/計數(shù)器原理示意圖4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器控制寄存器工作方式控制寄存器TMOD:用于控制T0

和T1

的工作方式,可通過對TMOD編程設(shè)置來選擇。其各位的定義格式如下所示:定時器工作方式選擇4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器控制寄存器定時器控制寄存器TCON:定時器控制寄存器TCON

除可字節(jié)尋址外,還可位尋址,各位定義及格式如下所示。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器工作方式及應(yīng)用當(dāng)M1M0=00時,定時器/計數(shù)器設(shè)定為工作方式0,由定時器(T0

或T1)的高8位THX和低5位TLX構(gòu)成13

位定時器/計數(shù)器。在這種模式下,16

位寄存器(TH0

和TL0)只用了13

位。定時器/計數(shù)器方式0

的邏輯結(jié)構(gòu)4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器工作方式及應(yīng)用當(dāng)M1M0=01

時,定時器/計數(shù)器設(shè)定為工作方式1,構(gòu)成了16

位定時器/計數(shù)器。此時TH0、TL0都是8

位加法計數(shù)器。其他與工作方式0

相同。定時時間和計數(shù)長度均大于方式0。當(dāng)M1M0=10時,定時器/計數(shù)器設(shè)定為工作方式2。它具有自動重新加載功能,即自動加載計數(shù)初值,TL0作為8

位加法計數(shù)器使用,H0作為初值寄存器使用,TH0、TL0

的初值都由軟件設(shè)置。TL0

計數(shù)溢出時,不僅置位TF0而且發(fā)出重裝載信號,使三態(tài)門打開,將TH0

中的初值自動送入TL0,并從初值開始重新計數(shù)。重裝初值后,TH0

的內(nèi)容保持不變。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器工作方式及應(yīng)用定時器/計數(shù)器方式2

的邏輯結(jié)構(gòu)4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器方式3

的邏輯結(jié)構(gòu)定時器/計數(shù)器工作方式及應(yīng)用當(dāng)M1M0=11

時,定時器/計數(shù)器設(shè)定為工作方式3。方式3

只適用于定時器T0。在方式3下,T0

被分成兩個相互獨立的8

位計數(shù)器TL0

和TH0。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器工作方式小結(jié)定時/計數(shù)器計數(shù)初始化定時/計數(shù)器的初始化方法:初始化的主要內(nèi)容是對TCON

和TMOD

編程,計算和裝載T0

和T1的計數(shù)初值。分析定時器/計數(shù)器的工作方式,將方式字寫入TMOD

寄存器。計算T0或T1中的計數(shù)初值,并將其寫入TH0、TL0

或TH1、TL1。根據(jù)需要開放CPU

和定時/計數(shù)器的中斷,即對IE

和IP

寄存器編程送初值。啟動定時器/計數(shù)器工作:若要求用軟件啟動,編程時對TCON

中的TR0

或TR1

置位即可啟動;若由外部中斷引腳電平啟動,則對TCON

中的TR0

或TR1

置位后,還需給外引腳加啟動電平。4.4 51單片機定時器/計數(shù)器定時器/計數(shù)器工作方式小結(jié)計數(shù)器初值的計算計數(shù)器不同工作方式時的計數(shù)初值。X=2M-N(M

為計數(shù)器位數(shù),N

為要求的計數(shù)值)方式0:M=13,計數(shù)器的最大計數(shù)值213=8

192;方式1:M=16,計數(shù)器的最大計數(shù)值216=65

536;方式2:M=8,計數(shù)器的最大計數(shù)值28=256;方式3:同方式2。4.4 51單片機定時器/計數(shù)器定時

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論