定時(shí)器和中斷課件_第1頁
定時(shí)器和中斷課件_第2頁
定時(shí)器和中斷課件_第3頁
定時(shí)器和中斷課件_第4頁
定時(shí)器和中斷課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章定時(shí)器和中斷定時(shí)器/計(jì)數(shù)器概述4.1定時(shí)器/計(jì)數(shù)器的工作方式

4.2定時(shí)器/計(jì)數(shù)器應(yīng)用舉例

4.3中斷系統(tǒng)

4.44.1定時(shí)器/計(jì)數(shù)器概述4.1.1定時(shí)方法概述4.1.2定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理4.1.3定時(shí)器/計(jì)數(shù)器工作方式控制寄存器TMOD4.1.4定時(shí)/計(jì)數(shù)器控制寄存器TCON4.1.5定時(shí)器/計(jì)數(shù)器的初始化

1.軟件定時(shí)軟件定時(shí)是靠執(zhí)行一個(gè)循環(huán)程序以進(jìn)行時(shí)間延時(shí)。軟件定時(shí)要占用CPU。2.硬件定時(shí)對(duì)于定時(shí)時(shí)間較長的定時(shí),常使用硬件定時(shí)完成。不占CPU時(shí)間。3.可編程定時(shí)器定時(shí)這種定時(shí)方法是通過對(duì)系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)來實(shí)現(xiàn)。4.1.1定時(shí)方法概述定時(shí)器/計(jì)數(shù)器工作原理

16位的定時(shí)器/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器,其控制電路受軟件控制、切換。定時(shí)器工作前先裝入初值,利用送數(shù)指令將初值裝入TH0和TL0或TH1和TL1,高位數(shù)裝入TH0和TH1,低位數(shù)裝入TL0和TL1。當(dāng)發(fā)出啟動(dòng)命令后,裝初值寄存器開始計(jì)數(shù),連續(xù)加1,每一個(gè)機(jī)器周期加1一次,加到滿值(各位全1)。若再加1,則溢出,同時(shí)將初值寄存器清零。4.1.3定時(shí)器/計(jì)數(shù)器工作方式控制寄存器TMODTMOD(89H)GATEC/TM1M0GATEC/TM1M0T1T0M1,M0:工作方式定義位(定義4種方式):00:13位Timer——用它無益,不要記它!01:16位Timer——經(jīng)常用到10:可自動(dòng)重裝的8位Timer——經(jīng)常用到11:T0分為2個(gè)8位Timer;T1此時(shí)不工作——因?yàn)闆]有帶來甚麼好處,幾乎無用C/T:計(jì)數(shù)器/定時(shí)器選擇位=1外部事件計(jì)數(shù)器。對(duì)Tx引腳的負(fù)脈沖計(jì)數(shù);=0片內(nèi)時(shí)鐘定時(shí)器。對(duì)機(jī)器周期脈沖計(jì)數(shù)

GATE門控位:Timer可由軟件與硬件兩者控制GATE=0——普通用法Timer的啟/停由軟件對(duì)TRx位寫“1”/“0”控制

GATE=1——門控用法Timer的啟/停由軟件對(duì)TRx位寫“1”/“0”和在INTx引腳上出現(xiàn)的信號(hào)的高/低共同控制注意:TMOD不能位尋址,只能由字節(jié)設(shè)置T/C的工作方式,低半字節(jié)設(shè)定T/C0,高半字節(jié)設(shè)定T/C1。選擇工作方式,即對(duì)TMOD賦初值。給定時(shí)器賦初值,即把初始常數(shù)裝入TH0TL0或TH1TL1。根據(jù)需要設(shè)置中斷控制字。啟動(dòng)定時(shí)/計(jì)數(shù)器。設(shè)初值為X,最大計(jì)數(shù)值為M。初值X與機(jī)器周期T機(jī)及定時(shí)時(shí)間T的關(guān)系為 (M?X)T機(jī)=T

其中,T機(jī)=12個(gè)時(shí)鐘周期=12/fOSC

X=M-?T/T機(jī)4.1.5定時(shí)器/計(jì)數(shù)器的初始化4.2定時(shí)器/計(jì)數(shù)器的工作方式

方式013位計(jì)數(shù)方式當(dāng)TL1的低5位溢出時(shí),向TH1進(jìn)位,而TH1溢出(回零)時(shí)向TF1標(biāo)志進(jìn)位(硬件置位TF1),并申請(qǐng)中斷。還可以通過查詢TF1是否置位來判斷TH1是否回零溢出。振蕩器12TLxTHx(5位)(8位)TFx申請(qǐng)中斷Tx端TRx位GATE位INTx端≥1&C/T=0C/T=1控制=1開關(guān)接通或門與門方式1一個(gè)16為定時(shí)器/計(jì)數(shù)器。方式1的結(jié)構(gòu)幾乎與方式0完全一樣,唯一的差別是:方式1中的TH1(TH0)和TL1(TL0)均是8位的,構(gòu)成16位計(jì)數(shù)器。

振蕩器12TLxTHx(8位)(8位)TFx申請(qǐng)中斷Tx端TRx位GATE位INTx端≥1&C/T=0C/T=1控制=1開關(guān)接通或門與門方式3振蕩器12TL0(8位)TF0申請(qǐng)中斷T0端TR0位GATE位INT0端≥1&C/T=0C/T=1控制=1開關(guān)接通或門與門TH0(8位)TF1申請(qǐng)中斷TR1位控制=1T0成為雙8位TimerT1不再有Timer功能TF1,TR1出借給TH0例如:若晶振頻率為6MHz,計(jì)算單片機(jī)的最小與最大定時(shí)時(shí)間分析:已知fosc

=6MHz則:(振蕩周期)1Tc=1/6MHz(機(jī)器周期)1Tm=12Tc=12/6MHz=2S粗略地說:Tmin2S16位定時(shí)器最大數(shù)值為:216=65536=0FFFFH+1故選擇方式1工作可以得到:

Tmax=655362=131072S=131.072mS

4.3定時(shí)器/計(jì)數(shù)器的應(yīng)用舉例例如:要求對(duì)T0產(chǎn)生100mS定時(shí)進(jìn)行初始化。(晶振=6MHz)分析:已知fosc

=6MHz則:(機(jī)器周期)1Tm=12Tc=12/6MHz=2S100mS÷2S=5000016位定時(shí)器最大數(shù)值為:216=65536(=0FFFFH+1)故選擇方式1工作可以滿足要求。計(jì)算初值:65536-50000=15536=3CB0H初始化:MOVTMOD,#01H;選T0方式1MOVTH0,#3CH;賦初值高8位MOVTL0,#0B0H;賦初值低8位SETBTR0;啟動(dòng)T0定時(shí)若需要定時(shí)器0產(chǎn)生中斷還應(yīng)當(dāng)寫如下語句:SETBET0;開T0中斷允許SETBEA;開總中斷允許以及相應(yīng)的中斷服務(wù)程序。

ORG0000HAJMPMAINORG001BH;T1的中斷矢量CPLP1.0;中斷服務(wù):P1.0取非RETI;中斷返回MAIN:MOVTMOD,#20HMOVTH0,#6MOVTL0,#6SETBET1SETBEASETBTR1HERE:AJMPHERE;原地等待中斷END利用GATE門控位測(cè)量從INT1引腳輸入的正脈沖寬度。確定工作方式(TMOD)=10010000B=90H;T/C1定時(shí),方式1,GATE為1。計(jì)算初值由于被測(cè)正脈沖寬度未知,假設(shè)寬度<=65.536ms,fosc=12MHz,則:計(jì)數(shù)個(gè)數(shù):X=65536(最大)定時(shí)初值:C=65536-X=65536-65536=0,(TH1)=00H,(TL1)=00H。

ORG0000HSJMP0030HORG0030HMAIN:MOVTMOD,#90H ;置T1方式控制字MOVTL1,#00H ;MOVTH1,#00H ;T1從0開始計(jì)數(shù)JBP3.3,$ ;等低電平SETBTR1;T1允許計(jì)數(shù)JNBP3.3,$;等高電平JBP3.3,$;等低電平CLRTR1 ;停止計(jì)數(shù)4.4.1中斷有關(guān)的概念中斷就是利用軟硬件配合,根據(jù)某種需要斷開正在執(zhí)行的程序而轉(zhuǎn)向另一專門程序,結(jié)束后再返回到原斷開處繼續(xù)執(zhí)行被中止的程序,這個(gè)過程稱為中斷。中斷后轉(zhuǎn)向執(zhí)行的程序叫中斷服務(wù)或中斷處理程序。原程序被斷開的位置(地址)叫做斷點(diǎn)。發(fā)出中斷信號(hào)的設(shè)備稱為中斷源。中斷源要求中斷服務(wù)所發(fā)出的標(biāo)志信號(hào)稱為中斷請(qǐng)求或中斷申請(qǐng)。中斷源向CPU發(fā)出中斷申請(qǐng),CPU經(jīng)過判斷認(rèn)為滿足條件,則對(duì)中斷源做出答復(fù),叫中斷響應(yīng)。

TCON見定時(shí)部分。SCON:串行口控制寄存器SCON(低兩位與串行口中斷有關(guān))(SCON

4.4.28051中斷標(biāo)志及控制寄存器TIR1(98H)RI,TI:串行口收/發(fā)數(shù)據(jù)申請(qǐng)中斷標(biāo)志位為1:申請(qǐng)中斷;為0:不申請(qǐng)中斷IE(A8H)EA—ET2ESET1EX1ET0EX0EX0/EX1/ET1/ET0/ES位:分別是INT0/1,Timer0/1,串行口的中斷允許控制位:=0時(shí)禁止中斷;=1時(shí)允許中斷。ET2:T2中斷允許控制位(僅52子系列有)=0時(shí)禁止中斷;=1時(shí)允許中斷。EA:總的中斷允許控制位(總開關(guān)):=0時(shí)禁止全部中斷;=1時(shí)允許中斷。4.4.3中斷響應(yīng)的條件及響應(yīng)過程IE0EX0TF0IE1TF1TIESET1EX1ET0外部中斷請(qǐng)求0外部中斷請(qǐng)求1內(nèi)部定時(shí)器0內(nèi)部定時(shí)器1內(nèi)部串行口TRRIIE寄存器EA位IP寄存器各單路開關(guān)總開關(guān)中斷源標(biāo)志位查詢機(jī)構(gòu)高中斷級(jí)中斷請(qǐng)求低中斷級(jí)中斷請(qǐng)求中斷入口中斷源標(biāo)志位INT0INT1中斷入口中斷源標(biāo)志位中斷響應(yīng)條件在中斷源提出了中斷申請(qǐng)且CPU此前已經(jīng)允許中斷的前提下,還須滿足以下三個(gè)條件:沒有同級(jí)的中斷或更高級(jí)別的中斷正在處理;正在執(zhí)行的指令必須執(zhí)行完最后1個(gè)機(jī)器周期;若正在執(zhí)行RETI,或正在訪問IE或IP寄存器,須執(zhí)行完上述指令和下一條指令以后方能響應(yīng)中斷。中斷處理過程外部中斷(INT0,INT1)申請(qǐng)過程:在CPU已經(jīng)開放了外部中斷允許的前提下:在INT0/INT1引腳輸入一個(gè)負(fù)脈沖或低電平,TCON寄存器中的IE0/IE1標(biāo)志位自動(dòng)變“1”,檢測(cè)到IE0/IE1變“1”后,將產(chǎn)生指令:LCALL0003H(/0013H)執(zhí)行中斷服務(wù)程序,并將IE0/IE1標(biāo)志位自動(dòng)清“0”,以備下次申請(qǐng)。中斷請(qǐng)求的撤除CPU響應(yīng)某中斷請(qǐng)求后,在中斷返回前,應(yīng)撤除相應(yīng)的中斷請(qǐng)求,否則會(huì)引起下一次中斷。對(duì)于T0、T1和邊沿激活的外中斷,CPU響應(yīng)中斷后,內(nèi)部的硬件結(jié)構(gòu)會(huì)自動(dòng)清除,無須其他措施。對(duì)于串行口和由低電平觸發(fā)的外部中斷,CPU響應(yīng)后,必須通過軟件清除中斷請(qǐng)求。4.4.4中斷程序設(shè)計(jì)思想中斷程序設(shè)計(jì)的基本任務(wù)

(1)設(shè)置中斷允許控制寄存器IE,允許相應(yīng)中斷源中斷。(2)設(shè)置中斷優(yōu)先級(jí)寄存器IP,選擇分配所使用中斷源的優(yōu)先級(jí)。(3)若是外部中斷源,還要設(shè)置中斷請(qǐng)求觸發(fā)方式IT1或IT0,決定采用邊沿觸發(fā)方式還是電平觸發(fā)方式。(4)編寫中斷服務(wù)程序,處理中斷請(qǐng)求。注意:前3條一般放在初始化主程序中。采用中斷時(shí)主程序結(jié)構(gòu)

由于各中斷入口地址是固定的,而程序又必須先從主程序起始地址0000H執(zhí)行,所以在0000H起始地址的幾個(gè)字節(jié)中,要用無條件轉(zhuǎn)移指令,跳轉(zhuǎn)到主程序;另外,各種中斷入口地址之間依次只差8個(gè)字節(jié),一般在中斷進(jìn)入后,利用一條無條件轉(zhuǎn)移指令,把中斷服務(wù)程序調(diào)轉(zhuǎn)到遠(yuǎn)離其他中斷入口的適當(dāng)?shù)刂?。中斷舉例已知:(B)=01h,要求采用邊沿觸發(fā),低優(yōu)先級(jí)。此例的實(shí)際意義:在INT1引腳接一個(gè)按鈕開關(guān)到地,每按一下按鈕就申請(qǐng)一次中斷,中斷服務(wù)則是:依次點(diǎn)亮八盞燈中的一盞。INT1300ORG0000HLJMPMAINORG0013H;中斷矢量LJMPINTMAIN:SETBEA;開總中斷允許“開關(guān)”

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論