技術(shù)詳解:單片機(jī)中各種周期的關(guān)系與定時(shí)器原理
發(fā)布時(shí)間:2015-10-04 責(zé)任編輯:susan
【導(dǎo)讀】單片機(jī)到底是什么呢?就是一個(gè)電腦,只不過是微型的,麻雀雖小,五臟俱全。它內(nèi)部也有和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件。
我們現(xiàn)來理解幾個(gè)比較重要的概念:
時(shí)鐘周期:
時(shí)鐘周期也叫振蕩周期或晶振周期,即晶振的單位時(shí)間發(fā)出的脈沖數(shù),一般有外部的振晶產(chǎn)生,比如12MHZ=12×10的6次方,即每秒發(fā)出12000000個(gè)脈沖信號(hào),那么發(fā)出一個(gè)脈沖的時(shí)間就是時(shí)鐘周期,也就是1/12微秒。通常也叫做系統(tǒng)時(shí)鐘周期。是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。
在8051單片機(jī)中把一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示)。
機(jī)器周期:
在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個(gè)階段,每一階段完成一項(xiàng)工作。例如,取指令、存儲(chǔ)器讀、存儲(chǔ)器寫等,這每一項(xiàng)工作稱為一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。一般情況下,一個(gè)機(jī)器周期由若干個(gè)S周期(狀態(tài)周期)組成。8051系列單片機(jī)的一個(gè)機(jī)器周期同6個(gè)S周期(狀態(tài)周期)組成。前面已說過一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示),8051單片機(jī)的機(jī)器周期由6個(gè)狀態(tài)周期組成,也就是說一個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期。
在標(biāo)準(zhǔn)的51單片機(jī)中,一般情況下,一個(gè)機(jī)器周期等于12個(gè)時(shí)鐘周期,也就是機(jī)器周期=12*時(shí)鐘周期,(上面講到的原因)如果是12MHZ,那么機(jī)器周期=1微秒。單片機(jī)工作時(shí),是一條一條地從RoM中取指令,然后一步一步地執(zhí)行。單片機(jī)訪問一次存儲(chǔ)器的時(shí)間,稱之為一個(gè)機(jī)器周期,這是一個(gè)時(shí)間基準(zhǔn)。
機(jī)器周期不僅對于指令執(zhí)行有著重要的意義,而且機(jī)器周期也是單片機(jī)定時(shí)器和計(jì)數(shù)器的時(shí)間基準(zhǔn)。例如一個(gè)單片機(jī)選擇了12MHZ晶振,那么當(dāng)定時(shí)器的數(shù)值加1時(shí),實(shí)際經(jīng)過的時(shí)間就是1us,這就是單片機(jī)的定時(shí)原理。
但是在8051F310中,CIP-51 微控制器內(nèi)核采用流水線結(jié)構(gòu),與標(biāo)準(zhǔn)的 8051 結(jié)構(gòu)相比指令執(zhí)行速度有很大的提高。在一個(gè)標(biāo)準(zhǔn)的 8051 中,除 MUL和 DIV以外所有指令都需要 12 或 24 個(gè)系統(tǒng)時(shí)鐘周期,最大系統(tǒng)時(shí)鐘頻率為 12-24MHz。而對于 CIP-51 內(nèi)核,70%的指令的執(zhí)行時(shí)間為 1或2個(gè)系統(tǒng)時(shí)鐘周期,只有 4 條指令的執(zhí)行時(shí)間大于 4 個(gè)系統(tǒng)時(shí)鐘周期。 所以在計(jì)算定時(shí)器的值時(shí)要注意這里的變化。
指令周期
指令周期是執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個(gè)或者兩個(gè)以上的機(jī)器周期。
系統(tǒng)時(shí)鐘:
系統(tǒng)時(shí)鐘:系統(tǒng)時(shí)鐘就是CPU指令運(yùn)行的頻率,這個(gè)才是CPU真正的頻率。
單片機(jī)內(nèi)部所有工作,都是基于由晶振產(chǎn)生的同一個(gè)觸發(fā)信號(hào)源,由這個(gè)信號(hào)來同步協(xié)調(diào)工作步驟,我們把這個(gè)信號(hào)稱為系統(tǒng)時(shí)鐘,系統(tǒng)時(shí)鐘一般由晶振產(chǎn)生,但在單片機(jī)內(nèi)部系統(tǒng)時(shí)鐘不一定等于晶振頻率,有可能小于晶振頻率,也有可能大于晶振頻率,具體是多少由單片機(jī)內(nèi)部結(jié)構(gòu)決定,正常情況和晶振頻率會(huì)存在一個(gè)整數(shù)倍關(guān)系。系統(tǒng)時(shí)種是整個(gè)單片機(jī)工作節(jié)奏的基準(zhǔn),它每振蕩一次,單片機(jī)就被觸發(fā)執(zhí)行一次操作。
一般來說,單片機(jī)只有一個(gè)時(shí)鐘源.用了外部晶振,就不用內(nèi)部RC,用了內(nèi)部RC,就不用外部晶振.振蕩器振蕩,產(chǎn)生周期波.單片機(jī)在這樣的周期波的作用一下有規(guī)律的一拍一拍的工作,波的頻率越高,單片工作得就越快,波的頻率越低,單片機(jī)工作得就越慢。
有了以上的概念以后,就可以正確的理解定時(shí)器的工作原理了,在8051F310單片機(jī)中,有3個(gè)定時(shí)器,如果定時(shí)器1工作在模式1下,如工作模式1下,是16位的計(jì)時(shí)器,最大數(shù)值是65535,當(dāng)再加1時(shí)(=65536),就會(huì)發(fā)生溢出,產(chǎn)生中斷,所以如果我們要它計(jì)1000個(gè)數(shù), 那么定時(shí)初值就是65536-1000,結(jié)果就是64536,這個(gè)值送給TH、TL,因?yàn)槭?6進(jìn)制的,所以高位是64536/256取商,低位是64536%6取余。
再者,就是每一計(jì)數(shù)的時(shí)間是多久?一般我們?nèi)?2M晶振時(shí),一個(gè)周期剛好是1us,計(jì)數(shù)1000個(gè)就是1ms,這是因?yàn)闃?biāo)準(zhǔn)的51單片機(jī)是12時(shí)鐘周期的(STC有6時(shí)鐘和1時(shí)鐘方式)。那么,如果我們晶振是12M,就比較好算,如果是其它的,就用12去除好了。比如是6M的,那么就是12/6=2,每個(gè)計(jì)數(shù)是2us,那么你要定時(shí)1ms就只要計(jì)數(shù)500個(gè)即可以。
定時(shí)器的初值跟定時(shí)器的工作方式,跟晶振頻率都有關(guān)系。一個(gè)機(jī)器周期Tcy=晶振頻率X12,計(jì)數(shù)次數(shù)N=定時(shí)時(shí)間t/機(jī)器周期Tcy,那么初值就X=65536-N,得出的數(shù)化成十六進(jìn)制就行了。這里是用定時(shí)器O工作方式1做例子,如果是其它工作方式,就不能是65535了。工作方式0是8192,方式2,3是256。這里有一個(gè)公式:
TH=(65536-time/(12/ft))/256
其中,time就是要延時(shí)的100ms(要取100000us),ft是晶振頻率。這個(gè)式子又可以簡化成
TH=(65536-time*ft/12)/256
TL=(65536-time*ft/12)%6
在一本書上還看到了這樣計(jì)算定時(shí)初值的:
TH0=-(50235/256); //重裝100ms定時(shí)初值
TL0=-(50235%6); ///這里使用的6M晶體,
這里是6M晶體,延時(shí)100ms,那么按上面講的原理,6M是每個(gè)計(jì)數(shù)為2us,100ms定時(shí)就是計(jì)數(shù)50000個(gè)。
那么,定時(shí)器初值要 65536-50000=15536,轉(zhuǎn)成16進(jìn)是3CB0。這就是要送給TH(=3C) 和TL(=B0)的值。
程序中寫 TH0=-(50235/256);其實(shí)它是這樣的TH0=0x100-(50235/256); 在51中,取負(fù)數(shù),其結(jié)果就是它的值取反+1,也可以用0x100(十進(jìn)制的256)去減,結(jié)果是多少呢?結(jié)果就是3C。
特別推薦
- 貿(mào)澤與Cinch聯(lián)手發(fā)布全新電子書深入探討惡劣環(huán)境中的連接應(yīng)用
- 自耦變壓器的構(gòu)造和操作
- 電感器輸出,運(yùn)算放大器輸入:二階有源濾波器簡介
- ESR 對陶瓷電容器選擇的影響(上)
- 步進(jìn)電機(jī)中的脈寬調(diào)制與正弦控制
- 基于射頻無線電力傳輸供電的無電池資產(chǎn)跟蹤模塊的先進(jìn)監(jiān)控系統(tǒng)
- ESR 對陶瓷電容器選擇的影響(下)
技術(shù)文章更多>>
- 深化綠色承諾,ST與彭水共繪可持續(xù)發(fā)展新篇章
- 基于SiC的高電壓電池?cái)嚅_開關(guān)的設(shè)計(jì)注意事項(xiàng)
- 如何更好對微控制器和輸出外設(shè)進(jìn)行電氣隔離?
- 意法半導(dǎo)體公布2024年第四季度及全年財(cái)報(bào)和電話會(huì)議時(shí)間安排
- IGBT 模塊在頗具挑戰(zhàn)性的逆變器應(yīng)用中提供更高能效
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
撥動(dòng)開關(guān)
玻璃釉電容
剝線機(jī)
薄膜電容
薄膜電阻
薄膜開關(guān)
捕魚器
步進(jìn)電機(jī)
測力傳感器
測試測量
測試設(shè)備
拆解
場效應(yīng)管
超霸科技
超級本
超級電容
車道校正
車身控制
車載以太網(wǎng)
車載娛樂
充電
充電電池
充電器
充電樁
觸控屏
觸控顯示
觸摸開關(guān)
傳感技術(shù)
傳感器
傳感器模塊