051芯片內(nèi)部有一高增益反相放大器,用于構(gòu)成振蕩器,反向放大器輸入端為XTAL1,輸出端XTAL2。在XTAL1和XTAL2兩端跨接一個石英晶體及兩個電容就構(gòu)成了穩(wěn)定自激振蕩器,電容器C1和C2通常都取30pF左右,對振蕩頻率有微調(diào)作用。振蕩頻率范圍是1.2-12MHz。
8051也使用外部震蕩脈沖信號,由XTAL2端引腳輸入,XTAL1端接地,外部震蕩脈沖源方式常用于多塊8051同時工作,以便于同步。晶體振蕩器的振蕩信號從XTAL2端輸出到片內(nèi)的時鐘發(fā)生器上,時鐘發(fā)生器是一個二分頻觸發(fā)電路,它將振蕩器的信號頻率fosc除以2,向CPU提供兩相時鐘信號P1和P2。
時鐘信號的周期稱為機(jī)器狀態(tài)時間S,CPU就以兩相時鐘P1和P2為基本節(jié)拍指揮8051單片機(jī)各個部件協(xié)調(diào)地工作。
除時鐘周期外,還有兩個與時間有關(guān)的概念叫機(jī)器周期和指令周期。計算機(jī)的一條指令由若干個字節(jié)組成。執(zhí)行一條指令需要多少時間則以機(jī)器周期為單位。所謂一個機(jī)器周期就是指CPU訪問存儲器一次所需要的時間。例如取指令,讀存儲器,寫存儲器等等。MCS-51的一個機(jī)器周期為12個振蕩周期,分為六個S狀態(tài),S1-S6.而每個狀態(tài)又分為兩拍,稱為P1和P2。因此,一個機(jī)器周期中的12個振蕩周期表示為S1P1,S1P2,S2P1等直到S6P2.若采用6MHZ晶體振蕩器,則每個機(jī)器周期恰為2us。每條指令都由一個或幾個機(jī)器周期組成。
在MCS-51系統(tǒng)中,有單周期指令,雙周期指令。四周期指令只有乘,除兩條指令。指令的運(yùn)算速度和它的機(jī)器周期直接相關(guān),機(jī)器周期數(shù)較小則執(zhí)行速度快。在編程時要注意選用具有同樣功能而機(jī)器周期數(shù)小的指令。每一條指令的執(zhí)行都可以包括取指和執(zhí)行兩個階段。在取指階段,CPU從內(nèi)部或者外部ROM中取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令。
在8051指令系統(tǒng)中,根據(jù)各種操作的繁簡程度,其指令可由單字節(jié),雙字節(jié)和三字節(jié)組成。從機(jī)器執(zhí)行指令的速度看,單字節(jié)和雙字節(jié)指令都可能是單周期或雙周期,而三字節(jié)指令都是雙周期,只有乘,除指令占四個周期,一條指令的字節(jié)數(shù)表征這條指令在存儲器中所占空間大小,而周期數(shù)表征運(yùn)行這條指令所花時間長短,即運(yùn)行速度。