新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)中data,idata,xdata,pdata的區(qū)別

51單片機(jī)中data,idata,xdata,pdata的區(qū)別

作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
說來慚愧,一直以來,在學(xué)校也算是搞了不少東西,不過反而是51單片機(jī)這個基礎(chǔ)的東西沒有認(rèn)真去做過,當(dāng)初剛自學(xué)51沒一個多星期呢,就轉(zhuǎn)到飛思卡爾16位單片機(jī)上去了,以至于51還沒透徹的弄個明白。

就不如我很清楚s12單片機(jī)什么片內(nèi)ram啊,flash大小啊,反而是51的不敢肯定的回答哦。

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

比如今天再次看到的這個問題,以前就看到過,但因?yàn)橐恢辈辉趺锤銋R編程序,所以對51單片機(jī)中的dataidata、xdatapdata一直不清楚,不過今天不再脫了,決定一定弄清楚。

--------------------------------------------------------------------------------------------

再附上51片內(nèi)資源簡介,再次記憶。

.8位CPU·4kbytes 程序存儲器(ROM) (52為8K)

·256bytes的數(shù)據(jù)存儲器(RAM) (52有384bytes的RAM)

·32條I/O口線·111條指令,大部分為單字節(jié)指令

·21個專用寄存器

·2個可編程定時/計數(shù)器·5個中斷源,2個優(yōu)先級(52有6個)

·一個全雙工串行通信口

·外部數(shù)據(jù)存儲器尋址空間為64kB

·外部程序存儲器尋址空間為64kB

·邏輯操作位尋址功能·雙列直插40PinDIP封裝

·單一+5V電源供電

CPU:由運(yùn)算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;

RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);

ROM:用以存放程序、一些原始數(shù)據(jù)和表格;

I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出;

T/C:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;

五個中斷源的中斷控制系統(tǒng);

一個全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;

片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率為12M。

--------------------------------------------------------------------------------------------

回到主題上來,從數(shù)據(jù)存儲類型來說,8051系列有片內(nèi)、片外程序存儲器,片內(nèi)、片外數(shù)據(jù)存儲器,片內(nèi)程序存儲器還分直接尋址區(qū)和間接尋址類型,分別對應(yīng)code、data、xdata、idata以及根據(jù)51系列特點(diǎn)而設(shè)定的pdata類型,使用不同的存儲器,將使程序執(zhí)行效率不同,在編寫C51程序時,最好指定變量的存儲類型,這樣將有利于提高程序執(zhí)行效率(此問題將在后面專門講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應(yīng)不同的實(shí)際硬件系統(tǒng),也將有不同的編譯結(jié)果。

在51系列中data,idata,xdata,pdata的區(qū)別:

data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼

也最小。

idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因?yàn)樵L

問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:

mox ACC,@Rx.(不重要的補(bǔ)充:c中idata做指針式的訪問效果很好)。

xdata:外部擴(kuò)展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

pdata:外部擴(kuò)展RAM的低256個字節(jié),地址出現(xiàn)在A0-A7的上時讀寫,用movx ACC,@Rx

讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優(yōu)點(diǎn),具

體用法屬于中級問題,這里不提。



評論


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

關(guān)閉