5分鐘了解單片機(jī)數(shù)據(jù)、地址、控制總線(xiàn)結(jié)構(gòu)

一、總線(xiàn)概述
計(jì)算機(jī)系統(tǒng)是以微處理器為核心的,各器件要與微處理器相連,且必須協(xié)調(diào)工作,所以在微處理機(jī)中引入了總線(xiàn)的概念,各器件共同享用總線(xiàn),任何時(shí)候只能有一個(gè)器件發(fā)送數(shù)據(jù)(可以有多個(gè)器件同時(shí)接收數(shù)據(jù)) 。
計(jì)算機(jī)的總線(xiàn)分為控制總線(xiàn)、地址總線(xiàn)和數(shù)據(jù)總線(xiàn)等三種。而數(shù)據(jù)總線(xiàn)用于傳送數(shù)據(jù),控制總線(xiàn)用于傳送控制信號(hào), 地址總線(xiàn)則用于選擇存儲(chǔ)單元或外設(shè)。
二、單片機(jī)的三總線(xiàn)結(jié)構(gòu)
51系列單片機(jī)具有完善的總線(xiàn)接口時(shí)序,可以擴(kuò)展控制對(duì)象,其直接尋址能力達(dá)到64k( 2的16次方) 。在總線(xiàn)模式下,不同的對(duì)象共享總線(xiàn),獨(dú)立編址、分時(shí)復(fù)用總線(xiàn),CPU 通過(guò)地址選擇訪(fǎng)問(wèn)的對(duì)象,完成與各對(duì)象之間的信息傳遞。

單片機(jī)三總線(xiàn)擴(kuò)展示意如圖1 所示。
1、數(shù)據(jù)總線(xiàn)
51 單片機(jī)的數(shù)據(jù)總線(xiàn)為P0 口,P0 口為雙向數(shù)據(jù)通道,CPU 從P0 口送出和讀回?cái)?shù)據(jù)。
2、地址總線(xiàn)
51 系列單片機(jī)的地址總線(xiàn)為16 位。
為了節(jié)約芯片引腳,采用P0 口復(fù)用方式,除了作為數(shù)據(jù)總線(xiàn)外,在ALE 信號(hào)時(shí)序匹配下,通過(guò)外置的數(shù)據(jù)鎖存器,在總線(xiàn)訪(fǎng)問(wèn)前半周期從P0口送出低8位地址,后半周期從P0 口送出8 位數(shù)據(jù)。
高8位地址則通過(guò)P2 口送出。
3、控制總線(xiàn)
51 系列單片機(jī)的控制總線(xiàn)包括讀控制信號(hào)P3.7 和寫(xiě)控制信號(hào)P3.6 等,二者分別作為總線(xiàn)模式下數(shù)據(jù)讀和數(shù)據(jù)寫(xiě)的使能信號(hào)。
三、單片機(jī)總線(xiàn)時(shí)序分析
51 單片機(jī)總線(xiàn)時(shí)序如圖2 所示:

從圖2 中可以看出,完成一次總線(xiàn)( 讀寫(xiě)) 操作周期為T(mén),P0 口分時(shí)復(fù)用,在T0 期間,P0 口送出低8 位地址,在ALE 的下降沿完成數(shù)據(jù)鎖存,送出低8位地址信號(hào)。在T1 期間,P0 口作為數(shù)據(jù)總線(xiàn)使用,送出或讀入數(shù)據(jù),數(shù)據(jù)的讀寫(xiě)操作在讀、寫(xiě)控制信號(hào)的低電平期間完成。
需要注意的是,在控制信號(hào)( 讀、寫(xiě)信號(hào)) 有效期間,P2 口送出高8位地址,配合數(shù)據(jù)鎖存器輸出的低8 位地址,實(shí)現(xiàn)16 位地址總線(xiàn),即64kB 范圍的內(nèi)的尋址。由于CPU不可能同時(shí)執(zhí)行讀和寫(xiě)操作,所以讀、寫(xiě)信號(hào)不可能同時(shí)有效。
四、常見(jiàn)單片機(jī)編址電路
1、簡(jiǎn)單地址擴(kuò)展
51 單片機(jī)的P2 口可以直接作為高8位地址總線(xiàn)使用,在一些簡(jiǎn)單系統(tǒng)電路中,常使用P2口直接編址驅(qū)動(dòng)。
下面以使用數(shù)據(jù)緩沖器74LS273 驅(qū)動(dòng)數(shù)碼顯示為例,分析P2 口編址驅(qū)動(dòng)的靜態(tài)數(shù)碼顯示電路的設(shè)計(jì)。
一位LED 數(shù)碼顯示單元電路如圖3所示:

WR 與A8( P2.0) 相或提供74LS273的時(shí)鐘信號(hào),當(dāng)執(zhí)行“MOVX @DPTR,A”指令時(shí),地址信息由DPTR 寄存器確定,會(huì)出現(xiàn)有效的寫(xiě)信號(hào)WR,只有當(dāng)?shù)刂稟8 為滿(mǎn)足“0”時(shí),寫(xiě)信號(hào)才可以作為74LS273 的時(shí)鐘信號(hào)輸入,完成數(shù)據(jù)鎖存。
P2 口為A8~A15 的8 位地址線(xiàn),很容易擴(kuò)展到8 只LED 數(shù)碼管,WR 信號(hào)分別與A8~A15 按或關(guān)系連接,每位地址線(xiàn)均為低電平有效,即可實(shí)現(xiàn)8 個(gè)有效地址。
該方案電路簡(jiǎn)單,但有效地址數(shù)太少,不適用于復(fù)雜系統(tǒng)設(shè)計(jì)。
2、低8 位地址鎖存
通常的設(shè)計(jì)電路是使用8D 鎖存器74LS373 實(shí)現(xiàn)地址鎖存,74HC573 與之邏輯功能相同,只是引腳布局不一樣,使用74HC573 布線(xiàn)更容易。
74LS373 真值表如圖4所示:

在輸出允許OE 為L(zhǎng)、控制使能LE 為H 時(shí),輸出為跟隨狀態(tài);OE 為L(zhǎng)、LE 為L(zhǎng) 時(shí),輸出為保持狀態(tài)。
地址鎖存電路如圖5 所示。OE 接地,LE 接單片機(jī)的ALE腳將產(chǎn)生滿(mǎn)足時(shí)序的低8 位地址信號(hào)。
執(zhí)行以下三條指令會(huì)得到如圖6所示的時(shí)序圖。
MOV DPTR,# 0FF55H; 低8 位地址為55HMOV A,# 0AAH; 待發(fā)送數(shù)據(jù)0AAH→A( 55H 取反)MOVX,@DPTR,A; A 中的0AAH送地址為0FF55H 的對(duì)象中會(huì)。

從圖6 中可以看出,P0 口先送55H,在ALE 下降沿實(shí)現(xiàn)地址鎖存,隨后送出數(shù)據(jù)0AAH,在WR 有效( 低電平) 期間鎖存器輸出低8 位地址55H,P0 口送出數(shù)據(jù)0AAH。
3、帶譯碼器的復(fù)雜地址接口電路
理論上高8 位地址線(xiàn)可以產(chǎn)生256 個(gè)有效地址,如何實(shí)現(xiàn)地址“擴(kuò)展”呢? 地址擴(kuò)展準(zhǔn)確描述是地址譯碼,例如3 根地址線(xiàn)可以譯碼成8 個(gè)地址,4根譯碼成16 個(gè)有效地址。這里選擇3-8 譯碼器實(shí)現(xiàn)地址譯碼,電路圖以及對(duì)應(yīng)的編址如表1 所示。

五、單片機(jī)總線(xiàn)編址電路實(shí)例
總線(xiàn)擴(kuò)展接口的單片機(jī)系統(tǒng),包括外部32k RAM 擴(kuò)展、LCD1602 接口、輸入輸出口。

D0~D7 接數(shù)據(jù)總線(xiàn)P0 口,地址線(xiàn)A0~A14接單片機(jī)地址總線(xiàn)低15 位,單片機(jī)地址線(xiàn)A15 接RAM 片選信號(hào),低電平有效,這樣RAM 地址分配從0000H 到7FFFH,與74138 譯碼地址不沖突。
LCD1602 接口電路如圖9所示:

RS、RW 分別接A12、A13,使能信號(hào)編址為Y7,這樣LCD 的四個(gè)驅(qū)動(dòng)地址( 數(shù)據(jù)讀寫(xiě)和命令讀寫(xiě)) 為0CFFFH 到0FFFFH ( 無(wú)關(guān)位為1) 或者8700H 到0B700H( 無(wú)關(guān)位為0)。
有些時(shí)候單片機(jī)引腳不夠用,還要進(jìn)行擴(kuò)展,輸入口擴(kuò)展電路如圖10 所示:

輸出口擴(kuò)展電路如圖11所示:

利用74LS273 數(shù)據(jù)鎖存功能,在滿(mǎn)足總線(xiàn)地址寫(xiě)操作中,可以把單片機(jī)累加器里的數(shù)據(jù)寫(xiě)入273 鎖存輸出,地址為0F8FFH 或8000H。由于所用控制總線(xiàn)不同,可以和輸入共用地址。
六、結(jié)束語(yǔ)
總線(xiàn)擴(kuò)展是設(shè)計(jì)單片機(jī)控制電路必須掌握的技術(shù),大量的特殊功能IC都支持總線(xiàn)接口, 如ADC0809,TLC7528,DDS 器件AD9851 等。
總線(xiàn)接口的要點(diǎn)就是在嚴(yán)格的控制時(shí)序下,總線(xiàn)被分時(shí)復(fù)用,以實(shí)現(xiàn)復(fù)雜系統(tǒng)設(shè)計(jì)。
來(lái)源:網(wǎng)絡(luò)版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。