發(fā)布時間:2019-10-18所屬分類:科技論文瀏覽:1次
摘 要: 單片機(jī)被大量使用在工作生活的各個領(lǐng)域,而定時器/計數(shù)器是單片機(jī)芯片內(nèi)集成的一個重要的功能模塊。本文對單片機(jī)內(nèi)部定時器/計數(shù)器的工作原理及工作模式做了簡單介紹,通過例子說明了單片機(jī)的設(shè)置和應(yīng)用。 1引言 基于單片機(jī)體積
單片機(jī)被大量使用在工作生活的各個領(lǐng)域,而定時器/計數(shù)器是單片機(jī)芯片內(nèi)集成的一個重要的功能模塊。本文對單片機(jī)內(nèi)部定時器/計數(shù)器的工作原理及工作模式做了簡單介紹,通過例子說明了單片機(jī)的設(shè)置和應(yīng)用。
1引言
基于單片機(jī)體積小、性能穩(wěn)定、價格便宜的優(yōu)點(diǎn),它具有良好的市場占有率,被廣泛使用于多種現(xiàn)場控制領(lǐng)域,與人們的工作生活息息相關(guān)。顧名思義,單片機(jī)是集成到一個芯片上的計算機(jī)(Single Chip Micro-computer,SCM),隨著技術(shù)的發(fā)展和更新,現(xiàn)在的單片機(jī)是把整個計算機(jī)和部分功能部件都集成到一塊芯片上的微控制器(Micro-Controller Unit,MCU)。例如,對于基本的a051系列單片機(jī),在芯片上除了包含計算器、控制器、存儲器和輸入輸出設(shè)備這些計算機(jī)的基本結(jié)構(gòu)組件外,還集成了中斷控制器、定時器/計數(shù)器、以及串行通信接口這些功能部件。單片機(jī)在自動控制系統(tǒng)設(shè)計中的應(yīng)用,比如:定時器/it數(shù)器對時間進(jìn)行精準(zhǔn)控制,并且能對外部事件進(jìn)行檢測和計數(shù),是單片機(jī)非常重要的一個組成部分。
2定時器/計數(shù)器工作原理
單片計內(nèi)部集成的定時器/計數(shù)器在本質(zhì)上是計數(shù)器。計數(shù)器是對脈沖進(jìn)行計數(shù),分為加法計數(shù)器和減法計數(shù)器兩種。當(dāng)每經(jīng)過一個脈沖進(jìn)行一次加一運(yùn)算的計數(shù)器為加法計數(shù)器,而每經(jīng)過一個脈沖做一次減一運(yùn)算的計數(shù)器為減法計數(shù)器。8051系統(tǒng)單片機(jī)芯片內(nèi)部集成了2個16位的加法計數(shù)器,分別記作To和TI.
2.1 計數(shù)器與定時器的區(qū)別
TO和TI有兩種工作形式:計數(shù)器和定時器,這是由計數(shù)脈沖的來源確定的。
當(dāng)計數(shù)脈沖來自芯片外部時,它們是計數(shù)器,每來一個下降沿脈沖,此計數(shù)器會做一次加一的運(yùn)算。其中T接收外部計數(shù)脈沖的引牌是P3.4,TI接收外部計數(shù)脈沖的引腳是P3.5,單片機(jī)每個機(jī)器周期會對這兩引腳的輸入電平進(jìn)行采樣檢測.如果前一個機(jī)器周期的采樣值為1,后一個機(jī)器周期的采樣值為0,則意味這是一個下降沿,就會觸發(fā)對應(yīng)的計數(shù)器做一次加一的運(yùn)算。由此可知,單片機(jī)要確定一個計數(shù)脈沖,至少需要2個機(jī)器周期,所以一個計數(shù)脈沖的持續(xù)時間必須大于2個機(jī)器周期,而單片機(jī)的一個機(jī)器周期為12個時鐘周期,即意味著單片機(jī)可采用的計數(shù)脈沖的最高頻率為單片機(jī)時鐘頻率的124,如果單片機(jī)的時鐘頻率是12 MHz,此系統(tǒng)能接受的最高的外部計數(shù)頻率為500 kHz.
如果TO和TI的計數(shù)脈沖來自芯片內(nèi)部,它們被稱之為定時器。因?yàn)榇藭r的計數(shù)脈沖是一個頻率固定的信號,通過此固定頻率,計數(shù)器就可以和時間建立聯(lián)系,實(shí)現(xiàn)時間的精準(zhǔn)控制。來自片內(nèi)的計數(shù)脈沖是由單片機(jī)的時鐘振蕩器經(jīng)12分頻產(chǎn)生,所以此計數(shù)信號的周期為12個時鐘周期,正好等于單片機(jī)的一個機(jī)器周期。這樣就決定了單片機(jī)的定時器是以其機(jī)器周期為基本單位來進(jìn)行計時的,即定時器能夠?qū)崿F(xiàn)定時的最小時間為1個機(jī)器周期。
2.2計數(shù)器/定時器的設(shè)置
單片機(jī)對To,T1的控制是通過對特殊功能寄存器的設(shè)置來進(jìn)行的,起主要控制作用的是TMOD,特殊功能寄存器TMOD決定TTD和T的工作方式。除了可以設(shè)置它們?yōu)橛嫈?shù)器或定時器外,還能決定它們的工作模式。定時器/數(shù)器有4種工作模式:模式0-模式3。模式0為13位的定時器/計數(shù)器;模式1為16位的定時器/計數(shù)器;模式2為8位的,可自動重載的定時器/計數(shù)器;模式3只有To才具有,當(dāng)TO工作在模式3時,是1個獨(dú)立的8位定時器八計數(shù)器和1個獨(dú)立的8位定時器。其中定時器/i數(shù)器的位數(shù)決定了它們所能承載的最大數(shù)值,如果超過這個數(shù)值就會溢出。在8051系列單片機(jī)中,每一個定時器/計數(shù)器溢出都會觸發(fā)一個中斷請求,會有對應(yīng)的中斷服務(wù)程序?yàn)槠浞⻊?wù),所以對定時器/計數(shù)器我們的關(guān)注點(diǎn)在其溢出值。通過對特殊功能寄存器TMOD設(shè)置好定時器/i計數(shù)器的工作方式后,我們就可以根據(jù)具體要求來設(shè)置它的初值。因?yàn)椋撼踔?計數(shù)值-溢出值,所以我們可以通過對初值的設(shè)定來實(shí)現(xiàn)要求的計數(shù)值。其中,溢出值是由工作模式?jīng)Q定的,n位的計數(shù)器,它的溢出值就是2的n次方。而對于定時器,我們需要把定時的時間轉(zhuǎn)換成計數(shù)的次數(shù)才能使用上述表達(dá)式。由前述可知,單片機(jī)的定時器每一個機(jī)器周期做一次加一的運(yùn)算,它計時的基本單位是機(jī)器周期,所以用要求定時的時間除以機(jī)器周期就可以把定時時間轉(zhuǎn)換成計數(shù)的次數(shù)。
3計數(shù)器/定時器應(yīng)用
3.1計數(shù)器應(yīng)用
假設(shè)一個系統(tǒng)中,需要對下降沿脈沖
(此脈沖頻率小于5000 H2)進(jìn)行統(tǒng)計每100個脈沖做一次報警,為了現(xiàn)這個要求,我們可以選擇TO充當(dāng)計數(shù)器來工作。在硬件設(shè)計上,我們需要把待測脈沖信號接在單片機(jī)的P3.4(TO)引腳上。為了符合要求,需要對TMOD進(jìn)行設(shè)置,選擇合適的工作模式。首先,要把To設(shè)置成計數(shù)器的工作形式,其次是對工作模式的選擇。本例子中需要計數(shù)的大小為100,小于8位計數(shù)器溢出值(2,256),所以工作模式0-模式3均可選擇,我們這里可選擇模式2。因?yàn)槟J?可自動重載初值,設(shè)置時只需進(jìn)行第一次初值賦值即可。接著對工作在模式2的計數(shù)器To進(jìn)行初值的設(shè)置。初值應(yīng)為256-100-160,因?yàn)閷τ谀J?,溢出值為256,所以把初值設(shè)置成160,則計數(shù)100次就可溢出,系統(tǒng)就可執(zhí)行對應(yīng)的溢出中斷服務(wù)程序進(jìn)行報警。
3.2定時器應(yīng)用
如果要求單片機(jī)實(shí)現(xiàn)1ms的定時,此時我們需要采用定時器的工作形式。同樣的,需要在TMOD特殊功能寄存器中選擇一定時器/i數(shù)器,確定其定時器的工作形式和工作模式。假設(shè)我們單片機(jī)的時鐘頻率為12 MHz,則一個周期為12個時鐘周期,正好1 us。如果選擇模式2,此時定時器所能定時的最大值為256個機(jī)器周期,即256 Ls,小于要求的1ms,所以我們可選擇計數(shù)范圍最大的工作模式1(16位)。當(dāng)定時器工作在模式時時,溢出值為65536(2"),即可定時的最大范圍為6556個機(jī)器周期,大約為65ms,可實(shí)現(xiàn)我們的要求。當(dāng)我們設(shè)定好工作模式1后,需要對定時初值進(jìn)行設(shè)置。在本例中,定時時間為1 ms,一個機(jī)器周期為1us,所以需要的計數(shù)次數(shù)為1ms/l us.正好為1000次;所以,定時初值就應(yīng)該為65536-1000而模式1的定時初值賦值時需要把它拆分為高八位和低八位,其中高八位賦給TH,低八位賦給TL。在C語言中可以用此初值對256做一次除法運(yùn)算,商即是高八位;同理,用此初值對256做一次求余運(yùn)算,結(jié)果應(yīng)該就是低八位。
4 結(jié)語
當(dāng)今社會,單片機(jī)被廣泛應(yīng)用于生產(chǎn)生活的各個領(lǐng)域,而定時器/計數(shù)器是集成在單片機(jī)芯片上的一個重要的功能部件。本文介紹了8051系列單片機(jī)片內(nèi)集成的定時器/計數(shù)器的工作原理和其設(shè)置應(yīng)用的注意事項(xiàng)。