定時(shí)計(jì)數(shù)中斷精品課件_第1頁
定時(shí)計(jì)數(shù)中斷精品課件_第2頁
定時(shí)計(jì)數(shù)中斷精品課件_第3頁
定時(shí)計(jì)數(shù)中斷精品課件_第4頁
定時(shí)計(jì)數(shù)中斷精品課件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、定時(shí)計(jì)數(shù)中斷第1頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 中斷的基本概念 80C51中斷源 中斷控制寄存器 中斷處理過程 中斷優(yōu)先控制和中斷嵌套 中斷系統(tǒng)的應(yīng)用 80C51定時(shí)/計(jì)數(shù)器 定時(shí)/計(jì)數(shù)器控制寄存器 定時(shí)/計(jì)數(shù)器工作方式 定時(shí)/計(jì)數(shù)器的應(yīng)用第5章 中斷系統(tǒng)和定時(shí)/計(jì)數(shù)器 本章要點(diǎn):第2頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三5-1 80C51中斷系統(tǒng)CPU暫時(shí)中止其正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行請(qǐng)求中斷的那個(gè)外設(shè)或事件的服務(wù)程序,等處理完畢后再返回執(zhí)行原來中止的程序, 叫做中斷。 為什么要設(shè)置中斷? 提高CPU工作效率 具有實(shí)時(shí)處理功能 具有故障處理功能 實(shí)

2、現(xiàn)分時(shí)操作一.中斷概述 什么叫中斷?第3頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 INT0:外部中斷0,中斷請(qǐng)求信號(hào)由P3.2輸入。 INT1:外部中斷1,中斷請(qǐng)求信號(hào)由P3.3輸入。 T0:定時(shí)/計(jì)數(shù)器0溢出中斷,對(duì)外部脈沖計(jì)數(shù)由P3.4輸入。 T1:定時(shí)/計(jì)數(shù)器1溢出中斷,對(duì)外部脈沖計(jì)數(shù)由P3.5輸入。 串行中斷:包括串行接收中斷RI和串行發(fā)送中斷TI。二. 中斷源和中斷控制寄存器 中斷源 中斷源是指能發(fā)出中斷請(qǐng)求,引起中斷的裝置或事件。 80C51單片機(jī)的中斷源共有5個(gè),其中2個(gè)為外部中斷源,3個(gè)為內(nèi)部中斷源:第4頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三

3、中斷請(qǐng)求:定時(shí)和外中斷控制寄存器TCON; 串行控制寄存器SCON; 中斷允許控制寄存器IE; 中斷優(yōu)先級(jí)控制寄存器IP。 中斷控制寄存器 80C51單片機(jī)中涉及中斷控制的有3個(gè)方面4個(gè)特殊功能寄存器:第5頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三INT0、INT1、T0、T1中斷請(qǐng)求標(biāo)志放在TCON中串行中斷請(qǐng)求標(biāo)志放在SCON中。 中斷請(qǐng)求控制寄存器TCOND7D6D5D4D3D2D1D0位名稱TF1TF0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能 T1 中斷標(biāo)志T0中斷標(biāo)志 中斷標(biāo)志 觸發(fā)方式 中斷標(biāo)志觸發(fā)方式TCON的結(jié)構(gòu)、位名稱、

4、位地址和功能如下:第6頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 TCON位功能: TF1 T1溢出中斷請(qǐng)求標(biāo)志 T1計(jì)數(shù)溢出后,TF1=1 TF0 T0溢出中斷請(qǐng)求標(biāo)志 T0計(jì)數(shù)溢出后,TF0=1 IE1 外中斷中斷請(qǐng)求標(biāo)志 當(dāng)P3.3引腳信號(hào)有效時(shí),IE1=1 IE0 外中斷中斷請(qǐng)求標(biāo)志 當(dāng)P3.2引腳信號(hào)有效時(shí),IE0=1 IT1 外中斷觸發(fā)方式控制位 IT1=1,邊沿觸發(fā)方式; IT1=0,電平觸發(fā)方式。 IT0 外中斷觸發(fā)方式控制位 其意義和功能與IT1相似。第7頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三串行控制寄存器SCONTCOND7D6D5D4D3D

5、2D1D0位名稱TIRI位地址99H98H功能 串行發(fā)送中斷標(biāo)志串行接收中斷標(biāo)志 TI 串行口發(fā)送中斷請(qǐng)求標(biāo)志 RI 串行口接收中斷請(qǐng)求標(biāo)志第8頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 80C51對(duì)中斷源的開放或關(guān)閉由中斷允許控制寄存器IE控制。 中斷允許控制寄存器IEIE的結(jié)構(gòu)、位名稱和位地址如下:IED7D6D5D4D3D2D1D0位名稱EAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中斷源CPU串行口T1T0第9頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 EA CPU中斷允許控制位 EA=1,CPU開中; EA=0,CPU關(guān)中,且屏

6、蔽所有5個(gè)中斷源。 EX0 外中斷INT0中斷允許控制位 EX0=1,INT0開中;EX0=0,INT0關(guān)中。 EX1 外中斷INT1中斷允許控制位 EX1=1,INT1開中;EX1=0,INT1關(guān)中。 ET0 定時(shí)/計(jì)數(shù)器T0中斷允許控制位 ET0=1,T0開中;ET0=0,T0關(guān)中。 ET1 定時(shí)/計(jì)數(shù)器T1中斷允許控制位 ET1=1,T1開中;ET1=0,T1關(guān)中。 ES 串行口中斷(包括串發(fā)、串收)允許控制位 ES=1,串行口開中;ES=0,串行口關(guān)中。說明: 80C51對(duì)中斷實(shí)行兩級(jí)控制,總控制位是EA,每一中斷源還有各自的控制位。首先要EA=1,其次還要自身的控制位置“1”。第10

7、頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 PX0 :INT0中斷優(yōu)先級(jí)控制位。PX0=1,為高優(yōu)先級(jí); PX0=0,為低優(yōu)先級(jí); PX1 :INT1中斷優(yōu)先級(jí)控制位??刂品椒ㄍ?。 PT0 :T0中斷優(yōu)先級(jí)控制位??刂品椒ㄍ?。 PT1 :T1中斷優(yōu)先級(jí)控制位。控制方法同上。 PS :串行口中斷優(yōu)先級(jí)控制位??刂品椒ㄍ?。 中斷優(yōu)先級(jí)控制寄存器IP 80C51有5個(gè)中斷源,劃分為2個(gè)中斷優(yōu)先級(jí):高優(yōu)先級(jí)和低優(yōu)先級(jí)。 IP的結(jié)構(gòu)、位名稱和位地址如下:IED7D6D5D4D3D2D1D0位名稱PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8H中斷源串行口T1INT1T

8、0INT0第11頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三三. 中斷處理過程 中斷處理過程大致可分為四步: 中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回 中斷請(qǐng)求 中斷源發(fā)出中斷請(qǐng)求信號(hào),相應(yīng)的中斷請(qǐng)求標(biāo)志位(在中斷允許控制寄存器IE中)置“1”。 中斷響應(yīng) CPU查詢(檢測(cè))到某中斷標(biāo)志為“1”,在滿足中斷響應(yīng)條件下,響應(yīng)中斷。 中斷響應(yīng)條件: 該中斷已經(jīng)“開中”; CPU此時(shí)沒有響應(yīng)同級(jí)或更高級(jí)的中斷; 當(dāng)前正處于所執(zhí)行指令的最后一個(gè)機(jī)器周期; 正在執(zhí)行的指令不是RETI或者是訪向IE、IP的指令, 否則必須再另外執(zhí)行一條指令后才能響應(yīng)。第12頁,共42頁,2022年,5月20日,

9、0點(diǎn)48分,星期三 中斷響應(yīng)操作 CPU響應(yīng)中斷后,進(jìn)行下列操作: 保護(hù)斷點(diǎn)地址; 撤除該中斷源的中斷請(qǐng)求標(biāo)志; 關(guān)閉同級(jí)中斷; 將相應(yīng)中斷的入口地址送入PC; 80C51五個(gè)中斷入口地址:INT0:0003H; T0:000BH;INT1:0013H T1:001BH;串行口:0023H 執(zhí)行中斷服務(wù)程序 中斷服務(wù)程序應(yīng)包含以下幾部分: 保護(hù)現(xiàn)場(chǎng) 執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作 恢復(fù)現(xiàn)場(chǎng) 中斷返回 在中斷服務(wù)程序最后,必須安排一條中斷返回指令RETI,當(dāng)CPU執(zhí)行RETI指令后,自動(dòng)完成下列操作: 恢復(fù)斷點(diǎn)地址。 開放同級(jí)中斷,以便允許同級(jí)中斷源請(qǐng)求中斷。第13頁,共42頁,2022年,

10、5月20日,0點(diǎn)48分,星期三 四. 中斷響應(yīng)等待時(shí)間 若排除CPU正在響應(yīng)同級(jí)或更高級(jí)的中斷情況,中斷響應(yīng)等待時(shí)間為: 38個(gè)機(jī)器周期五. 中斷請(qǐng)求的撤除 中斷源發(fā)出中斷請(qǐng)求,相應(yīng)中斷請(qǐng)求標(biāo)志置“1”。 CPU響應(yīng)中斷后,必須清除中斷請(qǐng)求“1”標(biāo)志。否則中斷響應(yīng)返回后,將再次進(jìn)入該中斷,引起死循環(huán)出錯(cuò)。 對(duì)定時(shí)/計(jì)數(shù)器T0、T1中斷,外中斷邊沿觸發(fā)方式,CPU響應(yīng)中斷時(shí)就用硬件自動(dòng)清除了相應(yīng)的中斷請(qǐng)求標(biāo)志。 對(duì)外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合的方法消除后果。 對(duì)串行口中斷,用戶應(yīng)在串行中斷服務(wù)程序中用軟件清除TI或RI。第14頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三六.

11、中斷優(yōu)先控制和中斷嵌套 中斷優(yōu)先控制 80C51中斷優(yōu)先控制首先根據(jù)中斷優(yōu)先級(jí),此外還規(guī)定了同一中斷優(yōu)先級(jí)之間的中斷優(yōu)先權(quán)。其從高到低的順序?yàn)椋?INT0、INT1、T0、T1、串行口。 中斷優(yōu)先級(jí)是可編程的,而中斷優(yōu)先權(quán)是固定的,不能設(shè)置,僅用于同級(jí)中斷源同時(shí)請(qǐng)求中斷時(shí)的優(yōu)先次序。 80C51中斷優(yōu)先控制的基本原則: 高優(yōu)先級(jí)中斷可以中斷正在響應(yīng)的低優(yōu)先級(jí)中斷,反之則不能。 同優(yōu)先級(jí)中斷不能互相中斷。 同一中斷優(yōu)先級(jí)中,若有多個(gè)中斷源同時(shí)請(qǐng)求中斷,CPU將先響應(yīng)優(yōu)先權(quán)高的中斷,后響應(yīng)優(yōu)先權(quán)低的中斷。第15頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 中斷嵌套 當(dāng)CPU正在執(zhí)行某個(gè)

12、中斷服務(wù)程序時(shí),如果發(fā)生更高一級(jí)的中斷源請(qǐng)求中斷,CPU可以“中斷”正在執(zhí)行的低優(yōu)先級(jí)中斷,轉(zhuǎn)而響應(yīng)更高一級(jí)的中斷,這就是中斷嵌套。 中斷嵌套只能高優(yōu)先級(jí)“中斷”低優(yōu)先級(jí),低優(yōu)先級(jí)不能“中斷”高優(yōu)先級(jí),同一優(yōu)先級(jí)也不能相互“中斷”。 中斷嵌套結(jié)構(gòu)類似與調(diào)用子程序嵌套,不同的是: 子程序嵌套是在程序中事先按排好的;中斷嵌套是隨機(jī)發(fā)生的。 子程序嵌套無次序限制,中斷嵌套只允許高優(yōu)先級(jí)“中斷”低優(yōu)先級(jí)。第16頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三七. 中斷系統(tǒng)的應(yīng)用 中斷初始化 設(shè)置堆棧指針SP 定義中斷優(yōu)先級(jí) 定義外中斷觸發(fā)方式 開放中斷 安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的

13、操作內(nèi)容。 中斷服務(wù)主程序 中斷服務(wù)子程序內(nèi)容要求: 在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處。 根據(jù)需要保護(hù)現(xiàn)場(chǎng)。 中斷源請(qǐng)求中斷服務(wù)要求的操作。 恢復(fù)現(xiàn)場(chǎng)。與保護(hù)現(xiàn)場(chǎng)相對(duì)應(yīng),注意先進(jìn)后出、后進(jìn)先出操作原則。 中斷返回,最后一條指令必須是RETI。第17頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三【例】 出租車計(jì)價(jià)器計(jì)程方法是車輪每運(yùn)轉(zhuǎn)一圈產(chǎn)生一個(gè)負(fù)脈沖,從外中斷(P3.2)引腳輸入,行駛里程為輪胎周長運(yùn)轉(zhuǎn)圈數(shù),設(shè)輪胎周長為2m,試實(shí)時(shí)計(jì)算出租車行駛里程(單位米),數(shù)據(jù)存32H、31H、30H。 中斷系統(tǒng)應(yīng)用舉例解:編程如下: ORG 0000H;復(fù)位地

14、址 LJMP STAT;轉(zhuǎn)初始化 ORG 0003H;中斷入口地址 LJMP INT;轉(zhuǎn)中斷服務(wù)程序第18頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 ORG 0100H;初始化程序首地址STAT: MOV SP,#60H;置堆棧指針 SETB ITO;置邊沿觸發(fā)方式 MOV IP,#01H;置高優(yōu)先級(jí) MOV IE,#81H;開中 MOV 30H,#0;里程計(jì)數(shù)器清0 MOV 31H,#0; MOV 32H,#0; LJMP MAIN;轉(zhuǎn)主程序,并等待中斷 ORG 0200H;中斷服務(wù)子程序首地址INT: PUSH Acc;保護(hù)現(xiàn)場(chǎng) PUSH PSW; MOV A,30H;讀低8

15、位計(jì)數(shù)器 ADD A,#2;低8位計(jì)數(shù)器加2m MOV 30H,A;回存 CLR A; ADDC A,31H;中8位計(jì)數(shù)器加進(jìn)位 MOV 31H,A;回存 CLR A; ADDC A,32H;高8位計(jì)數(shù)器加進(jìn)位 MOV 32H,A;回存 PUSH PSW;恢復(fù)現(xiàn)場(chǎng) PUSH Acc ; RETI;中斷返回第19頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三【例】現(xiàn)有5個(gè)外中斷源EX1、EX20、EX21、EX22和EX23,高電平時(shí)表示請(qǐng)求中斷,要求執(zhí)行相應(yīng)中斷服務(wù)程序,試編制程序。 解:ORG0000H;復(fù)位地址LJMPMAIN;轉(zhuǎn)主程序ORG0003H;中斷入口地址LJMPPIN

16、T0;轉(zhuǎn)中斷服務(wù)程序ORG0013H;中斷入口地址LJMPPINT1;轉(zhuǎn)中斷服務(wù)程序第20頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 ORG0100H ;主程序首地址MAIN: MOVSP,#60H;置堆棧指針 ORLTCON,#05H;置INT0、INT1為邊沿觸發(fā)方式 SETBPX0 ;置為高優(yōu)先級(jí) MOVIE,#0FFH;全部開中 ;主程序內(nèi)容 ORG 1000H;中斷服務(wù)程序首地址 PINT0: PUSHAcc;中斷,保護(hù)現(xiàn)場(chǎng) LCALL WORK1;調(diào)用EX1服務(wù)子程序 POPAcc;恢復(fù)現(xiàn)場(chǎng) RETI;中斷返回 ORG 2000H ;中斷服務(wù)程序首地址PINT1: C

17、LR EA ;CPU禁中 PUSH Acc ;中斷保護(hù)現(xiàn)場(chǎng) PUSH DPH ; PUSH DPL ; SETB EA ;CPU開中第21頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 JB P1.0,LWK20;P1.0=1,EX20請(qǐng)求中斷 JB P1.1,LWK21;P1.1=1,EX21請(qǐng)求中斷 JB P1.2,LWK22;P1.2=1,EX22請(qǐng)求中斷 LCALL WORK23 ;P1.3=1,調(diào)用EX23服務(wù)子LRET: CLR EA;CPU禁中 POP DPL;恢復(fù)現(xiàn)場(chǎng) POP DPH; POP Acc; SETB EA;CPU開中 RETI;中斷返回LWK20: LC

18、ALL WORK20;P1.0 = 1,調(diào)用EX20服務(wù)子程序 SJMP LRET ;轉(zhuǎn)中斷返回LWK21: LCALL WORK21 ;P1.1 = 1,調(diào)用EX21服務(wù)子程序 SJMP LRET;轉(zhuǎn)中斷返回LWK22: LCALL WORK22 ;P1.2 = 1,調(diào)用EX22服務(wù)子程序 SJMP LRET;轉(zhuǎn)中斷返回第22頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 定時(shí)/計(jì)數(shù)器是單片機(jī)系統(tǒng)一個(gè)重要的部件,其工作方式靈活、編程簡(jiǎn)單、使用方便,可用來實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測(cè)量、脈寬測(cè)量、信號(hào)發(fā)生、信號(hào)檢測(cè)等。此外,定時(shí)/計(jì)數(shù)器還可作為串行通信中波特率發(fā)生器。5-2 80C51

19、定時(shí)/計(jì)數(shù)器第23頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三80C51單片機(jī)內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器T0和T1,其核心是計(jì)數(shù)器,基本功能是加1。對(duì)外部事件脈沖(下降沿)計(jì)數(shù),是計(jì)數(shù)器;對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),是定時(shí)器。計(jì)數(shù)器由二個(gè)8位計(jì)數(shù)器組成。定時(shí)時(shí)間和計(jì)數(shù)值可以編程設(shè)定,其方法是在計(jì)數(shù)器內(nèi)設(shè)置一個(gè)初值,然后加1計(jì)滿后溢出。調(diào)整計(jì)數(shù)器初值,可調(diào)整從初值到計(jì)滿溢出的數(shù)值,即調(diào)整了定時(shí)時(shí)間和計(jì)數(shù)值。定時(shí)/計(jì)數(shù)器作為計(jì)數(shù)器時(shí),外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時(shí)鐘頻率的1/24。一. 定時(shí)/計(jì)數(shù)器概述第24頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三

20、TCON低4位與外中斷 、 有關(guān),已在中斷中敘述。 高4位與定時(shí)/計(jì)數(shù)器T0、T1有關(guān)。 TF1:定時(shí)/計(jì)數(shù)器T1溢出標(biāo)志。 TF0:定時(shí)/計(jì)數(shù)器T0溢出標(biāo)志。 TR1:定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位。TR1=1,T1運(yùn)行;TR1=0,T1停。 TR0:定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位。TR0=1,T0運(yùn)行;TR0=0,T0停。TCON的字節(jié)地址為88H,每一位有位地址,均可位操作。 定時(shí)/計(jì)數(shù)器控制寄存器TCON二. 定時(shí)/計(jì)數(shù)器的控制寄存器TCONT1中斷標(biāo)志T1運(yùn)行標(biāo)志T0中斷標(biāo)志T0運(yùn)行標(biāo)志INT1中斷標(biāo)志INT1觸發(fā)方式INT0中斷標(biāo)志INT0觸發(fā)方式位名稱TF1TR1TF0TR0IE1IT1

21、IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H第25頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三高4位控制T1低4位控制T0門控位計(jì)數(shù)/定時(shí)方式選擇工作方式選擇門控位計(jì)數(shù)/定時(shí)方式選擇工作方式選擇GC / TM1M0GC / TM1M0TMOD用于設(shè)定定時(shí)/計(jì)數(shù)器的工作方式低4位用于控制T0,高4位用于控制T1。 定時(shí)/計(jì)數(shù)器工作方式控制寄存器TMOD M1M0 工作方式選擇位M1M0工作方式功能00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2兩個(gè)8位計(jì)數(shù)器,初值自動(dòng)裝入11方式3兩個(gè)8位計(jì)數(shù)器,僅適用T0第26頁,共42頁,2022年,5月20日,0點(diǎn)4

22、8分,星期三 C/T 計(jì)數(shù)/定時(shí)方式選擇位 C/T=1,計(jì)數(shù)工作方式,對(duì)外部事件脈沖計(jì)數(shù),用作計(jì)數(shù)器。 C/T=0,定時(shí)工作方式,對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),用作定時(shí)器。 GATE 門控位 GATE=0,運(yùn)行只受TCON中運(yùn)行控制位TR0/TR1的控制。 GATE=1,運(yùn)行同時(shí)受TR0/TR1和外中斷輸入信號(hào)的雙重控制。 只有當(dāng)INT0/INT1=1且TR0/TR1=1,T0/T1才能運(yùn)行。 TMOD字節(jié)地址89H,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。第27頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三三. 定時(shí)/計(jì)數(shù)器工作方式 工作方式0 13位計(jì)數(shù)器,由TL0低5位和TH0 8位組

23、成,TL0低5位計(jì)數(shù)滿時(shí)不向TL0第6位進(jìn)位,而是向TH0進(jìn)位,13位計(jì)滿溢出,TF0置“1”。最大計(jì)數(shù)值213 = 8192。 工作方式1 16位計(jì)數(shù)器,最大計(jì)數(shù)值為216 = 65536。 工作方式2 8位計(jì)數(shù)器,僅用TL0計(jì)數(shù),最大計(jì)數(shù)值為28= 256,計(jì)滿溢出后,一方面進(jìn)位TF0,使溢出標(biāo)志TF0 = 1;另一方面,使原來裝在TH0中的初值裝入TL0。 優(yōu)點(diǎn):定時(shí)初值可自動(dòng)恢復(fù);缺點(diǎn):計(jì)數(shù)范圍小。 適用于需要重復(fù)定時(shí),而定時(shí)范圍不大的應(yīng)用場(chǎng)合。 工作方式3 方式3僅適用于T0,T1無方式3。 T0方式3 在方式3情況下,T0被拆成二個(gè)獨(dú)立的8位計(jì)數(shù)器TH0、TL0。 TL0使用T0原

24、有的控制寄存器資源:TF0,TR0,GATE,C/T,INT0,組成一個(gè)8位的定時(shí)/計(jì)數(shù)器; TH0借用T1的中斷溢出標(biāo)志TF1,運(yùn)行控制開關(guān)TR1,只能對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),組成另一個(gè)8位定時(shí)器(不能用作計(jì)數(shù)器)。 T0方式3情況下的T1 T1由于其TF1、TR1被T0的TH0占用,計(jì)數(shù)器溢出時(shí),只能將輸出信號(hào)送至串行口,即用作串行口波特率發(fā)生器。第28頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三其中: N與工作方式有關(guān): 方式0時(shí),N=13; 方式1時(shí),N=16; 方式2、3時(shí),N=8。 機(jī)周時(shí)間與主振頻率有關(guān):機(jī)周時(shí)間=12/fosc fosc=12MHZ時(shí),1機(jī)周=1S; f

25、osc=6MHZ 時(shí),1機(jī)周=2S。 四. 定時(shí)/計(jì)數(shù)器的應(yīng)用 計(jì)算定時(shí)/計(jì)數(shù)初值80C51定時(shí)/計(jì)數(shù)初值計(jì)算公式:第29頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三解:工作方式0: 213500S/2S=8192-250=7942=1F06H 1F06H化成二進(jìn)制: 1F06H=0001 1111 0000 0110B =000 11111000 00110 B其中:低5位00110前添加3位000送入TL0 TL0=000 00110B=06H; 高8位11111000B送入TH0 TH0=11111000B=F8H。【例】 已知晶振6MHz,要求定時(shí)0.5mS,試分別求出T0

26、工作于方式0、方式1、方式2、方式3時(shí)的定時(shí)初值。第30頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 工作方式1: T0初值 =216-500s/2s=65536250=65286=FF06H TH0=FFH;TL0=06H。 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。 工作方式3: T0方式3時(shí),被拆成兩個(gè)8位定時(shí)器,定時(shí)初值可分別計(jì)算,計(jì)算方法同方式2。兩個(gè)定時(shí)初值一個(gè)裝入TL0,另一個(gè)裝入TH0。因此: TH0=06H;TL0=06H。 從上例中看到,方式0時(shí)計(jì)算定時(shí)初值比較麻煩,根據(jù)公式計(jì)算出數(shù)值后,還要變換一下,容

27、易出錯(cuò),不如直接用方式1,且方式0計(jì)數(shù)范圍比方式1小,方式0完全可以用方式1代替,方式0與方式1相比,無任何優(yōu)點(diǎn)。第31頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 定時(shí)/計(jì)數(shù)器應(yīng)用步驟 合理選擇定時(shí)/計(jì)數(shù)器工作方式 計(jì)算定時(shí)/計(jì)數(shù)器定時(shí)初值(按上述公式計(jì)算) 編制應(yīng)用程序 定時(shí)/計(jì)數(shù)器的初始化 包括定義TMOD、寫入定時(shí)初值、設(shè)置中斷系統(tǒng)、啟動(dòng)定時(shí)/計(jì)數(shù)器運(yùn)行等。 正確編制定時(shí)/計(jì)數(shù)器中斷服務(wù)程序 注意是否需要重裝定時(shí)初值,若需要連續(xù)反復(fù)使用原定時(shí)時(shí)間,且未工作在方式2,則應(yīng)在中斷服務(wù)程序中重裝定時(shí)初值。第32頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三【例】試用T1

28、方式2編制程序,在P1.0引腳輸出周期為400S的脈沖方波,已知fosc=12MHZ。解: 計(jì)算定時(shí)初值 T1初值=28-200s/1s=256200=56=38H TH1=38H;TL1=38H 設(shè)置TMOD: 0 0 10 0000 B=20H T0控制位,與T1無關(guān) T1方式2 T1定時(shí)器 T1啟動(dòng)與 無關(guān)第33頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 編制程序如下: ORG0000H ;復(fù)位地址LJMPMAIN ;轉(zhuǎn)主程序ORG001BH ;T1中斷入口地址LJMPIT1 ;轉(zhuǎn)T1中斷服務(wù)程序 ORG0100H ;主程序首地址MAIN: MOVTMOD,#20H ;置T

29、1定時(shí)器方式2MOVTL1,#38H ;置定時(shí)初值MOVTH1,#38H ;置定時(shí)初值備份MOVIP,#00001000B;置T1高優(yōu)先級(jí)MOVIE,#0FFH ;全部開中SETBTR1 ;T1運(yùn)行SJMP$ ;等待T1中斷 ORG 0200H ;T1中斷服務(wù)程序首地址IT1: CPL P1.0 ;輸出波形取反首地址RETI ;中斷返回第34頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三【課堂練習(xí)題】 參照以上例題工作方式2,按下列要求分別修改程序: 脈沖方波從P3.0輸出; fosc=6MHz; 脈沖方波脈寬為100s; 用定時(shí)/計(jì)數(shù)器T0;第35頁,共42頁,2022年,5月20

30、日,0點(diǎn)48分,星期三【例】已知晶振12MHZ,參閱圖5-15,要求利用定時(shí)器 T0使圖中發(fā)光二極管D進(jìn)行秒閃爍。 解:發(fā)光二極管進(jìn)行秒閃爍。即一秒鐘一亮一暗,亮500ms,暗500 ms。晶振12MHz,每機(jī)周1s,T0方式1最大定時(shí)只能65ms余。 取T0定時(shí)50ms,計(jì)數(shù)10次,即可實(shí)現(xiàn)500ms定時(shí)。 第36頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 計(jì)算定時(shí)初值 T0初值 =216-50000s/1s =6553650000=15536=3CB0H TH0=3CH;TL0=B0H。 設(shè)置TMOD: 0000 0 0 01 B = 01H T0方式1 T0 與 無關(guān) T1

31、控制位第37頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三 編制程序如下: ORG 0000H ;復(fù)位地址LJMP MAIN ;轉(zhuǎn)主程序ORG 000BH ;T0中斷入口地址LJMP IT0 ;轉(zhuǎn)T0中斷服務(wù)程序ORG 0100H ;主程序首地址MAIN:MOV TMOD,#01H ;置T0定時(shí)器方式1MOV TH0,#3CH ;置T0初值50mSMOV TL0,#0B0H ;MOV IE,#10000010B;T0開中 MOV R7,#0AH ;置50mS計(jì)數(shù)器初值 SETB TR0 ;T0運(yùn)行SJMP $ ;等待中斷 第38頁,共42頁,2022年,5月20日,0點(diǎn)48分,星期三

32、【例】已知fosc=6MHz,試編寫24小時(shí)模擬電子鐘程序,秒分時(shí)數(shù)分別存在R1、R2、R3中,可直接調(diào)用顯示程序DIR。解: ORG 0000H ;復(fù)位地址 LJMP IT0 ;轉(zhuǎn)主程序 ORG 000BH ;T0中斷入口地址 LJMP IT0 ;T0中斷,轉(zhuǎn)T0中斷服務(wù)子程序IT0 ORG 1000H ;主程序首地址START:MOV R1,#0 ;秒計(jì)數(shù)器清0 MOV R2,#0 ;分計(jì)數(shù)器清0 MOV R3,#0 ;時(shí)計(jì)數(shù)器清0 MOV R4,#0 ;500S計(jì)數(shù)器清0 MOV R5,#0 ;100ms計(jì)數(shù)器清0 MOV TMOD,#02H;置T0定時(shí)器方式2 MOV TL0,#06H ;置T0定時(shí)初值500S MOV TH0,#06H ;用于自動(dòng)恢復(fù)定時(shí)初值 SETB TR0 ;啟動(dòng)T0WAIT: LCALL DIR ;顯示時(shí)鐘時(shí)分秒并等待中斷 SJMP WAIT ;循環(huán)顯示 ORG 0200H ;T0中斷服務(wù)程序首地址IT0: MOV TH0,#3CH ;重置T0初值50mS MOV TL0,#0B0H; DJNZ R7,GORET ;判500mS到否? CPL P1.7 ;500mS 到,輸出取

溫馨提示

  • 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)論