C51的中斷系統及定時計數器.ppt_第1頁
C51的中斷系統及定時計數器.ppt_第2頁
C51的中斷系統及定時計數器.ppt_第3頁
C51的中斷系統及定時計數器.ppt_第4頁
C51的中斷系統及定時計數器.ppt_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

VIP免費下載

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

文檔簡介

2019/9/15,1,第5章 80C51的中斷系統與定時器/計數器,5.3,2019/9/15,2,5.1 80C51的中斷系統,5.1.1 中斷及中斷嵌套的概念,中斷的概念,當CPU正在處理某項事務 的時候,如果外界或內部發生 了緊急事件,要求CPU暫停正 在處理的工作轉而去處理這個 緊急事件,待處理完后再回到 原來被中斷的地方,繼續執行 原來被中斷了的程序,這樣的 過程稱為中斷。,2019/9/15,3,與中斷有關的幾個術語:,1、中斷源:引起CPU中斷的因源。 2、中斷請求(中斷申請) :中斷源向CPU提出的處理要求。 3、中斷響應過程:CPU暫時中斷原來的工作A,轉去處理事件B的過程。 4、中斷服務(中斷處理):對事件B的整個處理過程。 5、中斷返回 : 事件處理完畢后,再回到原來被中斷的地方(斷點),繼續執行程序。 6、中斷系統:實現中斷功能的部件。,一個完整的中斷過程應包括:中斷請求、中斷判優、中 斷響應、中斷服務和中斷返回。,2019/9/15,4,對于多重中斷,若新來的中斷優先級別更高,則CPU應該中斷現行的中斷服務程序,響應優先級別高的中斷,在高級中斷處理完后,再返回原先的中斷服務程序,這個過程就是中斷嵌套。,中斷嵌套的概念,2019/9/15,5,80C51中斷系統的結構,5個中斷源、2個優先級,5.1.2 中斷請求源和中斷控制,2019/9/15,6,中斷請求源及中斷請求標志,5.1.2 中斷請求源和中斷控制,外部中斷0(INT0) 外部中斷1(INT1) T0溢出中斷(TF0) T1溢出中斷(TF1) 串行口中斷(RI或TI),2019/9/15,7,TCON寄存器:,5.1.2 中斷請求源和中斷控制,中斷控制TCON寄存器,2019/9/15,8,觸發方式設置及中斷標志,電平方式(ITx=0),INTx引腳低電平時IEx=1,響應中斷后IEx不自動清0(INTx引腳狀態)。 邊沿方式(ITx=1),INTx引腳負跳變時IEx=1,響應中斷后IEx自動清0。,外部中斷標志IE1、IE0(用IEx表示),2019/9/15,9,兩種觸發方式比較:,電平方式時, INTx低電平必須保持到響應時,否則就會漏掉;在中斷服務結束前,INTx低電平必須撤除,否則中斷返回之后將再次產生中斷。,邊沿方式時,采樣到有效下降沿后,在IEx中將鎖存一個1。若CPU暫時不能響應,申請標志也不會丟失,直到響應時才清0。,2019/9/15,10,溢出中斷標志TF1、TF0(用TFx表示),溢出中斷請求標志TFx ,Tx啟動后就開始由初值進行加1計數,直至最高位產生溢出使TFx=1向CPU請求中斷。CPU響應中斷后TFx自動清0。,2019/9/15,11,中斷控制SCON寄存器,RI:串口接收中斷標志,響應中斷時不能自動清除 TI:串口發送中斷標志,響應中斷時不能自動清除,2019/9/15,12,補充知識-中斷請求的撤除,1、定時器中斷請求的撤除: 對于定時器0或定時器1溢出中斷,CPU在響應中斷后由硬件自動清除中斷標志位TF0或TF1,無須采取其他措施。 2、串行口中斷的撤除: 對于串行口中斷,在CPU響應中斷后,硬件不能清除中斷請求標志TI或RI,必須在中斷服務程序中由軟件來清除相應的標志。 3、外部中斷的撤除: 外部中斷分為邊沿觸發和電平觸發兩種方式。 (1)對于邊沿觸發的外部中斷0或外部中斷1,CPU在響應中斷后由硬件自動清除中斷標志位IE0或IE1 ,無須采取其他措施。 (2)對于電平觸發的外部中斷0或外部中斷1,其中斷請求撤除方法較復雜。,2019/9/15,13,中斷源的開放和屏蔽由IE控制(1,開放;0,禁止),EX0:外中斷0允許 ET0:T0中斷允許 EX1:外中斷1允許,ET1:T1中斷允許 ES :串口中斷允許 EA :CPU中斷允許,中斷控制IE寄存器,2019/9/15,14,IE寄存器,2019/9/15,15,中斷控制IP寄存器,中斷優先級由IP控制(1,高級;0,低級),PX0:外中斷0優先級 PT0:T0中斷優先級 PX1:外中斷1優先級,PT1:T1中斷優先級 PS :串口中斷優先級,同一優先級的自然順序: 自高至低:INT0、TO、INT1、T1、串口。,2019/9/15,16,IP寄存器,2019/9/15,17,中斷優先級控制,幾個中斷同時申請,先響應高級的中斷 正進行的中斷服務,同級或低級中斷不能對其中斷,但可以被高級中斷所中斷。,為此,中斷系統內設有對應高、低2個優先級狀態觸發器(用戶不能尋址)。 狀態觸發器的復位由中斷返回指令RETI控制。,2019/9/15,18,1、低優先級中斷源可被高優先級中斷源所中斷 (中斷嵌套),反之不能(即高優先級中斷源不能被低 優先級中斷源中斷)。 2、一種中斷源(不管是什么優先級),一旦得到 響應,與它同級的中斷源不能再中斷它。 3、當CPU同時收到幾個同一優先級的中斷請求時, 按自然優先級的順序響應中斷。,2019/9/15,19,2019/9/15,20,5.1.3 中斷處理過程,中斷響應條件,有中斷請求 相應的中斷允許位為1 CPU開中斷(即EA=1),遇下面情況之一將不被響應(此間中斷條件失效,中斷丟失),正在處理同級或高級中斷 (沒有高優先級或同級優先級的中斷服務在執行) 當前查詢周期不是所執行指令的最后一個機器周期(正在執行的指令已結束) 正在執行RETI或訪問IE或IP的指令(如果執行的指令是RETI,或訪問IE、IP,必須再執行一條其他的指令才去中斷響應),1、中斷響應,2019/9/15,21,中斷響應時間,中斷響應至少需要3個完整的機器周期(38個)!,受阻時要附加35個機器周期(無同級或高級中斷正進行),查詢周期不是當前指令的最后機器周期(如MUL,+3) 查詢周期恰逢RETI類指令(且后跟MUL指令+5),2019/9/15,22,CPU響應中斷過程,將相應優先級狀態觸發器置1(阻斷后來同級或低級中斷 ) 執行硬件LCALL指令(PC入棧,中斷服務程序入口址送PC ) 執行中斷服務程序,編寫中斷服務程序注意,中斷服務程序入口存放指令LJMP或AJMP 現場保護與現場恢復,2019/9/15,23,中斷服務程序入口地址表,2019/9/15,24,2、中斷處理,2019/9/15,25,3、中斷返回,中斷服務程序最后指令必須是RETI,其功能:,將斷點從堆棧彈出送PC,CPU從原斷點繼續執行程序 將相應優先級狀態觸發器清0,恢復原來工作狀態,注意,不能用RET代替RETI 中斷服務程序中PUSH和POP必須成對使用,2019/9/15,26,小 結,2019/9/15,27,5.1.4 應用舉例,【例5-1】設有5個外部中斷源,中斷優先級由高到低排隊順序為XI0、XI1、XI2、XI3、XI4。試設計它們與80C51單片機的接口。,2019/9/15,28,中斷服務程序:,ORG 0003H LJMP INSE0 ORG 0013H LJMP INSE1 INSE0:PUSH PSW ;XI0中斷服務 PUSH ACC POP ACC POP PSW RETI (轉下頁),2019/9/15,29,INSE1:PUSH PSW (接上頁) PUSH ACC JB P1.0,DV1 ;P1.0為1,轉XI1中斷服務程序 JB P1.1,DV2 ;P1.1為1,轉XI2中斷服務程序 JB P1.2,DV3 ;P1.2為1,轉XI3中斷服務程序 JB P1.3,DV4 ;P1.3為1,轉XI4中斷服務程序 INRET:POP ACC POP PSW RETI DV1: ;XI1中斷服務程序 AJMP INRET DV4: ;XI4中斷服務程序 AJMP INRET,2019/9/15,30,5.2 80C51單片機的定時器/計數器,結構,基本型:T0,定時、計數。 T1,定時、計數、串口波特率發生器。,5.2.1 定時器/計數器的結構與工作原理,TH1、TL1 TH0、TL0 TCON TMOD,2019/9/15,31,由兩個特殊功能寄存器TCON、TMOD以及T0、T1 組成。 1、T0:分為兩個獨立的8位計數器(加1計數器), 分別是:低8位計數器TL0和高8位計數器TH0。 2、T1:分為兩個獨立的8位計數器(加1計數器), 分別是:低8位計數器TL1和高8位計數器TH1。 3、TMOD:定時器的模式(方式)控制寄存器。 4、TCON:定時器的控制寄存器。,2019/9/15,32,方式寄存器TMOD,GATE:門控位。GATE0時,只要TRx為1,就可啟動計數器工作;GATA1時,定時器的啟動還要加上INTx引腳為高電平這一條件。 C/T:模式選擇位。 清0為定時模式,置1為計數方式。 M1M0:工作方式設置位。可設置四種工作方式(見下頁)。,2019/9/15,33,注意:TMOD不能進行位尋址,2019/9/15,34,2019/9/15,35,控制寄存器TCON,TFx:Tx溢出標志位。響應中斷后TFx有硬件自動清0。用軟件設置TFx可產生同硬件置1或清0同樣的效果。 TRx:Tx運行控制位。置1時開始工作;清0時停止工作。TRx要由軟件置1或清0(即啟動與停止要由軟件控制)。,2019/9/15,36,工作原理,實質是加1計數器,定時器模式時,是對內部機器周期計數。計數值乘以機器周期就是定時時間(每一個機器周期使計數器的值加1 ) 計數器模式時,是對外部事件計數。脈沖由T0(P3.4)或T1(P3.5)引腳輸入。,2019/9/15,37,5.2.2 定時器/計數器的工作方式,T0有方式0、1、2、3;T1有方式0、1、2。以T0為例說明。,方式0:13位方式,2019/9/15,38,方式1:16位方式,X=216-N=65536-N 計數范圍:165536 計數初值要分成2個字節分別送入TH0、TL0,2019/9/15,39,方式2:8位自動重裝方式,X=28-N=256-N 計數范圍:1256 特別適合與脈沖信號發生器,2019/9/15,40,方式3:(僅T0有此方式,T1的方式3將停止計數),TL0進行8位定時/計數 TH0進行8位定時(T1方式2時,可出借TR1、TF1),2019/9/15,41,5.2.3 定時器/計數器的初始化,初始化步驟: 對TMOD賦值,以確定T0和T1的工作方式; 求初值,并寫入TH0、TL0或TH1、TL1; 中斷方式時,要對IE賦值,開放中斷; 使TR0或TR1置位,啟動定時/計數器工作。,2019/9/15,42,1、定時工作方式時: X=M-計數值= 2、計數工作方式時: X=M-計數值 式中: X:計數初值; t :要求定時的時間,單位是 ; fosc:振蕩器的振蕩頻率,單位是Mhz。,計數器初值的計算,M:最大計數值 模式0下: M=213=8192 模式1下: M=216=65536 模式2下: M=28=256 模式3下: M=28=256,2019/9/15,43,【例5-2】已知單片機時鐘頻率 =6MHZ,當定時器T0分別工作于方式0和方式1,定時時間為1ms時,計算送入TH0和TL0的計數初值各為多少?,2019/9/15,44,【例5-3】若單片機時鐘頻率 ,請計算定時 2ms所需的定時器初值。,解:由于定時器工作在方式2和方式3下時的最大定時時間只有0.256ms,因此要想獲得2ms的定時時間,定時器必須工作在方式0或方式1。 若采用方式0,則根據公式可求得定時器初值為: TC=213-2ms/1us=6192=1830H 即:TH0應裝入C1H;TL0應裝入10H(高三位為0) 若采用方式1,則有:TC=216-2ms/1us=63536=F830H 即:TH0應裝入F8H;TL0應裝入30H,2019/9/15,45,定時時間較小時(小于65ms),求計數初值X: Tcy為1S N=10ms/1S=10 000 X=65536-10000=D8F0H 應將D8送TH0, F0H送TL0,5.2.4 應用舉例,【例5-4】設系統的晶振頻率為12MHZ,利用定時/計數器T0的方式1,編制程序使P1.0引腳上輸出周期為20ms的方波。,確定方式字: T0在定時的方式1時: M1M0=01,GATE=0 ,C/T=0 方式控制字為01H,2019/9/15,46,ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100H MAIN:MOV TMOD,#01H ;置T0方式1 MOV TH0,#0D8H;裝入計數初值 MOV TL0,#0F0H SETB ET0 ;T0開中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $ ;等待中斷,DVT0:CPL P1.0 MOV TH0,#0D8H MOV TL0,#0F0H RETI END,主程序,中斷服務程序,2019/9/15,47,采用軟件查詢方式完成的源程序如下:,ORG 0000H LJMP MAIN ;跳轉到主程序 ORG 0100H ;主程序 MAIN:MOV TMOD,#01H ;置T0工作于方式1 LOOP:MOV TH0,#0D8H ;裝入計數初值 MOV TL0,#0F0H SETB TR0 ;啟動定時器T0 JNB TF0,$ ;TF0=0,查詢等待 CLR TF0 ;清TF0 CPL P1.0 ;P1.0取反輸出 SJMP LOOP END,2019/9/15,48,定時時間較大時(大于65ms)。實現方法:一是采用1個定時器定時一定的間隔(如20ms),然后用軟件進行計數;二是采用2個定時器級聯,其中一個定時器用來產生周期信號(如20ms為周期),然后將該信號送入另一個計數器的外部脈沖輸入端進行脈沖計數。,【例5-5】編寫程序,實現用定時/計數器T0定時,使P1.7引腳輸出周期為2s的方波。設系統的晶振頻率為12MHz。,確定方式字: T0在定時的方式1時: M1M0=01,GATE=0 ,C/T=0 方式控制字為01H,求計數初值X: Tcy為1S N=20ms/1S=

溫馨提示

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

評論

0/150

提交評論