『壹』 51單片機外擴數據存儲器最大的容量是多少,可以達到50MB嗎用的是什麼晶元
如果正常外擴外部數據存儲器, 最大隻有64K
如果用8088 的那種映射辦法, 那51單片機可以達到無窮大
例如用 8000H - FFFFH 這個32K來分片切換, 可以把其他晶元映射到這個32K中來, 片選如果是8根線, 那就有256 * 32K 外部數據存儲器空間了
『貳』 51單片機外擴存儲器時如何確定存儲器的地址范圍
51單片機外擴存儲器時,用地址線確定存儲器的地址范圍。
用一個IO口的口涎作為數據存儲器的片選信號。比如8051單片機,P2:P0口提供的地址A15~A0(實際是A12~A0)用來訪問8K的數據存儲器。
用單片機的P1口作為存儲器的片選信號:P1.0接一個存儲器的CS,P1.1接另一個存儲器的CS,這樣8個存儲器正好用完P1口,當要訪問其中一個時,只把相應的P1.x=0而其他為1,這樣就可以了。
工作原理
存儲器是用來存儲程序和各種數據信息的記憶部件。存儲器可分為主存儲器(簡稱主存或內存)和輔助存儲器(簡稱輔存或外存)兩大類。和CPU直接交換信息的是主存。
主存的工作方式是按存儲單元的地址存放或讀取各類信息,統稱訪問存儲器。主存中匯集存儲單元的載體稱為存儲體,存儲體中每個單元能夠存放一串二進制碼表示的信息,該信息的總位數稱為一個存儲單元的字長。
『叄』 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直接地址訪問方式與自動分配存儲空間方式最好不要混用,否則可能產生沖突。
摘自《單片機控制裝置安裝與調試》下冊,雷林均主編
『肆』 51單片機的外部存儲器擴展
不對啊。外部存儲器可以存放不同的程序。比如在同一個系統中使用不同的程序會完成不同的工作,直接換外部程序存儲器就能很方便的換程序而不用換晶元或再燒寫。
『伍』 MCS-51單片機擴展系統中,片外程序存儲器和片外數據存儲器共處同一個地址空間,為什麼不會發生匯流排沖突
因為控制信號線的不同:外擴的RAM晶元既能讀出又能寫入,所以通常都有讀寫控制引腳,記為OE和WE。外擴RAM的讀、寫控制引腳分別與MCS-51的RD和WR引腳相連。
外擴的EPROM在正常使用中只能讀出,不能寫入,故EPROM晶元沒有寫入控制引腳,只有讀出引腳,記為OE,該引腳與MCS-51單片機的PSEN相連
訪問片外程序存儲器和訪問數據存儲器使用不同的指令用來區分同一地址空間硬體上,控制信號不一樣:片外程序存儲器工作,要PSEN信號有效。
片外數據存儲器工作,要RD或WR信號有效;軟體上,定址不一樣,片外程序存儲器工作,要用MOVC,片外數據存儲器工作,要用MOVX;雖然地址都是0000H~FFFFH,不會發生沖突的。
(5)51單片機擴展外部存儲擴展閱讀:
訪問存儲空間時,需要用到兩個指針變數,為DPTR和PC。其中pc為程序計數器,指向下一條需要執行的指令的地址,DPTR為數據指針寄存器,這兩個變數的長度都為16位。
這是51單片機內部結構決定的,無法改變。所以這兩個指針的定址能力都為64K。這樣看來,兩類存儲器的擴展能力都為64K 。