時序就是 CPU 總線信號在時間上的順序關系。CPU 的控制器實質(zhì)上是一個復雜的同 步時序電路,所有工作都是在時鐘信號控制下進行的。每執(zhí)行一條指令,CPU 的控制器都要發(fā)出一系列特定的控制信號,這些控制信號在時間上的相互關系就是 CPU 的時序。
CPU 發(fā)出的時序控制信號有兩大類。一類是用于單片機內(nèi)部協(xié)調(diào)控制的,但對用戶來說,并不直接接觸這些信號,可不必了解太多。另一類時序信號是通過單片機控制總線送到片外,形成對片外的各種 I/O 接 口、RAM 和 EPROM 等芯片工作的協(xié)調(diào)控制,對于這部分時序信號用戶應該關心。
1.機器周期和指令周期
下面先介紹幾個時序概念:
(1) 振蕩周期:也稱時鐘周期,是指為單片機提供時鐘脈沖信號的振蕩源的周期。
(2) 狀態(tài)周期:每個狀態(tài)周期為時鐘周期的 2 倍,是振蕩周期經(jīng)二分頻后得到的。
(3) 機器周期:一個機器周期包含 6 個狀態(tài)周期 S1~S6 ,也就是 12 個時鐘周期。在一個機器周期內(nèi),CPU 可以完成一個獨立的操作。
(4) 指令周期:它是指 CPU 完成一條操作所需的全部時間。每條指令執(zhí)行時間都是由一個或幾個機器周期組成的。MCS 51 系統(tǒng)中,有單周期指令、雙周期指令和四周期指令。
2.MCS 51 指令的取指/執(zhí)行時序
MCS 51 單片機取指/執(zhí)行時序如圖 2.7 所示,每條指令的執(zhí)行都包括取指和執(zhí)行兩 個階段。在取指階段,CPU 從內(nèi)部或外部 ROM 中取出指令操作碼及操作數(shù),然后再執(zhí)行 這條指令。通常,在每個機器周期內(nèi) ALE 信號出現(xiàn)兩次,時刻為 S1P2 和 S4P2 ,信號的有效寬度為一個 S 狀態(tài)。每出現(xiàn)一次 ALE 信號,CPU 就依次進行取指操作,但并不是每條 指令在 ALE 生效時都能有效地讀取指令。如果是單個指令,在 S4 期間仍有讀操作,但讀出的字節(jié)被丟棄,且讀后的 PC 值不加 1 。如果是雙周期指令,則在 S4P2 期間讀第二字節(jié), 在 S6P2 時結束指令。
圖 2.7(a)、(b) 分別為單字節(jié)單周期指令和雙字節(jié)單周期指令的時序。
圖 2.7(c) 為單字節(jié)雙周期指令的時序,它在兩個機器周期內(nèi)發(fā)生 4 次讀操作,后 3 次 讀操作是無效的。
圖 2.7(d) 為指令 MOVX 操作 時序 ,它是一條單字節(jié)雙周期指令。第一機器周期 S5 開始時,送出外部數(shù)據(jù)存儲器的地址,隨后讀或?qū)憯?shù)據(jù)。讀寫期間在 ALE 端不輸出有效信號,在第二機器周期,即外部數(shù)據(jù)存儲器已被尋址和選通后,也不產(chǎn)生取指操作。
當 CPU 對外部數(shù)據(jù)存儲器 RAM 讀寫時,ALE 不是周期信號。
3. 訪問外部 ROM 和 RAM 的時序
如果指令是從外部 ROM 中讀取 ,除 了 ALE 信號之外,控制信號還有PSEN 。此外,還要用到 P0 和 P2 口,P0 口分時用做低 8 位地址和數(shù)據(jù)總線,P2 口用做高 8 位地址總 線。相應的時序圖如圖 2.8 所示。
其過程如下:
(1) 在 S1P2 時 ALE 信號有效;
(2) 在 P0 口送出 ROM 地址低 8 位,在 P2 口送出 ROM 地址高 8 位。低 8 位地址信號只持續(xù)到 S2 結束,故在外部要用鎖存器加以鎖存,ALE 為地址鎖存信號 。高 8 位地址在整個讀指令過程中都有效,不必再接鎖存器,到 S2P2 前 ALE 失效。
(3) 在 S3P1 時刻 PSEN開始有效,用它來選通外部 ROM 的使用端,所選中 ROM 單元的內(nèi)容,從 P0 口讀入到 CPU,隨后 PSEN 信號失效。
(4) 在 S4P2 后開始第二次讀入,過程和第一次相同。
訪問外部數(shù)據(jù) RAM 時,使用的控制信號有 ALE 和RD(讀) 或WR(寫),P0 和 P2 口仍然要用,作為傳送 RAM 地址線和讀寫數(shù)據(jù)線。讀外部數(shù)據(jù) RAM 的 時序如 圖 2.9 所示, 其過程如下:
(1) 第一次 ALE 有效到第二次 ALE 出現(xiàn)前的過程和讀外部 ROM 相同。
(2) 第二次 ALE 有效后,P0 口、P2 口分別送出 RAM 單元的低 8 位和高 8 位地址。
(3) 在第二個機器周期第一個 ALE 不再 出現(xiàn),此時PSEN為高 電平,第二個機器周期的 S1P1 時RD開始有效,選通 RAM 芯片,從 P0 口讀出 RAM 單元數(shù)據(jù)。
(4) 第二個機器周期 的第二個 ALE 出現(xiàn)時 ,也對外部 ROM 進行讀操作,但為無效操作。
若對外部 RAM 進行寫操作,則用WR信號來選通 RAM,其余過程與讀操作相似,寫外部數(shù)據(jù) RAM 的時序如圖 2.10 所示。