單片機(jī)時(shí)序簡(jiǎn)介
單片機(jī)時(shí)序是指單片機(jī)執(zhí)行指令時(shí)應(yīng)發(fā)出的控制信號(hào)的時(shí)間序列。這些控制信號(hào)在時(shí)間上的相互關(guān)系就是CPU的時(shí)序。它是一系列具有時(shí)間順序的脈沖信號(hào)。
時(shí)序的周期
計(jì)算機(jī)每訪問(wèn)一次存儲(chǔ)器的時(shí)間我們把它稱為一個(gè)機(jī)器周期它是一個(gè)時(shí)間基準(zhǔn)就象我們?nèi)粘I钪惺褂玫拿胍粯佑?jì)算機(jī)中一個(gè)機(jī)器周期包括12個(gè)振蕩周期什么是振蕩周期一個(gè)振蕩周期是多少時(shí)間振蕩周期就是振蕩源的周期也就是我們使用的晶振的時(shí)間周期一個(gè)12M的晶振它的時(shí)間周期是多少呢電子技術(shù)過(guò)的朋友應(yīng)該不難算出T=1/f也就是1/12微秒那么使用12M晶振的單片機(jī)它的一個(gè)機(jī)器周期就應(yīng)該等于12*1/12微秒也就是1S。
單片機(jī)時(shí)鐘電路有三種方式
1、單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端,XTAL1和XTAL2需外接上晶體和合適的電容。
2、有的單片機(jī)內(nèi)部也自帶時(shí)鐘電路,用于產(chǎn)生時(shí)鐘信號(hào)。
3、單片機(jī)管腳XTAL2直接接晶振。
周期
1、時(shí)鐘周期
時(shí)鐘電路產(chǎn)生時(shí)鐘信號(hào)的周期我們叫時(shí)鐘周期(振蕩周期)。
單片機(jī)通電后就產(chǎn)生了固定標(biāo)稱值的脈沖信號(hào),單片機(jī)就是在脈沖信號(hào)的驅(qū)動(dòng)下順序地從ROM中(程序存儲(chǔ)器)取出指令一條一條的順序執(zhí)行,然后進(jìn)行一系列的微操作控制,來(lái)完成各種指定的動(dòng)作。
2、機(jī)器周期
單片機(jī)每訪問(wèn)一次存儲(chǔ)器的時(shí)間我們把它稱為一個(gè)機(jī)器周期,它是一個(gè)時(shí)間基準(zhǔn)就象我們?nèi)粘I钪惺褂玫拿胍粯印纹瑱C(jī)中一個(gè)機(jī)器周期包括12個(gè)振蕩周期。振蕩周期就是振蕩源的周期也就是我們使用的晶振的時(shí)間周期。一個(gè)12M的晶振它的時(shí)間周期是1/12微秒,那么使用12M晶振的單片機(jī)它的一個(gè)機(jī)器周期就應(yīng)該等于12*1/12微秒,也就是1微秒。
3、指令周期
單片機(jī)中有些指令只要一個(gè)機(jī)器周期而有些指令則需要兩個(gè)或三個(gè)機(jī)器周期另外還有兩條指令需要4個(gè)機(jī)器周期。如何衡量指令執(zhí)行時(shí)間的長(zhǎng)短我們就要用到一個(gè)新的概念:指令周期,即執(zhí)行一條指令所需的機(jī)器周期。
關(guān)于單片機(jī)時(shí)序分析(52單片機(jī))
AT89S52的時(shí)鐘有兩種方式,一種是片內(nèi)時(shí)鐘振蕩方式,需在18和19腳外接石英晶體(2-12MHz)和振蕩電容,振蕩電容的值一般取10p-30p。另外一種是外部時(shí)鐘方式,即將XTAL2懸空,外部時(shí)鐘信號(hào)從XTAL1腳輸入。
一、機(jī)器周期和指令周期
振蕩周期指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期,即晶體振蕩器直接產(chǎn)生的振蕩信號(hào),用Tosc表示。振蕩脈沖的周期也叫做節(jié)拍,用P表示。
時(shí)鐘周期是振蕩周期的兩倍,是對(duì)振蕩器2分頻的信號(hào)。時(shí)鐘周期又稱狀態(tài)周期,用S來(lái)表示,一個(gè)時(shí)鐘周期,分為P1和P2兩個(gè)節(jié)拍。P1節(jié)拍通常完成算術(shù)邏輯操作,P2節(jié)拍通常完成內(nèi)部寄存器間數(shù)據(jù)的傳遞。
在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過(guò)程劃分為若干個(gè)階段,每一階段完成一項(xiàng)工作。例如,取指令、存儲(chǔ)器讀、存儲(chǔ)器寫等,這每一項(xiàng)工作稱為一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。
AT89S52單片機(jī)的一個(gè)機(jī)器周期由6個(gè)S周期(狀態(tài)周期)組成,即S1~S6。
指令周期是執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成。通常含一個(gè)機(jī)器周期的指令稱為單周期指令,包含兩個(gè)機(jī)器周期的指令稱為雙周期指令。時(shí)鐘周期、機(jī)器周期、指令周期之間的關(guān)系圖如圖1所示。
圖1 AT89S52雙周期指令的時(shí)序
綜合以上分析,時(shí)序之間的關(guān)系如下:
振蕩周期Tocs=1/fosc;fosc為振蕩頻率
時(shí)鐘周期S=2Tosc;
機(jī)器周期=12Tosc;
指令周期=1~4個(gè)機(jī)器周期;
二、時(shí)序分析
圖2給出了單片機(jī)的取指和執(zhí)行指令的定時(shí)關(guān)系。在圖中可看到,低8位地址的鎖存信號(hào)ALE在每個(gè)機(jī)器周期中出現(xiàn)兩次。對(duì)此時(shí)序說(shuō)明如下:
(1)第一個(gè)機(jī)器周期是ROM的取指時(shí)序。從第二個(gè)機(jī)器周期開(kāi)始讀外部RAM;
(2)第一個(gè)機(jī)器周期的S4之后,為讀外部RAM送出地址,其中包括P0的A7~A0,P2的A15~A8;
(3)在第二個(gè)機(jī)器周期中,第一個(gè)ALE信號(hào)不再出現(xiàn),但讀選通有效,以進(jìn)行RAM 讀操作,然后從P0口把讀出數(shù)據(jù)送單片機(jī);
(4)第二個(gè)機(jī)器周期的第二個(gè)ALE信號(hào)仍然出現(xiàn),無(wú)取指操作。
圖2 AT89S52指令執(zhí)行時(shí)序
-
單片機(jī)
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628297 -
單片機(jī)時(shí)序
+關(guān)注
關(guān)注
0文章
2瀏覽量
1848
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論