技術(shù)詳解:單片機(jī)中各種周期的關(guān)系與定時器原理
發(fā)布時間:2015-10-04 責(zé)任編輯:susan
【導(dǎo)讀】單片機(jī)到底是什么呢?就是一個電腦,只不過是微型的,麻雀雖小,五臟俱全。它內(nèi)部也有和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件。
我們現(xiàn)來理解幾個比較重要的概念:
時鐘周期:
時鐘周期也叫振蕩周期或晶振周期,即晶振的單位時間發(fā)出的脈沖數(shù),一般有外部的振晶產(chǎn)生,比如12MHZ=12×10的6次方,即每秒發(fā)出12000000個脈沖信號,那么發(fā)出一個脈沖的時間就是時鐘周期,也就是1/12微秒。通常也叫做系統(tǒng)時鐘周期。是計算機(jī)中最基本的、最小的時間單位。
在8051單片機(jī)中把一個時鐘周期定義為一個節(jié)拍(用P表示),二個節(jié)拍定義為一個狀態(tài)周期(用S表示)。
機(jī)器周期:
在計算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。完成一個基本操作所需要的時間稱為機(jī)器周期。一般情況下,一個機(jī)器周期由若干個S周期(狀態(tài)周期)組成。8051系列單片機(jī)的一個機(jī)器周期同6個S周期(狀態(tài)周期)組成。前面已說過一個時鐘周期定義為一個節(jié)拍(用P表示),二個節(jié)拍定義為一個狀態(tài)周期(用S表示),8051單片機(jī)的機(jī)器周期由6個狀態(tài)周期組成,也就是說一個機(jī)器周期=6個狀態(tài)周期=12個時鐘周期。
在標(biāo)準(zhǔn)的51單片機(jī)中,一般情況下,一個機(jī)器周期等于12個時鐘周期,也就是機(jī)器周期=12*時鐘周期,(上面講到的原因)如果是12MHZ,那么機(jī)器周期=1微秒。單片機(jī)工作時,是一條一條地從RoM中取指令,然后一步一步地執(zhí)行。單片機(jī)訪問一次存儲器的時間,稱之為一個機(jī)器周期,這是一個時間基準(zhǔn)。
機(jī)器周期不僅對于指令執(zhí)行有著重要的意義,而且機(jī)器周期也是單片機(jī)定時器和計數(shù)器的時間基準(zhǔn)。例如一個單片機(jī)選擇了12MHZ晶振,那么當(dāng)定時器的數(shù)值加1時,實際經(jīng)過的時間就是1us,這就是單片機(jī)的定時原理。
但是在8051F310中,CIP-51 微控制器內(nèi)核采用流水線結(jié)構(gòu),與標(biāo)準(zhǔn)的 8051 結(jié)構(gòu)相比指令執(zhí)行速度有很大的提高。在一個標(biāo)準(zhǔn)的 8051 中,除 MUL和 DIV以外所有指令都需要 12 或 24 個系統(tǒng)時鐘周期,最大系統(tǒng)時鐘頻率為 12-24MHz。而對于 CIP-51 內(nèi)核,70%的指令的執(zhí)行時間為 1或2個系統(tǒng)時鐘周期,只有 4 條指令的執(zhí)行時間大于 4 個系統(tǒng)時鐘周期。 所以在計算定時器的值時要注意這里的變化。
指令周期
指令周期是執(zhí)行一條指令所需要的時間,一般由若干個機(jī)器周期組成。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個或者兩個以上的機(jī)器周期。
系統(tǒng)時鐘:
系統(tǒng)時鐘:系統(tǒng)時鐘就是CPU指令運行的頻率,這個才是CPU真正的頻率。
單片機(jī)內(nèi)部所有工作,都是基于由晶振產(chǎn)生的同一個觸發(fā)信號源,由這個信號來同步協(xié)調(diào)工作步驟,我們把這個信號稱為系統(tǒng)時鐘,系統(tǒng)時鐘一般由晶振產(chǎn)生,但在單片機(jī)內(nèi)部系統(tǒng)時鐘不一定等于晶振頻率,有可能小于晶振頻率,也有可能大于晶振頻率,具體是多少由單片機(jī)內(nèi)部結(jié)構(gòu)決定,正常情況和晶振頻率會存在一個整數(shù)倍關(guān)系。系統(tǒng)時種是整個單片機(jī)工作節(jié)奏的基準(zhǔn),它每振蕩一次,單片機(jī)就被觸發(fā)執(zhí)行一次操作。
一般來說,單片機(jī)只有一個時鐘源.用了外部晶振,就不用內(nèi)部RC,用了內(nèi)部RC,就不用外部晶振.振蕩器振蕩,產(chǎn)生周期波.單片機(jī)在這樣的周期波的作用一下有規(guī)律的一拍一拍的工作,波的頻率越高,單片工作得就越快,波的頻率越低,單片機(jī)工作得就越慢。
有了以上的概念以后,就可以正確的理解定時器的工作原理了,在8051F310單片機(jī)中,有3個定時器,如果定時器1工作在模式1下,如工作模式1下,是16位的計時器,最大數(shù)值是65535,當(dāng)再加1時(=65536),就會發(fā)生溢出,產(chǎn)生中斷,所以如果我們要它計1000個數(shù), 那么定時初值就是65536-1000,結(jié)果就是64536,這個值送給TH、TL,因為是16進(jìn)制的,所以高位是64536/256取商,低位是64536%6取余。
再者,就是每一計數(shù)的時間是多久?一般我們?nèi)?2M晶振時,一個周期剛好是1us,計數(shù)1000個就是1ms,這是因為標(biāo)準(zhǔn)的51單片機(jī)是12時鐘周期的(STC有6時鐘和1時鐘方式)。那么,如果我們晶振是12M,就比較好算,如果是其它的,就用12去除好了。比如是6M的,那么就是12/6=2,每個計數(shù)是2us,那么你要定時1ms就只要計數(shù)500個即可以。
定時器的初值跟定時器的工作方式,跟晶振頻率都有關(guān)系。一個機(jī)器周期Tcy=晶振頻率X12,計數(shù)次數(shù)N=定時時間t/機(jī)器周期Tcy,那么初值就X=65536-N,得出的數(shù)化成十六進(jìn)制就行了。這里是用定時器O工作方式1做例子,如果是其它工作方式,就不能是65535了。工作方式0是8192,方式2,3是256。這里有一個公式:
TH=(65536-time/(12/ft))/256
其中,time就是要延時的100ms(要取100000us),ft是晶振頻率。這個式子又可以簡化成
TH=(65536-time*ft/12)/256
TL=(65536-time*ft/12)%6
在一本書上還看到了這樣計算定時初值的:
TH0=-(50235/256); //重裝100ms定時初值
TL0=-(50235%6); ///這里使用的6M晶體,
這里是6M晶體,延時100ms,那么按上面講的原理,6M是每個計數(shù)為2us,100ms定時就是計數(shù)50000個。
那么,定時器初值要 65536-50000=15536,轉(zhuǎn)成16進(jìn)是3CB0。這就是要送給TH(=3C) 和TL(=B0)的值。
程序中寫 TH0=-(50235/256);其實它是這樣的TH0=0x100-(50235/256); 在51中,取負(fù)數(shù),其結(jié)果就是它的值取反+1,也可以用0x100(十進(jìn)制的256)去減,結(jié)果是多少呢?結(jié)果就是3C。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發(fā)布集成驅(qū)動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內(nèi)阻、超低失真4PST模擬開關(guān)
- 一“芯”雙電!圣邦微電子發(fā)布雙輸出電源芯片,簡化AFE與音頻設(shè)計
- 一機(jī)適配萬端:金升陽推出1200W可編程電源,賦能高端裝備制造
技術(shù)文章更多>>
- 村田提供《優(yōu)化下一代數(shù)據(jù)中心 AI 服務(wù)器的供電網(wǎng)絡(luò)技術(shù)指南》 助力數(shù)據(jù)中心電力穩(wěn)定化
- 2026電源濾波器怎么選?從5G基站到呼吸機(jī),解密電磁兼容的“隱形衛(wèi)士”
- 3月11日-12日,OFweek 2026(第十屆)動力電池產(chǎn)業(yè)年會香港首秀!
- 告別停機(jī)焦慮:SemiMarket 新增“母機(jī)臺”歸類與批量采購功能,精準(zhǔn)破解老舊備件尋料難題
- 顛覆傳統(tǒng)架構(gòu)!全球首創(chuàng)RISC-V通用與AI算力單芯片原生融合
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關(guān)
溫控可控硅
聞泰
穩(wěn)壓電源
穩(wěn)壓二極管
穩(wěn)壓管
無焊端子
無線充電
無線監(jiān)控
無源濾波器
五金工具
物聯(lián)網(wǎng)
顯示模塊
顯微鏡結(jié)構(gòu)
線圈
線繞電位器
線繞電阻
線束
限位開關(guān)
陷波器
相變存儲器
消弧線圈
肖特基二極管
心率監(jiān)測儀
欣達(dá)旺
新唐科技




