MCS-51單片機(jī)定時(shí)器計(jì)數(shù)器 第四章_第1頁
MCS-51單片機(jī)定時(shí)器計(jì)數(shù)器 第四章_第2頁
MCS-51單片機(jī)定時(shí)器計(jì)數(shù)器 第四章_第3頁
MCS-51單片機(jī)定時(shí)器計(jì)數(shù)器 第四章_第4頁
MCS-51單片機(jī)定時(shí)器計(jì)數(shù)器 第四章_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1、第5章MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器、主要內(nèi)容的定時(shí)器/計(jì)數(shù)器的工作原理模式定時(shí)/計(jì)數(shù)器的工作方式定時(shí)/計(jì)數(shù)器的應(yīng)用、2、(1)定時(shí)器/計(jì)數(shù)器的概念、(2) MCS-51的定時(shí)器/計(jì)數(shù)器的概要2個(gè)當(dāng)時(shí)序/計(jì)數(shù)器在時(shí)序模式下操作時(shí),計(jì)數(shù)脈沖信號(hào)來自單片機(jī)內(nèi)部,計(jì)數(shù)速率為石英振動(dòng)頻率的1/12,當(dāng)計(jì)數(shù)器啟動(dòng)時(shí),機(jī)器周期計(jì)數(shù)器自動(dòng)遞增1。 當(dāng)定時(shí)/計(jì)數(shù)器操作處于計(jì)數(shù)模式時(shí),計(jì)數(shù)器對(duì)外部脈沖進(jìn)行計(jì)數(shù),并對(duì)P3.4(T0腳) P3.5(T1腳)負(fù)跳躍次數(shù)進(jìn)行計(jì)數(shù)。 每次發(fā)生負(fù)跳躍時(shí),計(jì)數(shù)器會(huì)自動(dòng)加1。5.1的概要、3、MCS-51計(jì)時(shí)器/計(jì)數(shù)器的邏輯結(jié)構(gòu)、5.1的概要、4、5.2計(jì)時(shí)器/計(jì)數(shù)器的

2、動(dòng)作模式選擇和控制、(1)計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作模式寄存器(TMOD、89H )、5、計(jì)時(shí)器和計(jì)數(shù)器模式選擇位=0、塔=1、每當(dāng)在計(jì)數(shù)器模式、單片機(jī)T0的管腳上產(chǎn)生負(fù)跳躍時(shí),就會(huì)在計(jì)數(shù)器上自動(dòng)加1。 在門=0時(shí),不從外部控制定時(shí)/計(jì)數(shù)器的操作。 GATE=1,定時(shí)/計(jì)數(shù)器T0的上升沿由INT0端子控制。TMOD的各位的定義(以計(jì)時(shí)器/計(jì)數(shù)器T0為例)、5.2計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作模式選擇和控制、(1)計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作模式寄存器(TMOD,89H )、5.2計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作模式選擇和控制、(1)計(jì)時(shí)器/計(jì)數(shù)器6.2定時(shí)器/計(jì)數(shù)器操作方案的選擇和控制,(2)時(shí)序/計(jì)數(shù)器控制寄存器(TCON )

3、控制時(shí)序/計(jì)數(shù)器的起始/停止,反映時(shí)序/計(jì)數(shù)器是否滿足。 當(dāng)(7)時(shí)序/計(jì)數(shù)器控制寄存器(TCON )單片機(jī)被復(fù)位時(shí),特殊功能寄存器TCON被清除。 在軟件中,tfx (x=0,1 )和Trx (x=0,1 )被設(shè)置為1或0。 可以用單元操作,也可以用位操作。 啟動(dòng)計(jì)時(shí)器/計(jì)數(shù)器T0和T1后,清除溢出標(biāo)志位TF0和TF1的動(dòng)作如下所示: SETB TR0 SETB TR1 CLR TF0 CLR TF1或: MOV TCON,#01010000B, 5.2定時(shí)器/計(jì)數(shù)器動(dòng)作模式的選擇和控制,8注意:使用定時(shí)器/計(jì)數(shù)器時(shí)請(qǐng)注意以下事項(xiàng): (1)MCS-51的定時(shí)器/計(jì)數(shù)器加1計(jì)數(shù)器。 (2)在計(jì)

4、時(shí)器/計(jì)數(shù)器T1的動(dòng)作方式中沒有方式3,但是在將其設(shè)定為方式3(M1M0=11 )時(shí),計(jì)時(shí)器/計(jì)數(shù)器T1停止動(dòng)作。 (3)通常,在計(jì)時(shí)器/計(jì)數(shù)器T1溢出之后,TF1被自動(dòng)設(shè)置為1,這可以作為判定標(biāo)志來檢測(cè)定時(shí)或計(jì)數(shù)是否完成,但在計(jì)時(shí)器/計(jì)數(shù)器T0被設(shè)置為方法3的情況下,TF1被設(shè)置為(4)在計(jì)數(shù)器模式時(shí),計(jì)數(shù)脈沖的頻率是振蕩器頻率的1/24.5.2計(jì)時(shí)器/計(jì)數(shù)器的工作模式的選擇和控制,(2)計(jì)時(shí)器/計(jì)數(shù)器控制寄存器(TCON ),9,5.3.1方式0, 當(dāng)5.3計(jì)時(shí)器/計(jì)數(shù)器的操作模式和操作原理為10,門=0時(shí),如果TR0是1,在由TL0和TH0組成的13位計(jì)數(shù)器中開始計(jì)數(shù),則僅在TR0是1,

5、端子輸入信號(hào)狀態(tài)是1的情況下,13位計(jì)數(shù)器開始計(jì)數(shù)。 當(dāng)計(jì)數(shù)器開始工作時(shí),13位計(jì)數(shù)器從初始值遞增1,當(dāng)13位計(jì)數(shù)器的各位都變?yōu)?后,再遞增1時(shí),計(jì)數(shù)器產(chǎn)生溢出,TF0位通過硬件自動(dòng)設(shè)置為1 在方法0中,計(jì)數(shù)器的計(jì)數(shù)范圍為1到18192(213 )。 定時(shí)時(shí)間范圍為18192設(shè)備周期。 還有5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方式和工作原理、5.3.1方式0、11、工程時(shí)經(jīng)常遇到的問題,要求在計(jì)數(shù)次數(shù)或定時(shí)(延遲)秒之后進(jìn)行以下工作。 如果用計(jì)時(shí)/計(jì)數(shù)器實(shí)現(xiàn),最直接的方法是在計(jì)時(shí)/計(jì)數(shù)器的計(jì)數(shù)次數(shù)或計(jì)時(shí)秒后溢出,溢出標(biāo)志TF0 (或TF1 )提供了測(cè)試判定條件。然而,計(jì)數(shù)器僅在完全計(jì)數(shù)之后溢出,上述問題

6、轉(zhuǎn)換為基于一個(gè)初始值再次對(duì)n次計(jì)數(shù)或重新定時(shí)t秒進(jìn)行計(jì)數(shù)來使定時(shí)/計(jì)數(shù)器溢出。 因此,求出初始值是解決上述問題的關(guān)鍵。 另外,5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理,5.3.1方式0,12,(1)對(duì)計(jì)數(shù)器動(dòng)作模式進(jìn)行n次計(jì)數(shù),要求計(jì)數(shù)器的溢出,當(dāng)設(shè)為初始值時(shí),對(duì)計(jì)數(shù)器輸入初始值,在計(jì)數(shù)器被計(jì)數(shù)的情況下,溢出標(biāo)志t 、5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方式和工作原理、5.3.1方式0、13、(2)計(jì)時(shí)器模式定時(shí)td、請(qǐng)求計(jì)數(shù)器溢出。 首先,計(jì)算定時(shí)td所需的設(shè)備周期。 即,當(dāng)初始值為x時(shí),對(duì)計(jì)數(shù)器設(shè)置初始值,并且當(dāng)計(jì)數(shù)器對(duì)設(shè)備周期進(jìn)行計(jì)數(shù)時(shí),溢出標(biāo)志TF0變?yōu)?,從而定時(shí)到達(dá)。 5.3計(jì)時(shí)器/計(jì)數(shù)器的

7、動(dòng)作方式和動(dòng)作原理,5.3.1方式0,14,計(jì)時(shí)器/計(jì)數(shù)器T0的動(dòng)作方式1的邏輯結(jié)構(gòu),5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理,5.3.2方式1,15,在GATE=0的情況下,TR0為由1、TL0和TH0構(gòu)成的16比特計(jì)數(shù)器開始工作時(shí),16位計(jì)數(shù)器從初始值加1,16位計(jì)數(shù)器的各位都變?yōu)?后,再加1,計(jì)數(shù)器就會(huì)產(chǎn)生溢出,硬件自動(dòng)地將TF0的位置加1,同時(shí)將計(jì)數(shù)器另外,在對(duì)5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理、5.3.2方式1,16、(1)計(jì)數(shù)器動(dòng)作模式進(jìn)行n次計(jì)數(shù),請(qǐng)求計(jì)數(shù)器溢出,在將初始值設(shè)為x時(shí),對(duì)計(jì)數(shù)器輸入初始值,在計(jì)數(shù)器計(jì)數(shù)了n次時(shí),溢出標(biāo)志TF0為1 、5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方

8、式和工作原理、5.3.2方式1、17、(2)計(jì)時(shí)器工作模式定時(shí)td秒、請(qǐng)求計(jì)數(shù)器溢出。 首先,為了計(jì)算定時(shí)td,需要多大的機(jī)器周期,即,設(shè)初始值為x,則為: 事先在計(jì)數(shù)器中輸入初始值,計(jì)數(shù)器對(duì)n設(shè)備周期進(jìn)行計(jì)數(shù)后,溢出標(biāo)志TF0變?yōu)?,定時(shí)到來。 方式1的情況下,計(jì)時(shí)/計(jì)數(shù)器的最大計(jì)數(shù)數(shù)為65536 (初始值為0 ),最大計(jì)時(shí)時(shí)間為65536TM (初始值為0 )。 在、5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理、5.3.2方式1、18、計(jì)時(shí)器/計(jì)數(shù)器0的動(dòng)作方式2的邏輯結(jié)構(gòu)、5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理、5.3.3方式2、19、GATE=0的情況下,如果TR0為1,則計(jì)數(shù)器TL0

9、計(jì)數(shù)器開始工作時(shí),8位計(jì)數(shù)器TL0從初始值加1,計(jì)數(shù)器的各位在“1”以后再計(jì)數(shù)一次,當(dāng)計(jì)數(shù)器產(chǎn)生溢出時(shí),TF0位從硬件自動(dòng)設(shè)置為1,并且TH0的內(nèi)容被設(shè)置為TL 另外,在對(duì)5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理、5.3.3方式2,20、(1)計(jì)數(shù)器動(dòng)作模式進(jìn)行n次計(jì)數(shù),請(qǐng)求計(jì)數(shù)器溢出,在將初始值設(shè)為x時(shí),對(duì)計(jì)數(shù)器輸入初始值,在計(jì)數(shù)器計(jì)數(shù)了n次時(shí),溢出標(biāo)志TF0為1 、5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方式和工作原理、5.3.3方式2、21、(2)計(jì)時(shí)器工作模式定時(shí)td秒、請(qǐng)求計(jì)數(shù)器溢出。 首先,求出計(jì)算定時(shí)td所需的機(jī)器周期的數(shù)量。 設(shè)初始值為x,則如下所示。 事先在計(jì)數(shù)器中輸入初始值,計(jì)數(shù)器對(duì)n設(shè)

10、備周期進(jìn)行計(jì)數(shù)后,溢出標(biāo)志TF0變?yōu)?,定時(shí)到來。 在方法2的情況下,定時(shí)/計(jì)數(shù)器的最大計(jì)數(shù)數(shù)目變?yōu)?56 (初始值為0 ),最大定時(shí)時(shí)間為256m (初始值為0 )。 在、5.3計(jì)時(shí)器/計(jì)數(shù)器的動(dòng)作方式和動(dòng)作原理、5.3.3方式2、22、M1M0被設(shè)定為11的情況下,計(jì)時(shí)器/計(jì)數(shù)器T0的動(dòng)作方式為方式3。 只有定時(shí)/計(jì)數(shù)器T0具有方式3,定時(shí)/計(jì)數(shù)器T1沒有動(dòng)作方式3,當(dāng)將T1設(shè)定為方式3時(shí),計(jì)數(shù)器停止動(dòng)作。 在操作模式3下,計(jì)時(shí)器/計(jì)數(shù)器T0被分割成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方式和工作原理,5.3.4方式3,23,5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方式和工作原理

11、,5.3.4方式3,24,5.3計(jì)時(shí)器/計(jì)數(shù)器的工作方式和工作原理,5.3.4方式3,25, 5.4.1計(jì)時(shí)器/計(jì)數(shù)器初始化定時(shí)/計(jì)數(shù)器初始化包括操作方式的設(shè)置、計(jì)數(shù)器或計(jì)時(shí)器模式的設(shè)置、計(jì)數(shù)器初始值的計(jì)算、啟動(dòng)定時(shí)/計(jì)數(shù)器的設(shè)置、中斷控制比特的設(shè)置等。 計(jì)時(shí)和計(jì)數(shù)可以用查詢方式和中斷方式實(shí)現(xiàn)。5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用例、26、(1)以查詢方式實(shí)現(xiàn)計(jì)時(shí)和計(jì)數(shù)(1)決定動(dòng)作方式、計(jì)數(shù)器或計(jì)時(shí)器模式和起動(dòng)控制方式,構(gòu)筑方式控制代碼并建立特殊功能寄存器TMOD:MOV TMOD、#控制代碼(2)計(jì)算計(jì)時(shí)器或計(jì)數(shù)器的計(jì)數(shù)初始值,根據(jù)動(dòng)作方式將初始值發(fā)送至TH0、TL0或者TH1、TL1。 (3)

12、啟動(dòng)時(shí)機(jī)/計(jì)數(shù)器: setbbnt,x=0,1。 計(jì)時(shí)/計(jì)數(shù)器開始工作,通過檢查TFx是否為1,判斷計(jì)時(shí)或計(jì)數(shù)是否達(dá)到要求。、5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用例子,5.4.1計(jì)時(shí)器/計(jì)數(shù)器初始化,27,(2)以中斷方式實(shí)現(xiàn)計(jì)時(shí)和計(jì)數(shù)(1)決定動(dòng)作方式、計(jì)數(shù)器或計(jì)時(shí)器模式和啟動(dòng)控制方式,構(gòu)建控制代碼并實(shí)現(xiàn)特殊功能(2)計(jì)算計(jì)時(shí)器或計(jì)數(shù)器的計(jì)數(shù)初始值,根據(jù)動(dòng)作方式將初始值發(fā)送至TH0、TL0或者TH1、TL1。 (3)解除cpu中斷,允許計(jì)時(shí)器/計(jì)數(shù)器中斷的cpu的動(dòng)作:對(duì)IE寄存器進(jìn)行編程。 (4)啟動(dòng)時(shí)機(jī)/計(jì)數(shù)器: setbbnt,x=0,1。 當(dāng)計(jì)數(shù)器溢出時(shí),定時(shí)和計(jì)數(shù)達(dá)到請(qǐng)求,CPU響應(yīng)中斷

13、,程序移動(dòng)到相應(yīng)的中斷處理程序的入口。 另外,5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用的例子,5.4.1計(jì)時(shí)器/計(jì)數(shù)器初始化,28以及計(jì)時(shí)器/計(jì)數(shù)器有幾種操作方式,它們各自的操作方式能夠提供計(jì)時(shí)和計(jì)數(shù)功能。 在應(yīng)用中如何選擇合適的動(dòng)作方式? (1)掌握各動(dòng)作方式的定時(shí)/計(jì)數(shù)器的動(dòng)作原理和特征。 (2)知道每個(gè)操作模式的定時(shí)/計(jì)數(shù)器的最大計(jì)數(shù)數(shù)目和最大定時(shí)時(shí)間。 5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用例,5.4.2計(jì)時(shí)器/計(jì)數(shù)器應(yīng)用,29,13比特定時(shí)/計(jì)數(shù)器(方式0 )的最大計(jì)數(shù)數(shù)為8192,在晶體振動(dòng)頻率為12MHz的情況下,最大定時(shí)時(shí)間為8192 16位定時(shí)/計(jì)數(shù)器(方式1 )的最大計(jì)數(shù)次數(shù)為65536,在

14、水晶振動(dòng)頻率為12MHz的情況下,最大定時(shí)時(shí)間為65.536 ms。 8比特定時(shí)計(jì)數(shù)器(方式2和方式3 )的最大計(jì)數(shù)數(shù)為256,在水晶振動(dòng)頻率為12MHz的情況下,最大定時(shí)時(shí)間為0.256 ms。5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用程序的例子、5.4.2計(jì)時(shí)器/計(jì)數(shù)器應(yīng)用程序、30、(1)方式0的應(yīng)用程序、5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用程序的例子、5.4.2計(jì)時(shí)器/計(jì)數(shù)器方式0的應(yīng)用例1 :某生產(chǎn)線的輸送機(jī)上的產(chǎn)品單向輸送到包裝機(jī),使用已知輸送機(jī)上的產(chǎn)品之間有間隔的光電開關(guān)檢測(cè)出的產(chǎn)品個(gè)數(shù),每計(jì)算12個(gè)產(chǎn)品,由氣缸驅(qū)動(dòng)的推壓裝置將這些產(chǎn)品推壓到包裝機(jī)上系統(tǒng)采用單片機(jī)控制,用時(shí)序/計(jì)數(shù)器實(shí)現(xiàn)產(chǎn)品計(jì)數(shù)。

15、 另外,5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用例、5.4.2計(jì)時(shí)器/計(jì)數(shù)器應(yīng)用、32、解: (1)如果計(jì)數(shù)采用計(jì)時(shí)器/計(jì)數(shù)器T1的方式0,則方式控制字為: (TMOD)=01000000B。 (2)當(dāng)要計(jì)數(shù)的次數(shù)為12次,方式0實(shí)現(xiàn)計(jì)數(shù)時(shí),計(jì)數(shù)初始值為(TH1)=11111111B,(TL1)=00010100B。、5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用程序示例,33、(3)查詢方式程序: CLR P1.0; 推缸復(fù)位MOV TMOD、#01000000B; 用于設(shè)置操作模式0和計(jì)數(shù)器模式MOV TH1,#11111111B,并且計(jì)數(shù)初始值的高8位MOV TL1,#00010100B; 設(shè)置計(jì)數(shù)初始值低的5位

16、SETB TR1的計(jì)數(shù)器啟動(dòng)CNTING: JBC TF1,OK; 檢測(cè)是否溢出,在溢出時(shí),清除溢出標(biāo)志SJMP CNTING等,并等待計(jì)數(shù)OK: MOV TH1,#11111111B; 重新加載計(jì)數(shù)常數(shù)值,如下所述,即使計(jì)數(shù)周期數(shù)相同,也有12次溢出MOV TL1,#00010100B,5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用示例,34,SETB P1.0; 推缸動(dòng)作ACALL DL50MS; 控制信號(hào)保持50ms,使氣缸動(dòng)作到CLR P1.0,使推氣缸復(fù)位SJMP CNTING; 延遲50ms子程序,水晶振動(dòng)頻率為12M Hz DL50MS:MOV R7、#50 DL1MS: MOV R6、# 200 dl : nopnopnopnopnopnopnopnopnopnop, 5.4定時(shí)器/計(jì)數(shù)器的編程應(yīng)用例,(3)查詢方式程序:DJNZ R6,DL DJNZ R7 DL1MS RET,35,例2 :設(shè)單片機(jī)應(yīng)用系統(tǒng)的晶體振動(dòng)頻率為6MHz,使用定時(shí)器T0,頻率為500Hz的等寬方形5.4計(jì)時(shí)器/計(jì)數(shù)器的編程應(yīng)用例,36,解:等幅方波的高低電平持續(xù)時(shí)間相同,占空比為1:1。 如果500Hz的等寬度方波脈沖信號(hào)的周期為2ms,并向P1.0端子輸出持續(xù)時(shí)間1ms的高低電平交替變化的信號(hào),則定時(shí)時(shí)間為td=1ms。、5.4計(jì)時(shí)器/計(jì)數(shù)器的示例性編程應(yīng)用,

溫馨提示

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