ob体育竞彩 _欧宝体育在线链接 學習網站

單片機編址電路及單片機總線編址電路實例

時間:2018-04-05 13:41 來源:ob体育竞彩

單片機編址電路
1、簡單地址擴展
51 單片機的P2 口可以直接作為高8位地址總線使用,在一些簡單係統電路中,常使用P2口直接編址驅動。
下麵以使用數據緩衝器74LS273 驅動數碼顯示為例,分析P2 口編址驅動的靜態數碼顯示電路的設計。
一位LED 數碼顯示單元電路如圖3 所示。

WR 與A8( P2.0) 相或提供74LS273的時鍾信號,當執行“MOVX @DPTR,A”指令時,地址信息由DPTR 寄存器確定,會出現有效的寫信號WR,隻有當地址A8 為滿足“0”時,寫信號才可以作為74LS273 的時鍾信號輸入,完成數據鎖存。
P2 口為A8~A15 的8 位地址線,很容易擴展到8 隻LED 數碼管,WR 信號分別與A8~A15 按或關係連接,每位地址線均為低電平有效,即可實現8 個有效地址。
該方案電路簡單,但有效地址數太少,不適用於複雜係統設計。
2、低8 位地址鎖存
通常的設計電路是使用8D 鎖存器74LS373 實現地址鎖存,74HC573 與之邏輯功能相同,隻是引腳布局不一樣,使用74HC573 布線更容易。
74LS373 真值表如圖4所示。

在輸出允許OE 為L、控製使能LE 為H 時,輸出為跟隨狀態;
OE 為L、LE 為L 時,輸出為保持狀態。
地址鎖存電路如圖5 所示。OE 接地,LE 接單片機的ALE腳將產生滿足時序的低8 位地址信號。
執行以下三條指令會得到如圖6所示的時序圖。
MOV DPTR,# 0FF55H; 低8 位地址為55H
MOV A,# 0AAH; 待發送數據0AAH→A( 55H 取反)
MOVX,@DPTR,A; A 中的0AAH送地址為0FF55H 的對象中會。

從圖6 中可以看出,P0 口先送55H,在ALE 下降沿實現地址鎖存,隨後送出數據0AAH,在WR 有效( 低電平) 期間鎖存器輸出低8 位地址55H,P0 口送出數據0AAH。
3、帶譯碼器的複雜地址接口電路
理論上高8 位地址線可以產生256 個有效地址,如何實現地址“擴展”呢? 地址擴展準確描述是地址譯碼,例如3 根地址線可以譯碼成8 個地址,4根譯碼成16 個有效地址。這裏選擇3-8 譯碼器實現地址譯碼,電路圖以及對應的編址如表1 所示。

單片機總線編址電路實例
帶總線擴展接口的單片機係統,包括外部32k RAM 擴展、LCD1602 接口、輸入輸出口。
帶編址擴展的單片機最小係統電路如圖7 所示。

使用74HC573 鎖存低8 位地址;74138 實現8 個地址擴展,74138 的A、B、C 接A8 ~A10,E1 接A15, E2、E3 接地常有效,得到0F8FFH 到0FFFFH8 個地址( 無關位用1 表示) 或者8000H 到8700H( 無關位用0 表示) 。
32k RAM 接口如圖8 所示。

D0~D7 接數據總線P0 口,地址線A0~A14接單片機地址總線低15 位,單片機地址線A15 接RAM 片選信號,低電平有效,這樣RAM 地址分配從0000H 到7FFFH,與74138 譯碼地址不衝突。
LCD1602 接口電路如圖9 所示。

RS、RW 分別接A12、A13,使能信號編址為Y7,這樣LCD 的四個驅動地址( 數據讀寫和命令讀寫) 為0CFFFH 到0FFFFH ( 無關位為1) 或者8700H 到0B700H( 無關位為0)。
有些時候單片機引腳不夠用,還要進行擴展,輸入口擴展電路如圖10 所示。

利用74HC573( 74LS373) 的高阻態功能,將其輸出Q0~Q7 接P0 口,在滿足總線地址讀操作中,可以把輸入InPORT的數據讀入單片機的累加器,地址為0F8FFH 或8000H。
輸出口擴展電路如圖11 所示。

利用74LS273 數據鎖存功能,在滿足總線地址寫操作中,可以把單片機累加器裏的數據寫入273 鎖存輸出,地址為0F8FFH 或8000H。由於所用控製總線不同,可以和輸入共用地址。

    看過《單片機編址電路及單片機總線編址電路實例》的人還看了以下文章
    初學單片機從51入門的好處 初學單片機從51入門的好處
    51單片機是一款已經出現很久的單片機,它的出現可以說是劃時代的。同時期出現的其它單片機都已經逐漸退出曆史的舞台,而它卻依舊出現在某些專業的教材上。從這點來看,它依舊有其學習的意義。下麵說說初學單片機從51入門的好處。 51單片機的學習資源非常多...
    如何使用C語言控製硬件 如何使用C語言控製硬件
    C語言的應用編程在單片機的領域占了很大一部分,使用的比較多的51單片機和STM32單片機都可以使用MDK軟件編寫固件。 單片機燒寫了固件後可以點亮LED燈,可以驅動ADC檢測電壓,也可以驅動蜂鳴器發聲,這就是簡單地控製硬件。稍微複雜一點的,可以驅動NRF2401進...
    c語言怎麼讀取一個變量的二進製文件內容 c語言怎麼讀取一個變量的二進製文件內容
    C語言是一種高級語言,很多設置都為了符合我們程序員的理解做了相應的調整。機器對於變量的理解是基於電路,也就是所謂的高低電平。也是因為這個出現了一個二進製。 而人類的計數更喜歡使用十進製,有專家說是因為是人類當初計數使用的手指,這樣十進製比較...
    單片機為啥叫單片機 單片機為啥叫單片機
    1、MCU 我一般在工作計劃和原理圖的說明上,就直接將STM32或者STC89的單片機,標注為MCU。 無論是理解為Micro CPU,還是Microcontroller Unit,我認為都行,也沒有仔細去區分去過。自從32位單片機出來後,一些單片機設計的係統確實是具備部分電腦的功能。 你...
    16位單片機低端打不過8位高端打不過32位怎麼看 16位單片機低端打不過8位高端打不過32位怎
    有時間去了解一下TI的MPS係列的單片機,它的低功耗和8位的51還有32位的STM32還是有一定的區別度的。 就比如MSP430係列,一些醫療的應用也少不了它,其各種低功耗的應用和例子一抓一大把。 也許從價格上來說,感覺,8位的便宜好買;從性能上來說,感覺,32位的...
    Baidu
    map