51單片機指令周期,機器周期,時鐘周期詳解
51單片機有指令周期,機器周期,時鐘周期的說法,看似相近,但是又都不太一樣,很容易混淆。還是詳細(xì)分析一下。
本文引用地址:http://2s4d.com/article/201609/310558.htm時鐘周期:單片機外接的晶振的振蕩周期就是時鐘周期,時鐘周期=振蕩周期。比方說,80C51單片機外接了一個11.0592M的晶體振蕩器,那我們就說這個單片機系統(tǒng)的時鐘周期是1/11.0592M,這里要注意11.0592M是頻率,周期是頻率的倒數(shù)。
機器周期:單片機執(zhí)行指令所消耗的最小時間單位。我們都知道51單片機采用的CISC(復(fù)雜指令指令集),所以有很多條指令,并且各條指令執(zhí)行的時間也可能不一樣(有一樣的哦),但是它們執(zhí)行的時間必須是機器周期的整數(shù)倍,這就是機器周期的意義所在。8051系列單片機又在這個基礎(chǔ)上進行細(xì)分,將一個機器周期劃分為6個狀態(tài)周期,也就是S1-S6,每個狀態(tài)周期又由兩個節(jié)拍組成,P1和P2,而P1=P2=時鐘周期。這也就是經(jīng)常說的8051系列單片機的的時鐘頻率是晶振頻率的12分頻,或者是1/12,就是這個意思?,F(xiàn)在(截至2012)新的單片機已經(jīng)能做到不分頻了,就是機器周期=時鐘周期。
指令周期:指令周期執(zhí)行某一條指令所消耗的時間,它等于機器周期的整數(shù)倍。傳統(tǒng)的80C51單片機的指令周期大多數(shù)是單周期指令,也就是指令周期=機器周期,少部分是雙周期指令?,F(xiàn)在(截至2012)新的單片機已經(jīng)能做到不分頻了,并且盡量單指令周期,就是指令周期=機器周期=時鐘周期。
來看這張8051單片機外部數(shù)據(jù),這里ALE和$PSEN$的變化頻率已經(jīng)小于一個機器周期,如果使用C語言模擬這個信號是沒有辦法做到的一一對應(yīng)的,所以只能盡量和上面的時序相同,周期延長。
評論