51單片機(jī)的時鐘及總線時序和總線擴(kuò)展
說到51單片機(jī)的時鐘首先想到51時怎么工作的呢?微型控制器要想工作必須要有一個“動力”,對于51單片機(jī)來說,這個“動力”就是時鐘源。一般應(yīng)用上會外接一個12MHz的晶振作為時鐘源。
一般第一種接法用的比較多。選擇內(nèi)部震蕩方式時晶振旁邊有兩個小電容。這兩個電容叫晶振的負(fù)載電容,分別接在晶振的兩個腳上和對地的電容,一般在幾十皮發(fā)。它會影響到晶振的諧振頻率和輸出幅度。晶振的負(fù)載電容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg為分別接在晶振的兩個腳上和對地的電容,Cic(集成電路內(nèi)部電容)+△C(PCB上電容)經(jīng)驗值為3至5pf。
各種邏輯芯片的晶振引腳可以等效為電容三點式振蕩器。晶振引腳的內(nèi)部通常是一個反相器, 或者是奇數(shù)個反相器串聯(lián)。在晶振輸出引腳 XO 和晶振輸入引腳 XI 之間用一個電阻連接, 對于 CMOS 芯片通常是數(shù) M 到數(shù)十M 歐之間。 很多芯片的引腳內(nèi)部已經(jīng)包含了這個電阻, 引腳外部就不用接了。這個電阻是為了使反相器在振蕩初始時處與線性狀態(tài), 反相器就如同一個有很大增益的放大器, 以便于起振。
為什么要選擇12MHz的晶振作為時鐘源呢?
這就要說51單片機(jī)內(nèi)部的幾個周期了:指令周期、機(jī)器周期、時鐘周期、振蕩周期。
振蕩周期是指為單片機(jī)提供定時信號的振蕩源的周期或外部輸入時鐘的周期。
時鐘周期又稱作狀態(tài)周期或狀態(tài)時間S,它是振蕩周期的兩倍,分為P1節(jié)拍和P2節(jié)拍,通常在P1節(jié)拍完成算術(shù)邏輯操作,在P2節(jié)拍完成內(nèi)部寄存器之間的數(shù)據(jù)傳送操作。(注意P1 和P2的相位關(guān)系 )
一個機(jī)器周期由6個狀態(tài)組成,如果把一條指令的執(zhí)行過程分作幾個基本操作,則將完成一個基本操作所需的時間稱作機(jī)器周期。單片機(jī)的單周期指令執(zhí)行時間就為一個機(jī)器周期。
指令周期是執(zhí)行一條指令所需的全部時間。MCS-51單片機(jī)的指令周期通常由1、2、4個機(jī)器周期組成。
對于12MHz的晶振,提供了12M的振蕩周期,6M的時鐘周期,1M的機(jī)器周期。所以此時51單片機(jī)的單指令周期為(1/1M)s=1us.這個1us有什么好處呢?后面大家會知道單片機(jī)應(yīng)用中會有各種各樣的時序,很多時候需要用一小段程序延時來達(dá)到時序要求,而1us的單指令周期比較方便計算延時時間以及確定每條語句的執(zhí)行時間。應(yīng)該明確的是單片機(jī)執(zhí)行每條語句用的時間是非常確定的,是1us就是1us不會多一點也不會少一點。
下面說說51單片機(jī)的總線擴(kuò)展:
這種結(jié)構(gòu)就是上一篇說到的三總線結(jié)構(gòu),如圖所示
1、數(shù)據(jù)總線
51 單片機(jī)的數(shù)據(jù)總線為P0 口,CPU 從P0 口送出和讀回數(shù)據(jù)。
2、地址總線
51 系列單片機(jī)的地址總線為16 位。
為了節(jié)約芯片引腳,采用P0 口復(fù)用方式,除了作為數(shù)據(jù)總線外,在ALE 信號時序匹配下,通過外置的數(shù)據(jù)鎖存器,在總線訪問前半周期從P0口送出低8位地址,后半周期從P0 口送出8 位數(shù)據(jù)。
高8位地址則通過P2 口送出。
3、控制總線
51 系列單片機(jī)的控制總線包括(RD)讀控制信號P3.7 和(WR)寫控制信號P3.6 等,二者分別作為總線模式下數(shù)據(jù)讀和數(shù)據(jù)寫的使能信號。
51 單片機(jī)總線時序如圖 所示。
從圖2 中可以看出,完成一次總線( 讀寫) 操作周期為T,P0 口分時復(fù)用,在T0 期間,P0 口送出低8 位地址,在ALE 的下降沿完成數(shù)據(jù)鎖存,送出低8位地址信號。在T1 期間,P0 口作為數(shù)據(jù)總線使用,送出或讀入數(shù)據(jù),數(shù)據(jù)的讀寫操作在讀、寫控制信號的低電平期間完成。
需要注意的是,在控制信號( 讀、寫信號) 有效期間,P2 口送出高8位地址,配合數(shù)據(jù)鎖存器輸出的低8 位地址,實現(xiàn)16 位地址總線,即64kB 范圍的內(nèi)的尋址。
由于CPU不可能同時執(zhí)行讀和寫操作,所以讀、寫信號不可能同時有效。
采用這種總線結(jié)構(gòu)按照規(guī)定的時序能夠最大程度的利用單片機(jī)的全部地址線。這就是單片機(jī)的編址。編址分為線選法和譯碼法,譯碼法分為全譯碼、部分譯碼。線選法的優(yōu)點是簡單但是非常浪費地址線;全譯碼法能夠最大程度的利用全部地址線,但是電路很復(fù)雜需要一些與非門的配合才行。一般用部分譯碼法性價比最高,尤其是在外接了存儲芯片時部分譯碼法很方便。
編輯:admin 最后修改時間:2019-09-17