<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è) > 嵌入式系統 > 設計應用 > 討論有關(guān)單片機內存的問(wèn)題

討論有關(guān)單片機內存的問(wèn)題

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò ) 收藏

由于單片機內存比較小,在以前的型號如AT89c51內存只有128byte,按照目前的電子市場(chǎng)飛速的發(fā)展,這么點(diǎn)點(diǎn)的內存只夠做一個(gè)簡(jiǎn)單的電子系統,若是大一點(diǎn)的就遠遠不夠用了,這樣要么就要外擴一個(gè)靜態(tài)RAM,要么就要選擇一個(gè)內存比較大一點(diǎn)的單片機,比如:AT89S52 [256byte] SST89E564 [1K]等等。這樣在使用KEIL軟件的時(shí)候是如何適用超過(guò)128byte字節的RAM呢?很多人都有這樣的疑問(wèn)【當初我搞的也不是很明白】。

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

在網(wǎng)上也看到了很多人都有這樣的想法:

① 超過(guò)變量128后必須使用compact模式編譯

實(shí)際的情況是只要內存占用量不超過(guò)256.0【前提是:?jiǎn)纹瑱C的內存必須要大于128byte,對于at89c51來(lái)說(shuō)想達到256也達不到啊,本身就不夠用】 就可以用 small 模式編譯。要是單片機提供的內存更大的話(huà),那也可以在small模式編譯的。
② 128以上的某些地址為特殊寄存器使用,不能給程序用

這樣的想法也是不對的,單片機與 PC 機不同,51 單片機不使用線(xiàn)性編址,特殊寄存器與 RAM 使用重復的地址。但訪(fǎng)問(wèn)時(shí)采用不同的指令,所以并不會(huì )占用 RAM 空間。

下面我用匯編和C語(yǔ)言進(jìn)行解釋一下上面紅色字的意思:【很多人都能說(shuō)出這樣的道理,但是很少有人舉出實(shí)際的例子供大家參考和分析,下面我會(huì )在匯編和C語(yǔ)言做出實(shí)際的語(yǔ)句,來(lái)和大家一起分析一下】

首先先給P0口賦值0x55;

P0DATA080H

MOV A , #55H;

MOVP0 ,A; ;因為p0口特殊功能寄存器的地址是0x80

若是往0x80地址存儲數據0xAA。則需要執行以下語(yǔ)句

MOV RO ,#80H

MOV @R0 , #0AAH

參照上面的語(yǔ)句就能知道同樣都是0x80地址卻有著(zhù)不一樣的效果.

下面在寫(xiě)一下C語(yǔ)言的語(yǔ)句

sfr P0 = 0x80;

unsigned char idatai_at_0x80;

voidmain(void)

{

//P0口賦值0x55;

P0 = 0x55;

//0x80地址存儲數據0xAA

i = 0xAA;

}

根據上面總結出來(lái)的,看完所有的代碼我想對大家應該有所幫助吧?仔細看看我上面的代碼或我的說(shuō)明,我想這個(gè)時(shí)候你應該對單片機的內存有個(gè)進(jìn)一步的了解了。對你以后開(kāi)發(fā)單片機應該會(huì )有所幫助的。如果你對此有所疑問(wèn),或者我的說(shuō)法有錯誤,請您給我留言,我們共同交流,由于時(shí)間的關(guān)系,以前整理的資料好多都丟了,今天在此作了一個(gè)簡(jiǎn)單的整理并發(fā)上來(lái),希望對看我的blog的人用……看過(guò)的人希望您能留下寶貴的意見(jiàn)或留言,謝謝?。?!



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

評論


技術(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>