新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于單片機(jī)RAM的作用

關(guān)于單片機(jī)RAM的作用

作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
一、內(nèi)部RAM:共256個單元,用戶使用前128個單元,用于存放可讀寫數(shù)據(jù),后128個單元被專用寄存器占用。

前128單元具體分為:

本文引用地址:http://butianyuan.cn/article/201611/319886.htm

1.工作寄存器區(qū):共4個組,每組為8個存儲單元,即00H-07H,08H-0FH,10H-17H,18H-1FH,具體選擇哪一個由程序狀態(tài)字(PSW)中的RS1和RS0的組合決定(在此我就不展開了,呵呵……)

2.位尋址區(qū):20H-2FH,共16個單元,每一位可以進(jìn)行位尋址(16*8=128個位地址),就是每一個觸發(fā)位,就是bit可以尋址

3.便箋區(qū):從30H-7FH,共80個單元,用于存放用戶數(shù)據(jù)或作堆棧區(qū)使用。

4.從80H-FFH為專用寄存器占用,其中還離散的分布SFR(21個特殊功能寄存器)

二、256B

其中00H~7FH

可分為3個區(qū)域:

00H~1FH 是通用寄存器區(qū)

20H~2FH 是位尋址區(qū)

30H~7FH 是用戶RAM區(qū)

80H~FFH是特殊功能寄存器區(qū)

三、AT89S51單片機(jī)的ram,只有128字節(jié),地址范圍:00H~7FH。

SFR不是RAM,是特殊功能寄存器,地址范圍:80H~FFH,SFR在其中離散分布著。

AT89S52單片機(jī)的ram,就有256字節(jié),地址范圍:00H~FFH。

SFR,特殊功能寄存器,仍然在地址范圍:80H~FFH。

兩者的地址重疊了,區(qū)別方法如下:

對80H~FFH直接尋址,就是讀寫SFR,特殊功能寄存器;

對80H~FFH間接尋址,就是讀寫RAM。

先說說這幾個詞是什么意思:

1,DATA,51的內(nèi)部RAM,只有128B(字節(jié))大小,不管是最新的什么增強(qiáng)型單片機(jī);

2,XDATA,外部RAM,只能使用MOVX尋址

3,CODE,代碼區(qū),即是你的代碼的大小,AT89C51為4K,C52為8K等,增強(qiáng)型的有更多的選擇。

然后說明一下,幾種RAM的區(qū)別:

1,DATA,也是上面1提到的DATA RAM,占51的128B;

2,IDATA,大小也為128B,與DATA構(gòu)成256字節(jié)的內(nèi)存(如AT89C52)

3,PDATA,外部RAM的前256B(就是一個頁的大小),是XDATA的一部分;

4,XDATA,外部RAM

所以你的那個單片機(jī)的1280B,其實組成為:

DATA :128B

IDATA:128B

XDATA:1024B

所以你的問題,“使用片內(nèi)RAM”打勾只是軟件仿真用的;你的XDATA用了758B,說明你特意用XDATA關(guān)鍵字定了這么大的內(nèi)存,比如大數(shù)組或者內(nèi)存模式時,使用了lager模式,那么編譯器會自動把超出的部分放到XDATA里,我猜你應(yīng)該是這里選擇了lager模式,不過你的內(nèi)容這么大,也只能選擇lager模式。



關(guān)鍵詞: 單片機(jī)RA

評論


技術(shù)專區(qū)

關(guān)閉