單片機原理與應用技術(第版)電子課件第4章_第1頁
單片機原理與應用技術(第版)電子課件第4章_第2頁
單片機原理與應用技術(第版)電子課件第4章_第3頁
單片機原理與應用技術(第版)電子課件第4章_第4頁
單片機原理與應用技術(第版)電子課件第4章_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

4.1中斷系統4.2

中斷程序設計

4.3定時/計數器

4.4定時/計數器的編程舉例

小結第4章中斷系統、內部定時/計數器4.1中斷系統

“中斷”是指計算機在執行某段程序的過程中,由于計算機系統內、外的某種原因,當出現CPU以外的某種情況時,由服務對象向CPU發出中斷請求信號,要求CPU暫時中斷當前程序的執行而轉去執行相應的處理程序,待處理程序執行完畢后,再返回繼續執行原來被中斷的程序。

4.1.1中斷系統概述

1、中斷的概念

中斷系統是計算機的重要組成部分。實時控制、故障自動處理、計算機與外圍設備間的數據傳送往往采用中斷系統。

2、中斷的特點◆分時操作

◆實時處理◆故障處理3、中斷系統的功能◆實現中斷響應和中斷返回◆實現優先權排隊◆實現中斷嵌套4、中斷系統的結構框圖4.1.2中斷源

1、外部中斷源

8051的兩條外部中斷請求信號輸入線,有低電平或負跳變兩種中斷觸發方式。中斷觸發方式由定時器控制寄存器TCON中IE0和IE1位的狀態設定。

2、定時器溢出中斷源3、串行口中斷源8051內部定時/計數器溢出中斷屬于內部中斷,通常用于進行定時/計數控制。在內部定時脈沖或T0/T1引腳上輸入的外部計數脈沖作用下,加1計數的定時/計數器溢出時提出中斷請求。

8051內部串行口的發送和接收中斷也是內部中斷。在串行口進行發送/接收數據時,每發送完一組串行數據時,串行口控制寄存器SCON中的TI中斷標志位置“1”,每接收完一組串行數據則使RI置“1”,并都自動向CPU發出串行口中斷請求。

4.1.3中斷系統的控制

1、定時器控制寄存器TCON2、串行口控制寄存器SCON3、中斷控制寄存器4.1.4中斷響應

1、中斷處理的過程

中斷處理過程分為4個階段,即中斷請求、中斷響應、中斷服務和中斷返回。MCS-51系列單片機的中斷處理流程如圖所示。

2、中斷申請的撤除1) 定時器中斷請求的撤除

對于定時器T0或T1溢出中斷,CPU在響應中斷后即由硬件自動清除其中斷標志位TF0或TF1,無需采取其他措施。2) 串行口中斷請求的撤除

對于串行口中斷,CPU在響應中斷后,硬件不能自動清除中斷請求標志位TI、RI,必須在中斷服務程序中用軟件將其清除。2、中斷申請的撤除3) 外部中斷請求的撤除外部中斷可分為邊沿觸發型和電平觸發型。

對于邊沿觸發的外部中斷或,CPU在響應中斷后,由硬件自動清除其中斷標志位IE0或IE1,無需采取其他措施。對于電平觸發的外部中斷,其中斷請求撤除的方法較為復雜,只有通過硬件配合相應軟件的方式。

用戶對中斷的控制和管理,實際是對4個與中斷有關的寄存器IE、TCON、IP、SCON進行控制或管理。4.2中斷程序設計

4.2.1匯編語言中斷程序設計匯編語言的中斷服務程序按規定的中斷矢量地址存入,由于5個中斷矢量地址0003H、000BH、0013H、001BH、0023H之間相距很近,往往裝不下一個中斷服務程序,所以通常將中斷服務程序安排在程序存儲器的其他地址空間,而在矢量地址單元中安排一條轉移指令。

例4.1

在圖4.3中,P1.4~P1.7接有4個發光二極管,P1.0~P1.3接有4個開關,消抖電路用于產生中斷請求信號,消抖電路的開關來回撥動一次將產生一個下降沿信號,通過向CPU申請中斷,要求:初始發光二極管全黑,每中斷一次,P1.0~P1.3所接的開關狀態反映到發光二極管上,且要求開關合上時對應發光二極管亮。4.2.2

C語言中斷程序設計1、中斷服務函數的定義中斷服務程序定義為函數,函數的完整定義如下:

返回值函數名([參數])[模式][再入]Interruptn[Usingm](1) Interruptn:表示將函數聲明為中斷服務函數,n為中斷源編號。

(2)

Usingm:定義函數使用的工作寄存器組。函數入口處將當前寄存器保存,使用m指定的寄存器組,函數退出時原寄存器組恢復。選擇不同的工作寄存器組,可方便地實現寄存器組的現場保護。(3)

再入:屬性關鍵字reentrant將函數定義為再入函數,在C51中,普通函數(非再入函數)不能遞歸調用,只有再入函數才可被遞歸調用。2、編程舉例例4.2

用C語言對例4.1重新編程。解:編程如下:4.3定時/計數器

4.3.1定時/計數器的結構

8051單片機內部有兩個

16

位的可編程定時/計數器,稱為定時器0(T0)和定時器1(T1),可編程選擇其用作定時器或計數器,其邏輯結構如圖。4.3.2定時/計數器的工作原理當設置為定時工作方式時,計數器對內部機器周期計數,每過一個機器周期,計數器增1,直至計數器滿溢出。定時器的定時時間與系統的振蕩頻率緊密相關,MCS-51單片機的一個機器周期由12個振蕩脈沖組成,所以計數頻率fc=(1/12)fosc。

當設置為計數工作方式時,計數器對來自輸入引腳T0(P3.4)和T1(P3.5)的外部信號計數,外部脈沖的下降沿將觸發計數。在每個機器周期的S5P2期間采樣引腳輸入電平,若前一個機器周期采樣值為1,后一個機器周期采樣值為0,則計數器加1。

4.3.3定時/計數器的工作方式1、定時器工作方式寄存器TMOD2、定時/計數器的工作方式◆方式0方式0為13位定時/計數方式,由THx提供高8位、TLx提供低5位的計數初值,最大計數值為M=213=8192,每次啟動計數前均需預置計數初值。設定時器初值為C,時鐘頻率為fosc,則其定時時間T為:T=(M-C)×12/fosc

=(8192-C)×12/fosc◆方式1◆方式2◆方式3方式1與方式0基本相同,唯一區別在于:方式1計數寄存器的位數為16位,由THx和TLx寄存器各提供8位計數初值,最大計數值為216=65536。定時時間:

T=(65536-M0)×12/fosc方式2是8位的可自動重裝載計數初值的定時/計數方式,最大計數值為28=256。定時時間:

T=(256-M0)×12/fosc方式3只適合于定時/計數器0(T0)。當T0工作在方式3時,TH0和TL0成為兩個獨立的計數器。這時TL0可作定時/計數器,占用T0在TCON和TMOD寄存器中的控制位和標志位;而TH0只能用作定時器,占用T1的資源TR1和TF1。在這種情況下,T1仍可用于方式0、1、2,但不能使用中斷方式。例4.3

用定時器1、方式0實現1s的延時。例4.4

用定時器0、方式3實現1s的延時。

(1) 根據定時時間要求或計數要求計算計數器初值。(2) 填寫工作方式控制字送TMOD寄存器。(3) 送計數初值的高8位和低8位到THx和TLx寄存器中。(4) 啟動定時(或計數)器,即將TRx置位。如果工作于中斷方式,需置位EA(中斷總開關)及ETx(允許定時/計數器中斷),并編寫中斷服務程序。4.4定時/計數器的編程舉例1、定時/計數器的初始化編程步驟2、應用編程舉例例4.6

用單片機定時/計數器設計一個秒表,由P1口連接的LED采用BCD碼顯示,發光二極管亮表示0,暗表示1。計滿60s后從頭開始,依次循環。解:定時器0工作于定時方式1,產生1s的定時,程序類似于例4.4。定時器1工作在方式2,當1s時間到時,由軟件復位T1(P3.5)引腳產生負跳變,再由定時器1進行計數,計滿60次(1分鐘)溢出,再重新開始計數。按上述設計思路可知,方式寄存器TMOD的控制字應為61H,定時器1的初值應為:256-60=196=C4H小

中斷是指當機器正在執行程序的過程中,一旦遇到某些異常情況或特殊請求時,暫停正在執行的程序,轉入必要的處理(中斷服務子程序),處理完畢后,再返回到原來被停止程序的間斷處(斷點)繼續執行。引起中斷的事情稱為中斷源。中斷請求的優先級由用戶編程和內部優先級共同確定。中斷編程包括中斷入口地址設置、中斷源優先級設置、中斷開放或關閉、中斷服務子程序等。本章通過實例分別介紹了采用匯編語言程序和C語言程序編寫中斷程序。小

MCS-51單片機內部有兩個可編程定時/計數器0和1,每個定

溫馨提示

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

評論

0/150

提交評論