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