第5章 89C51的中斷系統(tǒng)_第1頁
第5章 89C51的中斷系統(tǒng)_第2頁
第5章 89C51的中斷系統(tǒng)_第3頁
第5章 89C51的中斷系統(tǒng)_第4頁
第5章 89C51的中斷系統(tǒng)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本章分為四節(jié),主要介紹:5.289C51的中斷系統(tǒng)5.389C51的中斷處理過程5.4

中斷應用舉例5.1中斷概述1/16/202315.1中斷概述

一、中斷概念:某人看書 執(zhí)行主程序

電話鈴響 中斷信號INTx=0 中斷請求暫停看書

暫停執(zhí)行主程序

中斷響應書中作記號當前PC值入棧

保護斷點電話談話 執(zhí)行中斷程序

中斷服務繼續(xù)看書 返回主程序

中斷返回1/16/202321/16/20233中斷技術不僅解決了快速主機與慢速I/O設備的數(shù)據傳送問題,而且還具有如下優(yōu)點:

分時操作。CPU可以分時為多個I/O設備服務,提高了計算機的利用率;實時響應。CPU能夠及時處理應用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;可靠性高。CPU具有處理設備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。二、中斷的意義:1/16/202345.280C51中斷系統(tǒng)的結構中斷源TCONSCONIEIP1/16/20235

2、(P3.3)??捎蒊T1(TCON.2)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標志IE1(TCON.3)置1,向CPU申請中斷。

1、(P3.2)??捎蒊T0(TCON.0)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標志IE0(TCON.1)置1,向CPU申請中斷。5.2.180C51的中斷源

一、中斷源1/16/20236

3、TF0(TCON.5),片內定時/計數(shù)器T0溢出中斷請求標志。當定時/計數(shù)器T0發(fā)生溢出時,置位TF0,并向CPU申請中斷。

4、TF1(TCON.7),片內定時/計數(shù)器T1溢出中斷請求標志。當定時/計數(shù)器T1發(fā)生溢出時,置位TF1,并向CPU申請中斷。

5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標志。當串行口接收完一幀串行數(shù)據時置位RI或當串行口發(fā)送完一幀串行數(shù)據時置位TI,向CPU申請中斷。

1/16/20237二、中斷請求標志1、TCON的中斷標志IT0(TCON.0),外部中斷0觸發(fā)方式控制位。 當IT0=0時,為電平觸發(fā)方式。 當IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請求標志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請求標志位。TF0(TCON.5),定時/計數(shù)器T0溢出中斷請求標志位。TF1(TCON.7),定時/計數(shù)器T1溢出中斷請求標志位。

1/16/202382、SCON的中斷標志RI(SCON.0),串行口接收中斷標志位。當允許串行口接收數(shù)據時,每接收完一個串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TI(SCON.1),串行口發(fā)送中斷標志位。當CPU將一個發(fā)送數(shù)據寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位TI。CPU響應中斷時,不能自動清除TI,TI必須由軟件清除。1/16/20239一、中斷允許控制

CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。5.2.280C51中斷的控制

EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時/計數(shù)器T0中斷允許位;EX1(IE.2),外部中斷1允許位;ET1(IE.3),定時/計數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。1/16/202310二、中斷優(yōu)先級控制

80C51單片機有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中的相應位的狀態(tài)來規(guī)定的

。PX0(IP.0),外部中斷0優(yōu)先級設定位;PT0(IP.1),定時/計數(shù)器T0優(yōu)先級設定位;PX1(IP.2),外部中斷0優(yōu)先級設定位;PT1(IP.3),定時/計數(shù)器T1優(yōu)先級設定位;PS

(IP.4),串行口優(yōu)先級設定位。1/16/202311

同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權排隊問題。同一優(yōu)先級的中斷優(yōu)先權排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成。1/16/20231280C51單片機的中斷優(yōu)先級有三條原則:CPU同時接收到幾個中斷時,首先響應優(yōu)先級別最高的中斷請求。正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。正在進行的低優(yōu)先級中斷服務,能被高優(yōu)先級中斷請求所中斷。為了實現(xiàn)上述后兩條原則,中斷系統(tǒng)內部設有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置1,表示正在響應高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置1,表示正在響應低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。1/16/2023135.380C51單片機中斷處理過程

一、中斷響應條件中斷源有中斷請求;此中斷源的中斷允許位為1;

CPU開中斷(即EA=1)。同時滿足時,CPU才有可能響應中斷。5.3.1中斷響應條件和時間

1/16/202314遇以下任一條件,硬件將受阻,不產生LCALL指令:CPU正在處理同級或高優(yōu)先級中斷;當前查詢的機器周期不是所執(zhí)行指令的最后一個機器周期。即在完成所執(zhí)行指令前,不會響應中斷,從而保證指令在執(zhí)行過程中不被打斷;正在執(zhí)行的指令為RET、RETI或任何訪問IE或IP寄存器的指令。即只有在這些指令后面至少再執(zhí)行一條指令時才能接受中斷請求。中斷標志曾經有效,但未獲響應,查詢過程在下個機器周期將重新進行。1/16/202315二、中斷響應時間若M1周期的S5P2前某中斷生效,在S5P2期間其中斷請求被鎖存到相應的標志位中去;M2恰逢指令的最后一個機器周期,且該指令不是RETI或訪問IE、IP的指令。于是,M3和M4便可以執(zhí)行硬件LCALL指令,M5周期將進入了中斷服務程序。80C51的中斷響應時間(從標志置1到進入相應的中斷服務),至少要3個完整的機器周期。

1/16/202316將相應的優(yōu)先級狀態(tài)觸發(fā)器置1(以阻斷后來的同級或低級的中斷請求)。執(zhí)行一條硬件LCALL指令,即把程序計數(shù)器PC的內容壓入堆棧保存,再將相應的中斷服務程序的入口地址送入PC。執(zhí)行中斷服務程序。5.3.2中斷響應過程

中斷響應過程的前兩步是由中斷系統(tǒng)內部自動完成的,而中斷服務程序則要由用戶編寫程序來完成。

1/16/202317

5.3.3中斷返回RETI指令的具體功能是:將中斷響應時壓入堆棧保存的斷點地址從棧頂彈出送回PC,CPU從原來中斷的地方繼續(xù)執(zhí)行程序;

將相應中斷優(yōu)先級狀態(tài)觸發(fā)器清0,通知中斷系統(tǒng),中斷服務程序已執(zhí)行完畢。

注意,不能用RET指令代替RETI指令。在中斷服務程序中PUSH指令與POP指令必須成對使用,否則不能正確返回斷點。1/16/202318若外部中斷定義為電平觸發(fā)方式,電平保持到請求獲得響應時為止,不然就會漏掉;而在中斷服務程序結束之前,中斷源又必須撤消其有效的低電平,否則中斷返回之后將再次產生中斷。

電平觸發(fā)方式適合于外部中斷輸入以低電平輸入且中斷服務程序能清除外部中斷請求源的情況。1/16/202319

若外部中斷定義為邊沿觸發(fā)方式,在相繼連續(xù)的兩次采樣中,一個周期采樣到外部中斷輸入為高電平,下一個周期采樣到為低電平,則在IE0或IE1中將鎖存一個邏輯1。即便是CPU暫時不能響應,中斷申請標志也不會丟失,直到CPU響應此中斷時才清零。這樣,為保證下降沿能被可靠地采樣到,外中斷引腳上的高低電平(負脈沖的寬度)均至少要保持一個機器周期(若晶振為12MHz時,為1微秒)。

邊沿觸發(fā)方式適合于以負脈沖形式輸入的外部中斷請求,如ADC0809的轉換結束標志信號EOC為正脈沖,經反相后就可以作為80C51的中斷輸入。1/16/202320要求每次按動按鍵,使外接發(fā)光二極管LED改變一次亮滅狀態(tài)。

ORG 0000H;復位入口

AJMPMAIN

ORG 0003H;中斷入口 AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40H;設棧底

SETB EA ;開總允許開關

SETB EX0 ;開INT0中斷

SETB IT0 ;負跳變觸發(fā)中斷

H:

SJMP H ;執(zhí)行其它任務

ORG 0200H;中斷服務程序PINT0:CPLP1.0 ;改變LED

RETI

;返回主程序單片機INT0P1.01+5V跳變觸發(fā)1/16/202321

例多外部中斷源的系統(tǒng)示例。設有5個外部中斷源,中斷優(yōu)先級排隊順序為:XI0、XI1、XI2、XI3、XI4。試設計它們與80C51單片機的接口。1/16/202322INSE1:PUSHPSWPUSHACC JBP1.0,DV1 BP1.1,DV2 JBP1.2,DV3 JBP1.3,DV4INRET:POPACC POPPSWRETIDV1:……AJMPINRETDV2:……AJMPINRETDV3:……AJMPINRETDV4:1/16/202323本章到此結束謝謝大家1/16/2023245.380C51的定時/計數(shù)器

實現(xiàn)定時功能,比較方便的辦法是利用單片機內部的定時/計數(shù)器。也可以采用下面三種方法:軟件定時:軟件定時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。采用時基電路定時:例如采用555電路,外接必要的元器件(電阻和電容),即可構成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程。采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈活。在單片機的定時/計數(shù)器不夠用時,可以考慮進行擴展。1/16/2023255.3.1定時/計數(shù)器的結構和工作原理

一、定時/計數(shù)器的結構定時/計數(shù)器的實質是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設置溢出標志。

1/16/202326二、定時/計數(shù)器的工作原理

加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經12分頻后送來;一個是T0或T1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。

可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。

1/16/202327設置為定時器模式時,加1計數(shù)器是對內部機器周期計數(shù)(1個機器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機器周期Tcy就是定時時間t

。設置為計數(shù)器模式時,外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機器周期的S3P1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2s。

1/16/202328

5.3.2定時/計數(shù)器的控制

80C51單片機定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用于設置其工作方式;TCON用于控制其啟動和中斷申請。一、工作方式寄存器TMOD

工作方式寄存器TMOD用于設置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:1/16/202329GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATA=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳或也為高電平時,才能啟動定時/計數(shù)器工作。即此時定時器的啟動條件,加上了或引腳為高電平這一條件。

:定時/計數(shù)模式選擇位。=0為定時模式;=1為計數(shù)模式。M1M0:工作方式設置位。定時/計數(shù)器有四種工作方式,由M1M0進行設置。1/16/202330

二、控制寄存器TCON

TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。TR0(TCON.4):T0運行控制位,其功能與TR1類同。1/16/202331

5.3.3定時/計數(shù)器的工作方式

一、方式0

方式0為13位計數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。1/16/202332定時器模式時有:N=t/Tcy

計數(shù)初值計算的公式為:定時器的初值還可以采用計數(shù)個數(shù)直接取補法獲得。計數(shù)模式時,計數(shù)脈沖是T0引腳上的外部脈沖。門控位GATE具有特殊的作用。當GATE=0時,經反相后使或門輸出為1,此時僅由TR0控制與門的開啟,與門輸出1時,控制開關接通,計數(shù)開始;當GATE=1時,由外中斷引腳信號控制或門的輸出,此時控制與門的開啟由外中斷引腳信號和TR0共同控制。當TR0=1時,外中斷引腳信號引腳的高電平啟動計數(shù),外中斷引腳信號引腳的低電平停止計數(shù)。這種方式常用來測量外中斷引腳上正脈沖的寬度。

1/16/202333

二、方式1方式1的計數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數(shù)器。計數(shù)個數(shù)與計數(shù)初值的關系為:

1/16/202334

三、方式2方式2為自動重裝初值的8位計數(shù)方式。

工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。

計數(shù)個數(shù)與計數(shù)初值的關系為:

1/16/202335

四、方式3方式3只適用于定時/計數(shù)器T0,定時器T1處于方式3時相當于TR1=0,停止計數(shù)。

工作方式3將T0分成為兩個獨立的8位計數(shù)器TL0和TH0

。

1/16/202336

5.3.4定時/計數(shù)器用于外部中斷擴展

擴展方法是,將定時/計數(shù)器設置為計數(shù)器方式,計數(shù)初值設定為滿程,將待擴展的外部中斷源接到定時/計數(shù)器的外部計數(shù)引腳。從該引腳輸入一個下降沿信號,計數(shù)器加1后便產生定時/計數(shù)器溢出中斷。例如,利用T0擴展一個外部中斷源。將T0設置為計數(shù)器方式,按方式2工作,TH0、TL0的初值均為0FFH,T0允許中斷,CPU開放中斷。其初始化程序如下:

MOVTMOD,#06H;置T0為計數(shù)器方式2MOVTL0,#0FFH;置計數(shù)初值

MOVTH0,#0FFHSETBTR0;啟動T0工作

SETBEA;CPU開中斷

SETBET0;允許T0中斷

1/16/2023375.3.5定時/計數(shù)器應用舉例

初始化程序應完成如下工作:對TMOD賦值,以確定T0和T1的工作方式。計算初值,并將其寫入TH0、TL0或TH1、TL1。中斷方式時,則對IE賦值,開放中斷。使TR0或TR1置位,啟動定時/計數(shù)器定時或計數(shù)。1/16/202338

例利用定時/計數(shù)器T0的方式1,產生10ms的定時,并使P1.0引腳上輸出周期為20ms的方波,采用中斷方式,設系統(tǒng)時鐘頻率為12MHz。解:1、計算計數(shù)初值X:由于晶振為12MHz,所以機器周期Tcy為1s。所以:N=t/Tcy

=10×10-3/1×10-6=10000X=65536-10000=55536=D8F0H即應將D8H送入TH0中,F(xiàn)0H送入TL0中

2、求T0的方式控制字TMOD:

M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;1/16/202339

ORG0000HLJMPMAIN;跳轉到主程序

ORG000BH;T0的中斷入口地址

LJMPDVT0;轉向中斷服務程序

ORG0100HMAIN:MOVTMOD,#01H;置T0工作于方式1MOVTH0,#0D8H;裝入計數(shù)初值

MOVTL0,#0F0HSETBET0;T0開中斷

SETBEA;CPU開中斷

SETBTR0;啟動T0SJMP$;等待中斷

DVT0:CPLP1.0;P1.0取反輸出

溫馨提示

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

評論

0/150

提交評論