MCS-51指令的取指/執行時序
發布時間:2014/6/4 20:26:43 訪問次數:1442
單片機執行任何一條指令時都可以分為取指令階段和執行指令階段。取指令階段簡稱取指階段,HEF4013BT單片機在這個階段里可以把程序計數器PC中的地址送到程序存儲器,并從中取出需要執行指令的操作碼和操作數。指令執行階段可以對指令操作碼進行譯碼,以產生一系列控制信號完成指令的執行。圖3-14給出了MCS-51指令的取指/執行時序。
由圖3-14可知,ALE引腳上出現的信號是周期性的,每個機器周期內出現兩次高電平,出現時刻為SIP2和S4P2,持續時間為一個狀態S。ALE信號每出現一次,CPU就進行一次取指操作,但由于不同指令的字節數和機器周期數不同,因此取指令操作也隨指令不同而有小的差異。
按照指令字節數和機器周期數,MCS-51的111條指令可分為單字節單周期指令、單字節雙周期指令、單字節四周期指令、雙字節單周期指令、雙字節雙周期指令和三字節雙周期指令6類,分別財應于6種基本時序。為了弄清楚這些基本時序的特點,現將幾種主要時序作一簡述。
1.單字節單周期指令時序
這類指令的指令碼只有一個字節(如INCA指令),存放在程序存儲器ROM中,機器從取出指令碼到完成指令的執行僅需一個機器周期,如圖3-14 (a)所示。
圖3-14 (a)中,機器在ALE第一次有效(SIP2)時從ROM中讀出指令碼,把它送到指令寄存器IR,接著開始執行。在執行期間,CPU -方面在ALE第二次有效(S4P2)時封鎖PC加“1”,使第二次讀操作無效;另一方面在S6P2時完成指令的執行。
2.雙字節單周期指令時序
雙字節單周期指令時序如圖3-14 (b)所示,MCS-51在執行這類指令時需要分兩次從ROM中讀出指令碼。ALE在第一次有效時讀出指令操作碼,CPU對它譯碼后便知道是雙字節指令,故使程序計數器PC加“1”,并在ALE第二次有效時讀出指令的第二字節(也使PC加“1”一次),最后在S6P2時完成指令的執行。
3.單字節雙周期指令時序
單字節雙周期指令時序如圖3-14 (c)所示。這類指令執行時,CPU在第一機器周期Sl期間從程序存儲器ROM中讀出指令操作碼,經譯碼后便知道是單字節雙周期指令,故控制器自動封鎖后面的連續三次讀操作,并在第二機器周期的S6P2時完成指令的執行。
單片機執行任何一條指令時都可以分為取指令階段和執行指令階段。取指令階段簡稱取指階段,HEF4013BT單片機在這個階段里可以把程序計數器PC中的地址送到程序存儲器,并從中取出需要執行指令的操作碼和操作數。指令執行階段可以對指令操作碼進行譯碼,以產生一系列控制信號完成指令的執行。圖3-14給出了MCS-51指令的取指/執行時序。
由圖3-14可知,ALE引腳上出現的信號是周期性的,每個機器周期內出現兩次高電平,出現時刻為SIP2和S4P2,持續時間為一個狀態S。ALE信號每出現一次,CPU就進行一次取指操作,但由于不同指令的字節數和機器周期數不同,因此取指令操作也隨指令不同而有小的差異。
按照指令字節數和機器周期數,MCS-51的111條指令可分為單字節單周期指令、單字節雙周期指令、單字節四周期指令、雙字節單周期指令、雙字節雙周期指令和三字節雙周期指令6類,分別財應于6種基本時序。為了弄清楚這些基本時序的特點,現將幾種主要時序作一簡述。
1.單字節單周期指令時序
這類指令的指令碼只有一個字節(如INCA指令),存放在程序存儲器ROM中,機器從取出指令碼到完成指令的執行僅需一個機器周期,如圖3-14 (a)所示。
圖3-14 (a)中,機器在ALE第一次有效(SIP2)時從ROM中讀出指令碼,把它送到指令寄存器IR,接著開始執行。在執行期間,CPU -方面在ALE第二次有效(S4P2)時封鎖PC加“1”,使第二次讀操作無效;另一方面在S6P2時完成指令的執行。
2.雙字節單周期指令時序
雙字節單周期指令時序如圖3-14 (b)所示,MCS-51在執行這類指令時需要分兩次從ROM中讀出指令碼。ALE在第一次有效時讀出指令操作碼,CPU對它譯碼后便知道是雙字節指令,故使程序計數器PC加“1”,并在ALE第二次有效時讀出指令的第二字節(也使PC加“1”一次),最后在S6P2時完成指令的執行。
3.單字節雙周期指令時序
單字節雙周期指令時序如圖3-14 (c)所示。這類指令執行時,CPU在第一機器周期Sl期間從程序存儲器ROM中讀出指令操作碼,經譯碼后便知道是單字節雙周期指令,故控制器自動封鎖后面的連續三次讀操作,并在第二機器周期的S6P2時完成指令的執行。
上一篇:MCS-51 單片機的對奇
上一篇:訪問片外ROM/RAM的指令時序