www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器。它隨著計(jì)數(shù)器的輸入脈沖進(jìn)行自加1,也就是每來(lái)一個(gè)脈沖,計(jì)數(shù)器就自動(dòng)加1,,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使相應(yīng)的中斷標(biāo)志位置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿(mǎn)。

定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器。它隨著計(jì)數(shù)器的輸入脈沖進(jìn)行自加1,也就是每來(lái)一個(gè)脈沖,計(jì)數(shù)器就自動(dòng)加1,,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使相應(yīng)的中斷標(biāo)志位置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿(mǎn)。

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

定時(shí)/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器THx和TLx組成。TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。

初始化程序應(yīng)完成如下工作:

對(duì)TMOD賦值,以確定T0和T1的工作方式。

計(jì)算初值,并將其寫(xiě)入TH0、TL0或TH1、TL1。

中斷方式時(shí),則對(duì)EA賦值,開(kāi)放定時(shí)器中斷。

使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)。

計(jì)數(shù)器初值的計(jì)算:

機(jī)器周期也就是CPU完成一個(gè)基本操作所需要的時(shí)間。

計(jì)數(shù)值N乘以機(jī)器周期Tcy就是定時(shí)時(shí)間t

當(dāng)你使用12MHZ的外部晶振的時(shí)候,晶振周期(振蕩周期)=1/12 ,機(jī)器周期(1個(gè)機(jī)器周期等于12個(gè)振蕩周期)=(1/12) * 12 =1us。(如果采用方式1即為16位定時(shí)/計(jì)數(shù)器,那么一次記滿(mǎn)就最多為65536*1us = 65536us)

【例1】利用定時(shí)/計(jì)數(shù)器對(duì)外部事件計(jì)數(shù)。要求:檢測(cè)定時(shí)/計(jì)數(shù)器T0引腳上出現(xiàn)的下降沿信號(hào)的個(gè)數(shù),當(dāng)個(gè)數(shù)達(dá)到6時(shí),控制單片機(jī)P1.1引腳由高電平變?yōu)榈碗娖健?

解:

(1)任務(wù)分析

定時(shí)/計(jì)數(shù)器可以累計(jì)其脈沖輸入引腳上的下降沿信號(hào)的個(gè)數(shù),在本例中要求定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)個(gè)數(shù)Q=6。由式(4-6)可知,在工作方式1和工作方式2下,定時(shí)/計(jì)數(shù)器可計(jì)數(shù)的下降沿的最大個(gè)數(shù)分別為216=65536和28=256,所以這兩種工作方式都可以滿(mǎn)足任務(wù)要求。本例僅以方式1為例實(shí)現(xiàn)設(shè)計(jì)任務(wù)。

(2)T0初值計(jì)算

由式(4-4)可知,計(jì)數(shù)器個(gè)數(shù)Q=6時(shí),定時(shí)/計(jì)數(shù)器的初值為M=216-6=65530=0FFFAH,即TH0=0FFH和TL0=0FAH。

(3)確定定時(shí)/計(jì)數(shù)器方式控制字TMOD

因?yàn)椴贿M(jìn)行引腳電平的測(cè)量,所以GATE=0;使用計(jì)數(shù)功能,所以C/T=1;工作于方式1,所以M1M0=01。本程序與T1無(wú)關(guān),所以TMOD的高4位可全部為0。因此TMOD=05H。

(4)程序設(shè)計(jì)

以下是采用中斷法的參考程序。

【例2】利用定時(shí)/計(jì)數(shù)器模擬下降沿觸發(fā)的外部中斷。要求:利用定時(shí)/計(jì)數(shù)器T0模擬下降沿觸發(fā)的外部中斷,每當(dāng)定時(shí)/計(jì)數(shù)器T0的脈沖輸入引腳(P3.4)出現(xiàn)下降沿時(shí),使單片機(jī)P1.1引腳的電平狀態(tài)發(fā)生反轉(zhuǎn)。

解:

(1)任務(wù)分析

下降沿觸發(fā)的外部中斷(INT0和INT1)在中斷輸入引腳(P3.2和P3.3)上出現(xiàn)下降沿信號(hào)時(shí)發(fā)出中斷請(qǐng)求。在計(jì)數(shù)模式下,定時(shí)/計(jì)數(shù)器的寄存器將累計(jì)其脈沖輸入引腳(P3.4和P3.5)上出現(xiàn)的下降沿個(gè)數(shù),當(dāng)達(dá)到預(yù)定個(gè)數(shù)時(shí)產(chǎn)生中斷請(qǐng)求。對(duì)于N位的定時(shí)/計(jì)數(shù)器,若將其初值M設(shè)置為2N-1,則脈沖輸入引腳出現(xiàn)的下降沿可使定時(shí)器發(fā)出中斷請(qǐng)求,這與下降沿觸發(fā)的外部中斷效果一致。因此,可以利用定時(shí)/計(jì)數(shù)器模擬外部中斷。但需要注意的是,外部中斷可以自動(dòng)重復(fù)觸發(fā),而定時(shí)/計(jì)數(shù)器每次產(chǎn)生中斷后要重新賦初值。為了更好地模擬外部中斷的自動(dòng)重復(fù)觸發(fā),可以將定時(shí)器/計(jì)數(shù)器設(shè)置為可以自動(dòng)重新賦初值的工作方式2。

(2)T0初值的計(jì)算

根據(jù)任務(wù)分析的結(jié)果可知,需要將T0設(shè)置為工作方式2,位數(shù)N=8,初值M=2N-1=28-

1=255=0FFH。

(3)確定定時(shí)/計(jì)數(shù)器方式控制字TMOD

對(duì)于T0,因?yàn)椴贿M(jìn)行引腳電平的測(cè)量,所以GATE=0;使用定時(shí)功能,所以C/T=1;工作于方式2,所以M1M0=10。因?yàn)楸境绦蚺cT1無(wú)關(guān),所以TMOD中與T1有關(guān)的高4位可全部為0。因此TMOD=06H。

(4)程序設(shè)計(jì)

以下為采用中斷法的參考程序。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉