51單片機(jī)定時(shí)器(考_小題_大題).ppt_第1頁(yè)
51單片機(jī)定時(shí)器(考_小題_大題).ppt_第2頁(yè)
51單片機(jī)定時(shí)器(考_小題_大題).ppt_第3頁(yè)
51單片機(jī)定時(shí)器(考_小題_大題).ppt_第4頁(yè)
51單片機(jī)定時(shí)器(考_小題_大題).ppt_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、定時(shí)器/計(jì)數(shù)器及其應(yīng)用,2,定時(shí)器/計(jì)數(shù)器及其應(yīng)用,定時(shí)器/計(jì)數(shù)器的應(yīng)用場(chǎng)合: 定時(shí)或延時(shí)控制、對(duì)外部事件的檢測(cè)、計(jì)數(shù)等; MCS-51系列8031、8051單片機(jī)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器(即T0和T1); 8032、8052單片機(jī)有3個(gè)16位定時(shí)器/計(jì)數(shù)器(即T0、 T1和T2);,3,定時(shí)器/計(jì)數(shù)器及其應(yīng)用,所謂計(jì)數(shù)器就是對(duì)外部輸入脈沖的計(jì)數(shù); 所謂定時(shí)器也是對(duì)脈沖進(jìn)行計(jì)數(shù)完成的,計(jì)數(shù)的是51單片機(jī)內(nèi)部產(chǎn)生的標(biāo)準(zhǔn)脈沖,通過(guò)計(jì)數(shù)脈沖個(gè)數(shù)實(shí)現(xiàn)定時(shí)。 所以,定時(shí)器和計(jì)數(shù)器本質(zhì)上是一致的,在以后的敘述中將定時(shí)器/計(jì)數(shù)器籠統(tǒng)稱為定時(shí)器。,4,定時(shí)器/計(jì)數(shù)器及其應(yīng)用,5,定時(shí)器的結(jié)構(gòu)及工作原理,6,

2、定時(shí)器的結(jié)構(gòu)及工作原理,組成:兩個(gè)16位的定時(shí)器T0和T1,以及他們的工作方式寄存器TMOD和控制寄存器TCON等組成。內(nèi)部通過(guò)總線與CPU相連。 定時(shí)器T0和T1各由兩個(gè)8位特殊功能寄存器TH0、TL0、TH1、TL1構(gòu)成。 工作方式寄存器TMOD:用于設(shè)置定時(shí)器的工作模式和工作方式; 控制寄存器TCON:用于啟動(dòng)和停止定時(shí)器的計(jì)數(shù),并控制定時(shí)器的狀態(tài); 單片機(jī)復(fù)位時(shí),兩個(gè)寄存器的所有位都被清0。,8051定時(shí)器 內(nèi)部結(jié)構(gòu)框圖,7,定時(shí)器的結(jié)構(gòu)及工作原理,兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器T1、T0。 每個(gè)定時(shí)器內(nèi)部結(jié)構(gòu)實(shí)際上就是一個(gè)可編程的加法計(jì)數(shù)器,由編程來(lái)設(shè)置它工作在定時(shí)狀態(tài)還是計(jì)數(shù)狀態(tài)。 兩

3、種工作模式: (1) 計(jì)數(shù)器工作模式 就是對(duì)外部事件進(jìn)行計(jì)數(shù)。計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部輸入引腳T0(P3.4)或T1(P3.5)。當(dāng)輸入信號(hào)發(fā)生由1至0的負(fù)跳變(下降沿)時(shí),計(jì)數(shù)器(TH0,TL0或TH1,TL1)的值增1。 (2) 定時(shí)器工作模式 也是通過(guò)計(jì)數(shù)實(shí)現(xiàn)的。計(jì)數(shù)脈沖來(lái)自內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期計(jì)數(shù)值增1,每個(gè)機(jī)器周期=12個(gè)振蕩周期,因此計(jì)數(shù)頻率為振蕩頻率的1/12。所以定時(shí)時(shí)間=計(jì)數(shù)值機(jī)器周期。,8,定時(shí)器的結(jié)構(gòu)及工作原理,當(dāng)控制信號(hào) 定時(shí)器工作在定時(shí)方式;加1計(jì)數(shù)器對(duì)脈沖f進(jìn)行計(jì)數(shù),每來(lái)一個(gè)脈沖,計(jì)數(shù)器加1,直到計(jì)時(shí)器計(jì)滿溢出; 因?yàn)?,即一個(gè)計(jì)數(shù)脈沖的周期就是一個(gè)機(jī)器周期;計(jì)

4、數(shù)器計(jì)數(shù)的是機(jī)器周期脈沖個(gè)數(shù)。從而實(shí)現(xiàn)定時(shí)。 當(dāng)控制信號(hào) 定時(shí)器工作在計(jì)數(shù)方式;加1計(jì)數(shù)器對(duì)來(lái)自輸入引腳T0(P3.4)和T1(P3.5)的外信號(hào)脈沖進(jìn)行計(jì)數(shù),每來(lái)一個(gè)脈沖,計(jì)數(shù)器加1,直到計(jì)時(shí)器計(jì)滿溢出;,9,控制信號(hào)K可以控制計(jì)數(shù)器的“啟動(dòng)”和“停止”,,10,振蕩周期、時(shí)鐘周期、機(jī)器周期和指令周期,11,定時(shí)器的結(jié)構(gòu)及工作原理,在每個(gè)機(jī)器周期的S5P2期間采樣檢測(cè)引腳輸入電平。 若前一個(gè)機(jī)器周期采樣值為“1”,后一個(gè)機(jī)器周期采樣值為“0”,則計(jì)數(shù)器加1。 新的計(jì)數(shù)值在檢測(cè)到輸入引腳電平發(fā)生“1”到“0”的負(fù)跳變(下降沿)后,于下一個(gè)機(jī)器周期的S3P1期間裝入計(jì)數(shù)器中。 由于CPU需要兩個(gè)

5、機(jī)器周期來(lái)識(shí)別一個(gè)“1”到“0”的跳變信號(hào),所以最高的計(jì)數(shù)頻率為振蕩周期的1/24。,12,定時(shí)器的結(jié)構(gòu)及工作原理,定時(shí)/計(jì)數(shù)器對(duì)輸入信號(hào)的要求 外部計(jì)數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的1/24,例如選用12MHz頻率的晶體,則可輸入500KHz的外部脈沖。 輸入信號(hào)的高、低電平至少要分別保持一個(gè)機(jī)器周期。 如圖所示,圖中Tcy為機(jī)器周期。,13,可編程定時(shí)器的工作方式、啟動(dòng)、停止、溢出標(biāo)志、計(jì)數(shù)器等都是可編程的通過(guò)設(shè)置寄存器TMOD,TCON,TH0,TL0,TH1和TL1 實(shí)現(xiàn)。 當(dāng)設(shè)置了定時(shí)器的工作方式并啟動(dòng)定時(shí)器工作后,定時(shí)器就按被設(shè)定好的工作方式獨(dú)立工作,不再占用CPU,只有在計(jì)數(shù)器

6、計(jì)滿溢出時(shí)才向CPU申請(qǐng)中斷,占用CPU。 由此可見(jiàn),定時(shí)器是單片機(jī)中工作效率高且應(yīng)用靈活的部件。,定時(shí)器的結(jié)構(gòu)及工作原理,14,定時(shí)器/計(jì)數(shù)器及其應(yīng)用,定時(shí)器的TMOD和TCON寄存器,15,定時(shí)器的TMOD和TCON寄存器,8051單片機(jī)定時(shí)器主要有幾個(gè)特殊功能寄存器組成:TMOD,TCON,TH0,TL0,TH1,TL1。 TMOD:設(shè)置定時(shí)器的工作方式; TCON:控制定時(shí)器的啟動(dòng)和停止; TH0和TL0 :存放定時(shí)器T0的初值或計(jì)數(shù)結(jié)果; TH0存放高8位,TL0 存放低8位; TH1和TL1 :存放定時(shí)器T1的初值或計(jì)數(shù)結(jié)果; TH1存放高8位,TL1 存放低8位;,16,工作方式

7、控制寄存器TMOD,8位分為兩組,高4位控制T1,低4位控制T0。 (1) GATE 門(mén)控位 0: 以TRX (X=0,1) 來(lái)啟動(dòng)定時(shí)器/計(jì)數(shù)器運(yùn)行。 1: 用外中斷引腳 (INT0*或INT1*) 上的高電平和TRX來(lái)啟動(dòng)定時(shí)器/計(jì)數(shù)器運(yùn)行。,(2) M1、M0 工作方式選擇位 M1 M0 工 作 方 式 0 0 方式0,13位定時(shí)器/計(jì)數(shù)器。 0 1方式1,16位定時(shí)器/計(jì)數(shù)器。 1 0 方式2,8位常數(shù)自動(dòng)重新裝載 1 1 方式3,僅適用于T0, T0分成兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)。,(3) C/T* 計(jì)數(shù)器模式和定時(shí)器模式選擇位 0: 定時(shí)器模式。 1: 計(jì)數(shù)器模式。,(4) TM

8、OD無(wú)位地址,不能位尋址。 (5) 復(fù)位時(shí),TMOD所有位均為“0”。,17,低4位與外部中斷有關(guān),高4位的功能如下: (1) TF1、TF0 計(jì)數(shù)溢出標(biāo)志位 定時(shí)器T0或T1計(jì)數(shù)溢出時(shí),由硬件自動(dòng)將此位置“1”; TFx可以由程序查詢,也是定時(shí)中斷的請(qǐng)求源; (2) TR1、TR0 計(jì)數(shù)運(yùn)行控制位 TRx=1: 啟動(dòng)定時(shí)器/計(jì)數(shù)器工作 TRx=0: 停止定時(shí)器/計(jì)數(shù)器工作,控制寄存器TCON,18,19,定時(shí)/計(jì)數(shù)器的初始化,51單片機(jī)的定時(shí)器/計(jì)數(shù)器是可編程的,但在進(jìn)行定時(shí)或計(jì)數(shù)之前要對(duì)程序進(jìn)行初始化,具體步驟如下: (1)對(duì)TMOD賦值,以確定定時(shí)器的工作模式; (2)置定時(shí)/計(jì)數(shù)器初值

9、,直接將初值寫(xiě)入寄存器的TH0、TL0或TH1、TL1; (3)根據(jù)需要,對(duì)IE置初值,開(kāi)放定時(shí)器中斷; (4)對(duì)TCON寄存器中的TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器,置位以后,計(jì)數(shù)器即按規(guī)定的工作模式和初值進(jìn)行計(jì)數(shù)或開(kāi)始定時(shí)。,20,定時(shí)/計(jì)數(shù)器的初始化,初值計(jì)算: 設(shè)計(jì)數(shù)器的最大值為M,則置入的初值X為: 計(jì)數(shù)方式:X=M-計(jì)數(shù)值 定時(shí)方式:由(M-X)T=定時(shí)值,得X=M-定時(shí)值/T T為計(jì)數(shù)周期,是單片機(jī)的機(jī)器周期。 (模式0: M為213,模式1: M為216,模式2和3: M為28),例如:機(jī)器周期為1s 時(shí), 若工作在模式0,則最大定時(shí)值為:2131s =8.192ms 若工作

10、在模式1,則最大定時(shí)值為: 2161s =65.536ms,21,定時(shí)器/計(jì)數(shù)器及其應(yīng)用,定時(shí)器的工作方式,22,定時(shí)器T0有4種工作方式: 即:方式0,方式1,方式2,方式3。 定時(shí)器T1有3種工作方式: 即:方式0,方式1,方式2。,定時(shí)器的工作方式,23,方式0 M1、M0設(shè)置為00 ,為13位計(jì)數(shù)器,以T1為例,其框圖如下:,定時(shí)器的工作方式方式0,計(jì)數(shù)脈沖輸入,加1計(jì)數(shù)器,24,定時(shí)器的工作方式方式0,在這種方式下,16位寄存器TH1和TL1只用13位,由TH1的8位和TL1的低5位組成。TL1的高3位不定。 當(dāng)TL1的低5位計(jì)數(shù)溢出時(shí),向TH1進(jìn)位。而TH1計(jì)數(shù)溢出時(shí),則向中斷標(biāo)志

11、位TF1進(jìn)位(即硬件將TF1置1),并請(qǐng)求中斷。 可通過(guò)查詢TF1是否置“1”或考察中斷是否發(fā)生來(lái)判定定時(shí)器T1的操作完成與否。,25,定時(shí)器的工作方式方式0,當(dāng)C/T=0時(shí),為定時(shí)工作模式,開(kāi)關(guān)接到振蕩器的12分頻器輸出上,計(jì)數(shù)器對(duì)機(jī)器周期脈沖計(jì)數(shù)。其定時(shí)時(shí)間為: (213-初值)振蕩周期12 例如:若晶振頻率為12MHz,則最長(zhǎng)的定時(shí)時(shí)間為(213-0)(1/12)12us=8.191ms 當(dāng)C/T=1時(shí),為計(jì)數(shù)工作模式,開(kāi)關(guān)與外部引腳T1(P3.5)接通,計(jì)數(shù)器對(duì)來(lái)自外部引腳的輸入脈沖計(jì)數(shù)。當(dāng)外部信號(hào)發(fā)生負(fù)跳變時(shí)計(jì)數(shù)器加1。,26,定時(shí)器的工作方式方式0,GATE控制定時(shí)器Tx(T1或T

12、0)的條件: (1) 當(dāng)GATE=0時(shí),“或門(mén)”輸出恒為1,“與門(mén)”的輸出信號(hào)K由TRx決定(即此時(shí)K=TRx),定時(shí)器不受INTx輸入電平的影響,由TRx直接控制定時(shí)器的啟動(dòng)和停止。 TRx=1;計(jì)數(shù)啟動(dòng); TRx=0;計(jì)數(shù)停止; (2) 當(dāng)GATE=1時(shí), “與門(mén)”的輸出信號(hào)K由INTx輸入電平和TRx位的狀態(tài)一起決定(即此時(shí)K=TRxINTx), 當(dāng)且僅當(dāng)TRx=1且INTx=1(高電平)時(shí),計(jì)數(shù)啟動(dòng); 否則,計(jì)數(shù)停止。,返回,27,方式1 M1、M0=01,為16位的計(jì)數(shù)器,除位數(shù)外,其他與方式0相同。 其定時(shí)時(shí)間為: (216-初值)振蕩周期12 例如:若晶振頻率為12MHz,則最長(zhǎng)

13、的定時(shí)時(shí)間為 (216-0)(1/12)12us=65.536ms,定時(shí)器的工作方式方式1,28,方式2 M1、M0=10 ,為自動(dòng)恢復(fù)初值的8位計(jì)數(shù)器,等效框圖如下: TLx作為8位計(jì)數(shù)器,THx作為重置初值的緩沖器。,定時(shí)器的工作方式方式2,THx作為常數(shù)緩沖器,當(dāng)TLx計(jì)數(shù)溢出時(shí),在置“1”溢出標(biāo)志TFx的同時(shí),還自動(dòng)的將THx中的初值送至TLx,使TLx從初值開(kāi)始重新計(jì)數(shù)。定時(shí)器/計(jì)數(shù)器的方式2工作過(guò)程如圖 (x=0, 1) 。,29,優(yōu)點(diǎn): 方式0和方式1用于循環(huán)重復(fù)定時(shí)或計(jì)數(shù)時(shí),在每次計(jì)數(shù)器擠滿溢出后,計(jì)數(shù)器復(fù)0。若要進(jìn)行新一輪的計(jì)數(shù),就得重新裝入計(jì)數(shù)初值。這樣一來(lái)不僅造成編程麻煩

14、,而且影響定時(shí)精度。而方式2具有初值自動(dòng)裝入的功能,避免了這個(gè)缺點(diǎn),可實(shí)現(xiàn)精確的定時(shí)。 缺點(diǎn): 只有8位計(jì)數(shù)器,定時(shí)時(shí)間短、計(jì)數(shù)范圍小。其定時(shí)時(shí)間為: (28-初值)振蕩周期12 若晶振頻率為12MHz,則最長(zhǎng)的定時(shí)時(shí)間為 (28-0)(1/12)12us=0.256ms,定時(shí)器的工作方式方式2,方式2工作過(guò)程圖 (x=0, 1) 。,30,定時(shí)器/計(jì)數(shù)器及其應(yīng)用,定時(shí)器的編程和應(yīng)用,31,定時(shí)器的編程和應(yīng)用,編程說(shuō)明 51單片機(jī)的定時(shí)器是可編程的,但在進(jìn)行定時(shí)或計(jì)數(shù)之前要對(duì)程序進(jìn)行初始化,具體步驟如下: (1)確定工作方式字:對(duì)TMOD寄存器正確賦值; (2)確定定時(shí)初值:計(jì)算初值,直接將初

15、值寫(xiě)入寄存器的TH0、TL0或TH1、TL1; 初值計(jì)算: 設(shè)計(jì)數(shù)器的最大值為M,則置入的初值X為: 計(jì)數(shù)方式:X=M-計(jì)數(shù)值 定時(shí)方式:由(M-X)T=定時(shí)值,得X=M-定時(shí)值/T T為計(jì)數(shù)周期,是單片機(jī)的機(jī)器周期。 (模式0 M為213,模式1 M為216,模式2和3 M為28) (3)根據(jù)需要,對(duì)IE置初值,開(kāi)放定時(shí)器中斷; (4)啟動(dòng)定時(shí)/計(jì)數(shù)器,對(duì)TCON寄存器中的TR0或TR1置位,置位以后,計(jì)數(shù)器即按規(guī)定的工作模式和初值進(jìn)行計(jì)數(shù)或開(kāi)始定時(shí)。,32,定時(shí)器的編程和應(yīng)用,例1 要在P1.0上輸出一個(gè)周期為2ms的方波,假設(shè)系統(tǒng)振蕩頻率采用12MHz。 利用T0方式0產(chǎn)生1ms的定時(shí)

16、方波的周期用T0來(lái)確定,讓T0每隔1ms計(jì)數(shù)溢出1次,即TF0=1;查詢到TF0=1 則CPU對(duì)P1.0取反。,即要使P1.0每隔1ms取反一次。,33,定時(shí)器的編程和應(yīng)用,第一步: 確定工作方式字 方式0 (13位)最長(zhǎng)可定時(shí) 8.192ms; 方式1 (16位)最長(zhǎng)可定時(shí) 65.536ms; 方式2 (8位)最長(zhǎng)可定時(shí) 256s。 T0為方式0, M1M0=00 定時(shí)工作狀態(tài), C/T=0 GATE=0,不受INT0控制, T1不用全部取“0”值。 故TMOD=00H,34,定時(shí)器的編程和應(yīng)用,第二步: 計(jì)算1ms定時(shí)的初值X 設(shè)初值為X,則有: (213-X) 1210-6 1/12=1

17、10-3 可求得:X=8192-1000=7192 X化為16進(jìn)制, 即X=1C18H=1,1100,000 1,1000B。 所以,T0的初值為: TH0=E0H TL0=18H,35,例2 將例1中的輸出方波周期改為1秒。 分析: 周期為1s的方波要求500ms的定時(shí)。 (1) T0工作方式的確定 因定時(shí)時(shí)間較長(zhǎng),采用哪一種工作方式?由各種工作方式的特性,可計(jì)算出: 方式0 (13位)最長(zhǎng)可定時(shí) 8.192ms; 方式1 (16位)最長(zhǎng)可定時(shí) 65.536ms; 方式2 (8位)最長(zhǎng)可定時(shí) 256s。 所以采用定時(shí)器定時(shí)加軟件計(jì)數(shù)的方法來(lái)實(shí)現(xiàn)延長(zhǎng)定時(shí)。 選方式1,定時(shí)50ms,軟件計(jì)數(shù)10

18、次。 50ms 10=500ms。 所以,TMOD=01H,定時(shí)器的編程和應(yīng)用,以上各方式 都不滿足要求,36,(2) 計(jì)算計(jì)數(shù)初值 因?yàn)? (216-X)1210-6 1/12=5010-3 所以: X=15536=3CB0H 因此: TH0=3CH,TL0=B0H (3) 10次計(jì)數(shù)的實(shí)現(xiàn) 設(shè)計(jì)一個(gè)軟件計(jì)數(shù)器,初始值設(shè)為10。每隔50ms定時(shí)時(shí)間到,產(chǎn)生溢出標(biāo)志TF0,程序查詢到TF0=1,則軟件計(jì)數(shù)器減1。這樣減到0時(shí)就獲得了500ms的定時(shí)。,定時(shí)器的編程和應(yīng)用,37,以上的定時(shí)程序中,程序都要重置計(jì)時(shí)器初值,這樣從定時(shí)器溢出發(fā)出溢出標(biāo)志,到重裝完定時(shí)器初值,在開(kāi)始計(jì)數(shù),之間總會(huì)有一段時(shí)間間隔,使定時(shí)時(shí)間增加了若干微秒,造成定時(shí)不夠精確。 為了減小這種定時(shí)誤差,單片機(jī)中設(shè)置了工作方式2(自動(dòng)重裝初值),則可避免上述因素,省去程序中重裝初值的指令,實(shí)現(xiàn)精確定時(shí)。 但是工作方式2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論