單片機編址電路及單片機總線編址電路實例
單片機編址電路
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單片機的學習資源非常多... |
如何使用C語言控製硬件 | |
C語言的應用編程在單片機的領域占了很大一部分,使用的比較多的51單片機和STM32單片機都可以使用MDK軟件編寫固件。 單片機燒寫了固件後可以點亮LED燈,可以驅動ADC檢測電壓,也可以驅動蜂鳴器發聲,這就是簡單地控製硬件。稍微複雜一點的,可以驅動NRF2401進... |
c語言怎麼讀取一個變量的二進製文件內容 | |
C語言是一種高級語言,很多設置都為了符合我們程序員的理解做了相應的調整。機器對於變量的理解是基於電路,也就是所謂的高低電平。也是因為這個出現了一個二進製。 而人類的計數更喜歡使用十進製,有專家說是因為是人類當初計數使用的手指,這樣十進製比較... |
單片機為啥叫單片機 | |
1、MCU 我一般在工作計劃和原理圖的說明上,就直接將STM32或者STC89的單片機,標注為MCU。 無論是理解為Micro CPU,還是Microcontroller Unit,我認為都行,也沒有仔細去區分去過。自從32位單片機出來後,一些單片機設計的係統確實是具備部分電腦的功能。 你... |
16位單片機低端打不過8位高端打不過32位怎 | |
有時間去了解一下TI的MPS係列的單片機,它的低功耗和8位的51還有32位的STM32還是有一定的區別度的。 就比如MSP430係列,一些醫療的應用也少不了它,其各種低功耗的應用和例子一抓一大把。 也許從價格上來說,感覺,8位的便宜好買;從性能上來說,感覺,32位的... |
- 單片機和嵌入式哪個好
- 單片機重要特性含義解讀
- 單片機三總線結構及時序分析
- 單片機沒有PWM外設也可以做可調占空比
- 開源硬件arduino是什麼
- 標誌寄存器中的狀態標誌和控製標誌
- at89c51和stc12c5a60s2的引腳的區別
- 學習51單片機要用到哪些硬件工具
- 單片機定時的時間怎麼改變
- 單片機自動斷電或關機電路圖講解
- 串口的波特率如何計算?串口通信波特率計
- 單片機波特率計算公式和方法
- 51單片機ram區域劃分
- spi時序圖怎麼看?spi時序圖閱讀方法
- 51單片機怎麼顯示出數字的?單片機數碼管
- 51單片機有幾個中斷源_52單片機中斷源
- 嵌入式係統的評價方法
- AT89C51單片機為核心的時鍾電路的程序設
- stm32學到什麼程度叫精通
- 用STM32隻會庫函數不會用寄存器有影響嗎