<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機ROM與RAM

51單片機ROM與RAM

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò ) 收藏
眾所周知,51內部的存儲器分為數據存儲器RAM程序存儲器ROM。以AT89c51為例,其中有128字節隨機存儲器(又稱(chēng)數據儲存器RAM)和4K字節的只讀存儲器(又稱(chēng)程序存儲器ROM)。
先說(shuō)說(shuō)這個(gè)4K字節的程序存儲器或者說(shuō)只讀存儲器,我們寫(xiě)的程序經(jīng)過(guò)編譯器編譯成機器碼都是存在這個(gè)區域,所以稱(chēng)為程序存儲器;但單片機上電執行的時(shí)候,此區域內的數據只能讀取而不能寫(xiě)入,他的只讀存儲器的名稱(chēng)從這而來(lái)。89c51的ROM采用的是FPEROM(Flash Programmable and Erasable Read Only Memory),具體工藝我也不太清楚,號稱(chēng)可以擦寫(xiě)1000次,也就是說(shuō)你每天寫(xiě)30次,一個(gè)多月就報廢了。
在說(shuō)說(shuō)128字節的隨機存儲器或者說(shuō)數據存儲器,程序運行過(guò)程中,一些中間變量存儲在這個(gè)地方,也能從這個(gè)地方獲取需要運算的值,所以稱(chēng)之為隨機存儲器,也稱(chēng)為數據存儲器。個(gè)人覺(jué)得相當于計算機的內存,掉電丟失。
看看MSC-51指令就知道,所有的數據移動(dòng)指令都是對RAM區操作的,就是因為無(wú)法改變ROM。
51內部的存儲器在物理上可分為4個(gè)區域:片內ROM,片外ROM,片內RAM和片外RAM。從邏輯上可分為三個(gè)區域,64KB片內外統一編址的程序存儲器(ROM),128字節或256字節的片內數據存儲器(RAM),64KB片外數據存儲器(RAM)。
對應的keil編譯器關(guān)鍵字為:
data:片內數據存儲器(RAM)低128字節(51系列片內只有128字節,52系列有256字節)
bdata:可位尋址的片內RAM
以上兩種類(lèi)型可以快速的存取數據,常用來(lái)放臨時(shí)性的傳遞變量或使用頻率較高的變量。
idata :片內數據存儲器(RAM)256字節
xdata:片外數據存儲器64KB
pdata:片外數據存儲器低256字節
code:64KB程序存儲器(如果變量定義在這個(gè)空間,后面就不能修改了,如果有語(yǔ)句改變它的值,編譯器就會(huì )報錯。)

此外,C51還有三種存儲模式(這是在開(kāi)發(fā)環(huán)境里面設置的):SMALL, COMPACT, LARGE

本文引用地址:http://dyxdggzs.com/article/201611/318424.htm

SMALL模式下,如果不做特別說(shuō)明,參數及局部變量默認為data型,放在片內RAM128字節內,訪(fǎng)問(wèn)迅速。由于內部的RAM有限,如果變量過(guò)多,會(huì )導致頻繁的使用寄存器,而使代碼變的冗長(cháng)。此時(shí)棧也在片內的RAM,棧長(cháng)很關(guān)鍵,因為棧長(cháng)依賴(lài)于不同函數的嵌套層數。

COMPACT:不做特別說(shuō)明,參數及局部變量默認為pdata,??臻g在內部RAM。

LARGE:參數及局部變量默認為xdata,使用DPTR來(lái)尋址。訪(fǎng)問(wèn)效率低,此外這種數據指針不能對稱(chēng)操作。

全局變量會(huì )根據定義的類(lèi)型或者存儲的模式分配在相應的存儲區內,有固定的地址,如果全局變量過(guò)多則會(huì )導致占用太多內存,處理速度變慢。




關(guān)鍵詞: 51單片機ROMRA

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>