51單片機外部存儲器
1. MCS-51系列單片機的存儲器可劃分為幾個空間,地址范圍以及容量是多少
MCS-51單片機在物理的角度上有四個存儲空間:
1、片內程序存儲器
2、片外程序存儲器
3、片內數據存儲器
4、片外數據存儲器
但在邏輯上,從用戶的角度上,單片機有三個存儲空間:
1、片內外統一編址的64K的程序存儲器地址空間(MOVC)
2、256B的片內數據存儲器的地址空間(MOV)
3、以及64K片外數據存儲器的地址空間(MOVX)
2. 51單片機的片內存儲器和片外存儲器都是在晶元內部嗎
傳統上,片內存儲器是在晶元內部,片外存儲器是在晶元外部。顧名思義嘛。
隨著晶元的發展,有些擴展型51單片機會在片內擴展一些SRAM方便使用,這些SRAM會映射在片外存儲空間內,使用時通過訪問片外存儲空間的低地址來訪問這些「實際上在片內」的SRAM。
3. 51單片機外擴數據存儲器最大的容量是多少,可以達到50MB嗎用的是什麼晶元
如果正常外擴外部數據存儲器, 最大隻有64K
如果用8088 的那種映射辦法, 那51單片機可以達到無窮大
例如用 8000H - FFFFH 這個32K來分片切換, 可以把其他晶元映射到這個32K中來, 片選如果是8根線, 那就有256 * 32K 外部數據存儲器空間了
4. 51單片機內部ram,外部ram的區別
單片機的這 512 位元組的 RAM在地位上並不都是平等的,而是分塊的,塊與塊之間在物理結構和用法上都是有區別的,因此形成51單片機內部ram和外部ram的區別。
一、從使用位元組區別。標准 51單片機的片內 RAM 地址從 0x00H~0x7F 共 128 個位元組。而現在我們用的 51 系列的單片機都是帶擴展片內 RAM 的,即 RAM 是從 0x00~0xFF 共 256 個位元組。而片外 RAM 最大可以擴展到 0x0000~0xFFFF 共 64K 位元組。
二、從連接地址區別。片內 RAM 和片外 RAM 的地址不是連起來的,片內是從 0x00 開始,片外也是從 0x0000 開始的,分別形成data,即片內 RAM 從 0x00~0x7F;idata,即片內 RAM 從 0x00~0xFF;pdata,即片外 RAM 從 0x00~0xFF;xdata,即片外 RAM 從 0x0000~0xFFFF。
一般情況下,使用 data 區域,data 不夠用了,就用 xdata,如果希望程序執行效率盡量高一點,就使用 pdata 關鍵字來定義。其它型號有更大的 RAM 的 51 系列單片機,如果要使用更大的 RAM,就必須得用 xdata 來訪問了。
(4)51單片機外部存儲器擴展閱讀:
51單片機對所有兼容Intel 8031指令系統的統稱,8004單片機成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機屬於基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。
51單片機的RAM用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據,ROM用以存放程序、一些原始數據和表格。四個8位並行I/O口,既可用作輸入,也可用作輸出。T/C包括兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式。
5. 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直接交換信息的是主存。
主存的工作方式是按存儲單元的地址存放或讀取各類信息,統稱訪問存儲器。主存中匯集存儲單元的載體稱為存儲體,存儲體中每個單元能夠存放一串二進制碼表示的信息,該信息的總位數稱為一個存儲單元的字長。
6. 51單片機的外部存儲器擴展
是的。
主流的單片機(不包括51)都已經不支持外部存儲器擴展了,單片機自帶128K的ROM也很常見。
而且51類中,也有不少是不支持外部存儲器擴展的。
最後,做為學習,這部分看看就行,了解一下就好了。
對於trousers所說的。
51的外部存儲器擴展是把單片機內部的匯流排外引化,I/O使用不少於8根線。對於一個你說的要完成不同工作的單片機系統,相對是很復雜的,剩下的IO還夠用嗎?
按你的意思,一個功能復雜到內部128K都裝不下的程序,那還用單片機就太費勁了吧,應該用ARM了,但ARM的程序空間就又是一個量級的了,不過,ARM到還是有不少是保留了外部存儲器擴展I/O的。
盡管目的是一樣的,都是為了擴展外部存儲器但你要知道,51剛出現時ROM貴的和金子似的,英特爾不敢在51結構里放ROM,所以才想出外部擴展的主意,現在FLASH ROM都白菜價了,51也不再是單片機的主力,單片機的外部擴展越來越多的變成了內部自帶,就51的外部擴展而言早已是雞肋了,知道有怎麼個東西就行。
而ARM擴展只是以防萬一,128M(不是128K)的ROM還不夠用嗎?
萬一(豈止是萬一,我想是千萬分之一)用到了,不陌生,臉熟就行了。
對kxjs。
大哥,你知道51的外部存儲器擴展具體是指什麼嗎?24C02是I2C通訊,51這個直接就是結內部是匯流排,不是一會事。
以上!