- 汽車單片機應用技術(第2版)
- 黃鵬
- 2189字
- 2020-08-28 17:05:42
1.4 時鐘電路與復位電路
時序:即時間的順序。一個由人組成的單位尚且要有一定的時序,計算機當然更要有嚴格的時序。計算機要完成的事更復雜,因此它的時序也更復雜。我們已知,計算機工作時,是一條一條地從ROM中取指令,然后一步一步地執行。我們規定:計算機訪問一次存儲器的時間,稱為一個機器周期。
時鐘電路用于產生單片機工作所需要的時鐘信號,而時序所研究的是指令執行中各信號之間的相互關系。單片機本身就如一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鐘信號控制下嚴格地按時序進行工作。
1.4.1 時鐘電路與時序
1.時鐘信號的產生
(1)內部時鐘方式 內部時鐘方式如圖1-11所示。在8051單片機內部有一振蕩電路,只要在單片機的XTAL1和XTAL2引腳外接石英晶體(簡稱晶振),就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。
一般電容C1和C2取30pF左右,晶體的振蕩頻率范圍是1.2~12MHz。晶體振蕩頻率高,則系統的時鐘頻率也高,單片機運行速度也就快。MCS-51在通常應用情況下,使用振蕩頻率為6MHz或12MHz。
(2)外部時鐘方式 在由多片單片機組成的系統中,為了各單片機之間時鐘信號的同步,應當引入唯一的公用外部脈沖信號作為各單片機的振蕩脈沖。這時外部的脈沖信號是經XTAL2引腳注入,其連接如圖1-12所示。
2.時序
時序是用定時單位來說明的。MCS-51的時序定時單位共有4個,從小到大依次是:節拍、狀態、機器周期和指令周期,下面分別加以說明。

圖1-11 內部時鐘方式

圖1-12 外部時鐘方式
(1)節拍與狀態 把振蕩脈沖的周期定義為節拍(用P表示)。振蕩脈沖經過二分頻后,就是單片機的時鐘信號的周期,定義為狀態(用S表示)。
這樣,一個狀態就包含兩個節拍,前半周期對應的節拍叫節拍1(P1),后半周期對應的是節拍2(P2)。
(2)機器周期MCS-51采用定時控制方式,因此它有固定的機器周期。規定一個機器周期的寬度為6個狀態,并依次表示為S1~S6。由于一個狀態又包括兩個節拍,因此一個機器周期總共有12個節拍,分別記作S1P1、S1P2……S6P1、S6P2。由于一個機器周期共有12個振蕩脈沖周期,因此機器周期就是振蕩脈沖的十二分頻。
當振蕩脈沖頻率為12MHz時,一個機器周期為1μs。
當振蕩脈沖頻率為6MHz時,一個機器周期為2μs。
(3)指令周期 指令周期是最大的時序定時單位,執行一條指令所需要的時間稱為指令周期。它一般由若干個機器周期組成。不同的指令,所需要的機器周期數也不相同。通常,包含1個機器周期的指令稱為單周期指令,包含2個機器周期的指令稱為雙周期指令。
指令的運算速度和指令所包含的機器周期有關,機器周期數越少的指令執行速度越快。MCS-51單片機通??梢苑譃閱沃芷谥噶睢㈦p周期指令和四周期指令。四周期指令只有乘法和除法指令兩條,其余均為單周期和雙周期指令。
單片機執行任何一條指令時都可以分為取指令階段和執行指令階段。ALE引腳上出現的信號是周期性的,在每個機器周期內兩次出現高電平。第一次出現在S1P2和S2P1期間,第二次出現在S4P2和S5P1期間。ALE信號每出現一次,CPU就進行一次取指操作,但由于不同指令的字節數和機器周期數不同,因此取指令操作也隨指令不同而有小的差異。
按照指令字節數和機器周期數,8051的111條指令可分為六類,分別是單字節單周期指令、單字節雙周期指令、單字節四周期指令、雙字節單周期指令、雙字節雙周期指令、三字節雙周期指令。
圖1-13a、b所示分別為單字節單周期和雙字節單周期指令的時序。單周期指令的執行始于S1P2,這時操作碼被鎖存到指令寄存器內。若是雙字節則在同一機器周期的S4讀第二字節。若是單字節指令,則在S4仍有讀出操作,但被讀入的字節無效,且程序計數器PC并不增量。
圖1-14給出了單字節雙周期指令的時序,兩個機器周期內進行4次讀操作碼操作。因為是單字節指令,后三次讀操作都是無效的。

圖1-13 MCS-51單周期指令時序
a)單字節指令 b)雙字節指令

圖1-14 MCS-51單字節雙周期指令時序
1.4.2 單片機的復位電路
單片機復位如同計算機在啟動運行前需要復位一樣,也是使CPU和系統中的其他功能部件都處在一個確定的初始狀態,并從這個狀態開始工作。例如:復位后PC=0000H,使單片機從第一個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發生故障后都要復位。所以我們必須弄清楚MCS-51型單片機復位的條件、復位電路和復位后的狀態。
單片機復位的條件是必須使RST引腳(9)加上持續2個機器周期(即24個振蕩周期)的高電平。例如:若時鐘頻率為12MHz,每機器周期為1μs,則只需2μs以上時間的高電平。在RST引腳出現高電平后的第二個機器周期執行復位。單片機常見的復位電路如圖1-15a、b所示。

圖1-15 單片機常見的復位電路
a)上電自動復位電路 b)按鍵復位電路
圖1-15a為上電自動復位電路,它是利用電容充電來實現的。在加電瞬間,RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐漸下降。只要保證RST為高電平的時間大于2個機器周期,便能正常復位。
圖1-15b為按鍵復位電路。該電路除具有上電復位功能外,還有按鍵復位功能,只需按圖1-15b中的RESET鍵,此時電源VCC經電阻R1、R2分壓,便會在RST端產生一個復位高電平。
單片機復位期間不產生ALE和信號,即ALE=1和
。這表明單片機復位期間不會有任何取指操作。復位后,內部各專用寄存器狀態如下。

其中*表示無關位。請注意:
1)復位后PC值為0000H,表明復位后程序從0000H開始執行。
2)SP值為07H,表明堆棧底部在07H。一般需重新設置SP值。
3)P0~P3口值為FFH。P0~P3口用作輸入口時,必須先寫入“1”。單片機在復位后,已使P0~P3口每一端線為“1”,為這些端線用作輸入口做準備。