來源 :eepw
計算機系統是以微處理器為核心的,各器件要與微處理器相連,且必須協調工作,所以在微處理機中引入了總線的概念,各器件共同享用總線,任何時候只能有一個器件發送數據 (可以有多個器件同時接收數據) 。
計算機的總線分為控制總線、地址總線和數據總線等三種。而數據總線用於傳送數據,控制總線用於傳送控制信號, 地址總線則用於選擇存儲單元或外設。
51系列單片機具有完善的總線接口時序,可以擴展控制對象,其直接尋址能力達到64k (2的16次方) 。在總線模式下,不同的對象共享總線,獨立編址、分時復用總線,CPU通過地址選擇訪問的對象,完成與各對象之間的信息傳遞。
數據總線:51單片機的數據總線為P0口,P0口為雙向數據通道,CPU從P0口送出和讀回數據。
地址總線:51系列單片機的地址總線為16位。為了節約晶片引腳,採用P0口復用方式,除了作為數據總線外,在ALE信號時序匹配下,通過外置的數據鎖存器,在總線訪問前半周期從P0口送出低8位地址,後半周期從P0口送出8位數據。高8位地址則通過P2口送出。
控制總線:51系列單片機的控制總線包括讀控制信號P3.7和寫控制信號P3.6等,二者分別作為總線模式下數據讀和數據寫的使能信號。
51單片機總線時序如圖2所示。從圖2中可以看出,完成一次總線 (讀寫) 操作周期為T,P0口分時復用,在T0期間,P0口送出低8位地址,在ALE的下降沿完成數據鎖存,送出低8位地址信號。在T1期間,P0口作為數據總線使用,送出或讀入數據,數據的讀寫操作在讀、寫控制信號的低電平期間完成。
51單片機的P2口可以直接作為高8位地址總線使用,在一些簡單系統電路中,常使用P2口直接編址驅動。下面以使用數據緩衝器74LS273驅動數碼顯示為例,分析P2口編址驅動的靜態數碼顯示電路的設計。一位LED數碼顯示單元電路如圖3所示。
MOV DPTR,# 0FF55H;低8位地址為55H。
MOV A,# 0AAH;待發送數據0AAH→A (55H取反)。
MOVX,@DPTR,A;A中的0AAH送地址為0FF55H的對象中會。
理論上高8位地址線可以產生256個有效地址,如何實現地址「擴展」呢? 地址擴展準確描述是地址解碼,例如3根地址線可以解碼成8個地址,4根解碼成16個有效地址。這裡選擇3-8解碼器實現地址解碼,電路圖以及對應的編址如表1所示。
帶總線擴展接口的單片機系統,包括外部32k RAM擴展、LCD1602接口、輸入輸出口。帶編址擴展的單片機最小系統電路如圖7所示。
利用74LS273數據鎖存功能,在滿足總線地址寫操作中,可以把單片機累加器裡的數據寫入273鎖存輸出,地址為0F8FFH或8000H。由於所用控制總線不同,可以和輸入共用地址。
總線擴展是設計單片機控制電路必須掌握的技術,大量的特殊功能IC都支持總線接口, 如ADC0809,TLC7528,DDS器件AD9851等。
總線接口的要點就是在嚴格的控制時序下,總線被分時復用,以實現複雜系統設計。
-END-