- 單片機原理與工程應用
- 向敏等
- 972字
- 2021-04-12 17:18:16
2.2 MCS-51單片機時鐘電路與總線時序
無論是通用微型計算機還是單片機,CPU所有的工作都是在時鐘信號控制下進行的,每執行一條指令,CPU的控制器就要發出一系列特定的控制信號,這些控制信號在時間上的先后次序就是CPU的工作時序。
2.2.1 時鐘電路
MCS-51單片機的時鐘連接有兩種方式,一種是內部時鐘方式,但須在XTAL1和XTAL2引腳外接石英晶體(2~24MHz)和振蕩電容,電容C1和C2對頻率有微調作用,電容量的選擇范圍為5~30pF,如圖2-7(a)所示。另一種是采用外部時鐘方式,即將XTAL2引腳懸空,外部時鐘信號(外部振蕩器提供的信號)從XTAL1引腳輸入,如圖2-7(b)所示。

圖2-7 MCS-51單片機的時鐘連接方式
在單片機應用電路設計中,時鐘電路器件應該盡可能靠近CPU對應引腳。如果CPU無法正常工作,可通過示波器檢測CPU時鐘引腳是否有一定幅值的時鐘信號,如果有,則時鐘電路正常。
2.2.2 總線時序
MCS-51單片機的振蕩頻率經過內部二分頻以后得到的信號周期,稱為狀態周期,即一個狀態周期包括兩拍的時鐘周期。機器周期就是計算機完成一種基本操作所需的時間。MCS-51單片機的機器周期由6個狀態周期組成,即S1~S6,而每個狀態又分為兩拍,稱為P1和P2,因此一個機器周期中的12個振蕩周期常可表示為S1P1、S1P2、…、S6P1、S6P2。若采用12MHz的晶體振蕩器,則每個機器周期為12×106/(12×106)=1μs,若采用6MHz晶體振蕩器,則每個機器周期為2μs。
在MCS-51單片機指令系統中,有單字節指令、雙字節指令和三字節指令。每條指令的執行時間分別占用1個或幾個機器周期。單字節指令和雙字節指令都可能是單機器周期和雙機器周期的,而三字節指令都是雙機器周期的,只有乘、除法指令占用4個機器周期。
每一條指令的執行都包括取指令和執行指令兩個階段。在取指令階段,CPU從程序存儲器中取出指令操作碼及操作數,然后執行這條指令的邏輯功能。對于絕大部分指令,在整個指令執行過程中,ALE是周期性的信號,如圖2-8所示。在每個機器周期中,ALE信號出現兩次:第一次在S1P2和S2P1期間,第二次在S4P2和S5P1期間。ALE信號的有效寬度為1個S狀態。每出現一次ALE信號,CPU就進行一次取指令操作。

圖2-8 MCS-51單片機的機器周期
對于單機器周期指令,從S1P2開始把指令碼讀到指令寄存器。如果是雙字節指令,則在同一個機器周期的S4讀入第二字節。對單字節指令,在S4仍有一次讀指令碼的操作,但讀入的內容被忽略(不處理),并且程序計數器不加1,這種無效的讀取稱為假讀。在下一個機器周期的S1才真正讀取此指令碼。