單片機的工作時序
時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號,控制單片機按照一定的節(jié)拍運行,時序規(guī)定了指令執(zhí)行過程中各控制信號之間的相互關(guān)系。在時鐘信號的控制作用下,單片機就是一個復雜的同步時序電路,嚴格地按照規(guī)定的時序進行工作。
AT89S52的時鐘有兩種方式,一種是片內(nèi)時鐘振蕩方式,需在18和19腳外接石英晶體(2-12MHz)和振蕩電容,振蕩電容的值一般取10p-30p。另外一種是外部時鐘方式,即將XTAL2懸空,外部時鐘信號從XTAL1腳輸入。
一、機器周期和指令周期
振蕩周期指為單片機提供定時信號的振蕩源的周期,即晶體振蕩器直接產(chǎn)生的振蕩信號,用Tosc表示。振蕩脈沖的周期也叫做節(jié)拍,用P表示。
時鐘周期是振蕩周期的兩倍,是對振蕩器2分頻的信號。時鐘周期又稱狀態(tài)周期,用S來表示,一個時鐘周期,分為P1和P2兩個節(jié)拍。P1節(jié)拍通常完成算術(shù)邏輯操作,P2節(jié)拍通常完成內(nèi)部寄存器間數(shù)據(jù)的傳遞。
在計算機中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。完成一個基本操作所需要的時間稱為機器周期。
AT89S52單片機的一個機器周期由6個S周期(狀態(tài)周期)組成,即S1~S6。
指令周期是執(zhí)行一條指令所需要的時間,一般由若干個機器周期組成。通常含一個機器周期的指令稱為單周期指令,包含兩個機器周期的指令稱為雙周期指令。時鐘周期、機器周期、指令周期之間的關(guān)系圖如圖1所示。
圖1 AT89S52雙周期指令的時序綜合以上分析,時序之間的關(guān)系如下:
振蕩周期Tocs=1/fosc;fosc為振蕩頻率
時鐘周期S=2Tosc;
機器周期=12Tosc;
指令周期=1~4個機器周期;
二、時序分析
圖2給出了單片機的取指和執(zhí)行指令的定時關(guān)系。在圖中可看到,低8位地址的鎖存信號ALE在每個機器周期中出現(xiàn)兩次。對此時序說明如下:
1)第一個機器周期是ROM的取指時序。從第二個機器周期開始讀外部RAM;
2)第一個機器周期的S4之后,為讀外部RAM送出地址,其中包括P0的A7~A0,P2的A15~A8;
3)在第二個機器周期中,第一個ALE信號不再出現(xiàn),但讀選通有效,以進行RAM 讀操作,然后從P0口把讀出數(shù)據(jù)送單片機;
4)第二個機器周期的第二個ALE信號仍然出現(xiàn),無取指操作。
圖2 AT89S52指令執(zhí)行時序編輯:admin 最后修改時間:2019-06-23