當前位置:首頁 » 服務存儲 » 51單片機怎麼外擴存儲器
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

51單片機怎麼外擴存儲器

發布時間: 2022-08-10 15:34:55

㈠ 關於51單片機外擴RAM的問題。請大俠們幫忙解答,先謝過。

現在的rom和ram都很豐富,rom有好幾k的,你寫程序肯定夠了,除非你要用大量的數據,才會使用大量的程序空間,比如幾十k,才會考慮去擴充。
擴充是用p0口和p2口擴充,p0口是數據,p2口是地址,用373鎖存就可以擴展了。地址如果不是很大,可以用138解碼,這樣可以擴展多片晶元,如果很大,就採用線選咯。

㈡ 51單片機的擴展原理

51單片機具有八位數據匯流排(p0口)和16為地址中線(p2p0口),所以其擴展原理就是利用數據和地址匯流排的方式來擴展外部rom或者ram的。且又專門的指令來讀寫擴展的存儲器數據。分別是movx和movc。

㈢ MCS-51單片機擴展外部數據存儲器和數據存儲器如何編址

51的P0口和P2口用作地址線,具體的編制要看你的存儲器的控制介面,一般有片選線和數據線,外部數據存儲器的地址就是使片選有效的P2口用作高8位P0口用作低8位的地址,例如P2.7用作低電平有效的外部RAM片選控制信號,其地址就為0x7fff

㈣ 51單片機擴展外部數據存儲器6264,怎麼用C語言實現對其操作

2.擴展RAM編程基礎
(1)弄清擴展器件的地址
在圖7.2.5中,U3的ABC接單片機A13,A14,A15,所以片選信號對應地址最高位,即:「CBAxxxxx xxxxxxxx」(x為任意)。U4片選接CS1,即Y1,CBA=001,可得U4的地址范圍是0x2000~0x3fff。U5接CS3,即Y3,CBA=011,地址為0x6000~0x7fff。U6接CS4,即Y4,CBA=100,地址為0x8000~0x9fff。知道了器件地址,可以利用直接地址、外部數據指針來訪問存儲器。通過設置,也可以讓編譯器在擴展RAM中自動分配存儲單元。
(2)直接地址訪問
①向U4寫數據:
XBYTE[0x2000+addr]=dat; //addr為U4內部地址,取值為0~0x1fff;dat為數據。
②讀出U4數據:
dat=XBYTE[0x2000+addr];
也可以用頁訪問方式。頁訪問方式,實際就是先把16位地址高8位送P2口,通過低8位地址讀寫。
③按頁讀寫U4:
P2=0x20+page; // page為頁,取值為0x00~0x1F。
PBYTE[addr]=dat; // addr為頁內地址,取值為0x00~0xFF。
dat=PBYTE[addr];
④讀U6
dat=XBYTE[0x8000];//讀U6,地址取0x8000~0x9fff任何值,都一樣。
⑤寫U5
XBYTE[0x6000]=dat; //寫U5,地址取0x6000~0x7fff任何值,都一樣。
(3)數據指針
如,讀寫U4,可以這樣寫:
unsigned char xdata *p=0x3000; //聲明指針p,並初始指向0x3000單元
x=*p; //讀指針所指向的位置
p=p+1; //指針指向下一單元
*p=0x16; //向指針所指向的位置寫入數據
(4)讓編譯器自動分配存儲空間
①為了能讓編譯器自動分配存儲空間,並使用擴展RAM,必須設置擴展RAM地址。在Keil編程軟體中,點擊工具欄快捷圖標「 」,彈出目標選項對話框。按圖7.2.6所示,設置RAM起始地址和長度。
②變數聲明時使用xdata關鍵詞。如:
unsigned char xdata a;//變數a使用擴展RAM空間。
特別注意,擴展RAM直接地址訪問方式與自動分配存儲空間方式最好不要混用,否則可能產生沖突。
摘自《單片機控制裝置安裝與調試》下冊,雷林均主編

㈤ 單片機 外擴數據存儲器地址的問題

若MCS-51外擴16KB×8數據存儲器的末地址若為9000H,則首地址為( )H。
需要知道計算的過程
----------------
末地址若為 9000H?
不可能的。
題目,出錯了。
末地址,不可能是偶數。
有可能是 8FFFH。

㈥ 51單片機的外部存儲器擴展

不對啊。外部存儲器可以存放不同的程序。比如在同一個系統中使用不同的程序會完成不同的工作,直接換外部程序存儲器就能很方便的換程序而不用換晶元或再燒寫。

㈦ 51系列單片機如果需要外擴存儲器,地址匯流排,數據匯流排,控制匯流排是如何構成的

51系列單片機如果需要外擴存儲器,地址匯流排,數據匯流排,控制匯流排是如何構成的