時鐘周期
時鐘周期也叫振蕩周期或晶振周期,即晶振的單位時間發(fā)出的脈沖數(shù),一般有外部的振晶產(chǎn)生,比如12MHZ=12×10的6次方,即每秒發(fā)出12000000個脈沖信號,那么發(fā)出一個脈沖的時間就是時鐘周期,也就是1/12微秒。通常也叫做系統(tǒng)時鐘周期。是計算機(jī)中最基本的、最小的時間單位。
在傳統(tǒng)的8051單片機(jī)中把一個時鐘周期定義為一個節(jié)拍(用P表示),二個節(jié)拍定義為一個狀態(tài)周期(用S表示)。
機(jī)器周期
單片機(jī)在執(zhí)行指令的過程中,其實需要完成很多個操作,比如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。在計算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個階段,每一階段完成一項工作。完成一個基本操作所需要的時間稱為機(jī)器周期。一般情況下,一個機(jī)器周期由若干個S周期(狀態(tài)周期)組成。傳統(tǒng)8051系列單片機(jī)的一個機(jī)器周期由6個S周期(狀態(tài)周期)組成。節(jié)拍和狀態(tài)周期前面已經(jīng)介紹過了。傳統(tǒng)8051單片機(jī)的機(jī)器周期由6個狀態(tài)周期組成,也就是說一個機(jī)器周期=6個狀態(tài)周期=12個時鐘周期。
在傳統(tǒng)的51單片機(jī)中,一般情況下,1個機(jī)器周期=12個時鐘周期。在一個單片機(jī)最小系統(tǒng)中,如果外接的是12MHZ的晶振,那么機(jī)器周期=1微秒(前幾天問小編為什么是1us的小伙伴到此處來領(lǐng)取答案)。
單片機(jī)工作時,是一條一條地從ROM中取指令,然后一步一步地執(zhí)行。單片機(jī)訪問一次存儲器的時間,稱之為一個機(jī)器周期,這是一個時間基準(zhǔn)。
機(jī)器周期不僅對于指令執(zhí)行有著重要的意義,而且機(jī)器周期也是單片機(jī)定時器和計數(shù)器的時間基準(zhǔn)。例如一個單片機(jī)選擇了12MHZ晶振,那么當(dāng)定時器的數(shù)值加1時,實際經(jīng)過的時間就是1us,這就是單片機(jī)的定時原理。
指令周期
指令周期是執(zhí)行一條指令所需要的時間,一般由若干個機(jī)器周期組成。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個或者兩個以上的機(jī)器周期。
系統(tǒng)時鐘
系統(tǒng)時鐘:系統(tǒng)時鐘就是CPU指令運(yùn)行的頻率,這個才是CPU真正的頻率。
一般來說,單片機(jī)只有一個時鐘源.用了外部晶振,就不用內(nèi)部RC,用了內(nèi)部RC,就不用外部晶振。振蕩器振蕩,產(chǎn)生周期波.單片機(jī)在這樣的周期波的作用一下有規(guī)律的一拍一拍的工作,波的頻率越高,單片工作得就越快,波的頻率越低,單片機(jī)工作得就越慢。
單片機(jī)內(nèi)部所有工作,都是基于由晶振產(chǎn)生的同一個觸發(fā)信號源,由這個信號來同步協(xié)調(diào)工作步驟,我們把這個信號稱為系統(tǒng)時鐘,系統(tǒng)時鐘一般由晶振產(chǎn)生,但在單片機(jī)內(nèi)部系統(tǒng)時鐘不一定等于晶振頻率,有可能小于晶振頻率,也有可能大于晶振頻率,具體要看單片機(jī)的實際設(shè)計及其原理。比如傳統(tǒng)的51單片機(jī),其實際的系統(tǒng)時鐘就只有晶振頻率的1/12,;比如大家覺得比較高級的STM32單片機(jī),內(nèi)部具有時鐘倍頻電路,可以通過程序設(shè)置系統(tǒng)時鐘是實際晶振的多少倍,常見的STM32開發(fā)板上實際的晶振都是8Mhz的,可以通過倍頻,實際的系統(tǒng)時鐘都是運(yùn)行在72Mhz。
系統(tǒng)時鐘是整個單片機(jī)工作節(jié)奏的基準(zhǔn),它每振蕩一次,單片機(jī)就被觸發(fā)執(zhí)行一次操作。
12T模式和1T模式
前面我們說的絕大部分都是傳統(tǒng)51單片機(jī)的例子,現(xiàn)在傳統(tǒng)51單片機(jī)已經(jīng)可以收藏了,51單片機(jī)中小伙伴們最常見應(yīng)該是手推車(STC)。STC51的單片機(jī)基本已經(jīng)把51內(nèi)核壓榨到了極致,本節(jié)標(biāo)題里說的額12T和1T也就是STC提出來的。STC把絕大部分的匯編指令所需要的的時鐘周期壓縮到了1個時鐘周期,而傳統(tǒng)的51單片機(jī)是最快的指令都需要12個時鐘周期,所以STC官方就把他們的單片機(jī)叫做是1T的單片機(jī)。說到1T和12T,還有一個常用到的就是在用STC單片機(jī)的定時器時,和定時器相關(guān)的寄存器中專門有設(shè)置定時器是1T模式還是12T模式,如果是1T模式,而我們計算初值時又計算為了12T模式,那這樣出來的定時器會比實際的速度快12倍,在使用時需要注意。
總結(jié)
說了那么多的周期,其這些周期和一個電子元件直接相關(guān),那就是晶振。以上說的所有的時間單元,都和晶振頻率相關(guān)。所以在編程時一定記得注意自己板子上的晶振頻率是多少。
最后一點說明,因為生產(chǎn)制造的原因,實際的晶振頻率和標(biāo)稱的數(shù)值會有一定的差距,因為任何物品在制作時都會產(chǎn)生誤差。既然是誤差,那就只要在允許的范圍內(nèi)就能正常使用,不會對系統(tǒng)產(chǎn)生大的影響。也正是因為這個誤差,用單片機(jī)定時器制作的時鐘,你會發(fā)現(xiàn)時鐘走上幾天后就會出現(xiàn)時間的偏差。這正是目前市面上的絕大部分電子時鐘都會有走時不精準(zhǔn)的根本原因,就算用了RTC時鐘芯片,那時鐘芯片的時間來源也是晶振產(chǎn)生,常見的RCT時鐘晶振的頻率是32.768Khz。?
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44489瀏覽量
631996 -
晶振
+關(guān)注
關(guān)注
33文章
2797瀏覽量
67836 -
51單片機(jī)
+關(guān)注
關(guān)注
273文章
5697瀏覽量
122997 -
時鐘周期
+關(guān)注
關(guān)注
0文章
18瀏覽量
12148 -
機(jī)器周期
+關(guān)注
關(guān)注
0文章
10瀏覽量
9987
原文標(biāo)題:時鐘周期/機(jī)器周期/指令周期/12M晶振和1us有啥關(guān)系
文章出處:【微信號:chuxue_MCU,微信公眾號:單片機(jī)技術(shù)宅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論