89c51 CPU時序

         89C51系列單片機和其他MCU一樣,都是從Flash Rom中取指令和執行指令過程中的各種微操作,都是按着一定的節奏進行的。這是因爲89c51單片機內有一個節奏發生器,即片內的震盪脈衝電路。

         89c51的芯片內部有一個高增益的反相放大器,用於構成震盪器。反相放大器的輸入端是XTAL1,輸出端是XTAL2,兩段之間接一個石英晶體和兩個電容就構成了穩定的自激振盪器,電容c1、c2通常取30PF左右,可穩定頻率並對震盪頻率有微調作用。晶體振盪器的脈衝頻率範圍爲Fsoc=0~24MHz。

         振盪信號從XTAL2端輸入到片內的時鐘發生器上,如下圖所示


1、節拍與狀態週期

       時鐘發生器是一個2分頻的觸發器電路,它將振盪器的信號頻率Fsoc除以2,向CPU提供兩相時鐘脈衝信號P1和P2。時鐘信號的週期稱爲機器狀態週期S(START),是振盪週期的2倍。在每個時鐘週期(即機器狀態週期S)的前半週期,相位1(P1)信號有效,在每個時鐘週期的後半週期,相位2(P2)信號有效。每個機器週期有兩個節拍P1和P2,CPU就以兩相時鐘P1和P2爲基本節拍指揮單片機各部件協調工作。

2、機器週期和指令週期

       計算機的一條指令由若干個字節組成。執行一條指令需要的時間則需要以機器週期爲單位。一個機器週期是指CPU訪問存儲器一次(如取指令,讀存儲器,寫存儲器等)所需要的時間。

      89c51的一個機器週期包括12個振盪週期,分爲6個S狀態:S1-S6。每個狀態又分爲兩拍,稱爲P1和P2。因此,一個週期中的12振盪週期表示爲S1P1、S1P2、S2P1...S6P2。若採用頻率爲6MHz晶體振盪器,則每個機器週期恰好爲2us(12/6)。

    每條指令都由一個或幾個機器週期組成,在89c51系統中4週期指令只有乘除兩條指令,其餘都是單週期或者雙週期。

3、基本時序定時單位

89c51的基本時序定時單位有如下4個

(一)振盪週期:晶體的振盪週期,爲最小的時序單位。

(二)狀態週期:振盪頻率經過單片機內部的二分頻電路分頻後提供給片內cpu的時鐘週期,一個狀態週期包含兩個振盪週期

(三)機器週期:一個機器週期由6個狀態週期(12個機器週期)組成,是單片機執行基本操作的一種時間單位

(四)指令週期:執行一條指令所需的時間,一個機器週期由1~4個機器週期組成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章