單片機(jī)的工作時(shí)序
時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),控制單片機(jī)按照一定的節(jié)拍運(yùn)行,時(shí)序規(guī)定了指令執(zhí)行過程中各控制信號(hào)之間的相互關(guān)系。在時(shí)鐘信號(hào)的控制作用下,單片機(jī)就是一個(gè)復(fù)雜的同步時(shí)序電路,嚴(yán)格地按照規(guī)定的時(shí)序進(jìn)行工作。
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來表示,一個(gè)時(shí)鐘周期,分為P1和P2兩個(gè)節(jié)拍。P1節(jié)拍通常完成算術(shù)邏輯操作,P2節(jié)拍通常完成內(nèi)部寄存器間數(shù)據(jù)的傳遞。
在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個(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í)序說明如下:
1)第一個(gè)機(jī)器周期是ROM的取指時(shí)序。從第二個(gè)機(jī)器周期開始讀外部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),無取指操作。
圖2 AT89S52指令執(zhí)行時(shí)序編輯:admin 最后修改時(shí)間:2019-06-23