標題: 51單片機內部RAM的問題、STC單片機內部擴展RAM的應用 [打印本頁]
作者: daming 時間: 2014-12-29 23:14
標題: 51單片機內部RAM的問題、STC單片機內部擴展RAM的應用
STC89C52RC單片機的RAM有512字節,然而這512字節怎么用呢?很多人可能都不知道,這可是極大的資源浪費啊。RAM本來就寶貴,給
了這么多資源怎能不用呢?
我們都知道8051單片機有128字節RAM,后來8052單片機擴充到256字節RAM,然而在使用上是有區別的。
在keil c默認情況下編譯,
char a=0×00; a 會被存儲在低128字節的RAM里,這部分RAM稱為data
上述語句等效為:char data a=0×00;
那么如何使用高128字節的RAM呢,只要用 idata 關鍵詞就可以了:
char idata b=0×01; b 會被存放在全部256字節RAM的位置。
有人定義一個char a[120]數組時,編譯會出錯,明明單片機有256字節RAM,為什么定義一個120元素的數組還不夠用呢?因為char c[120]等
同于char data c[120] ;數據都擠在低128字節的RAM里當然不夠用。
char idata c[120] ;就不會有問題,數組會被分配在全部256字節的RAM中 SCT為了增強單片機的性能,STC89C**RC單片機擴展了256字節的RAM,總共達到512字節。STC89C58RD+單片機擴展了1024字節的RAM,總共達到1280字節. 這些額外擴展的RAM怎么用呢?很簡單,只要用 xdata 關鍵詞就可以了。
STC89C**RC 單片機最大可以定義:char xdata d[256];
STC89C**RD+ 單片機最大可以定義:char xdata d[1024] ;
除了 data idata xdata 之外,還有一個 bdata ,這個bdata 是什么呢?單片機低128字節的RAM里,還有一塊特殊的區域,地址是0×20–0x2F;
這16個字節是可以位尋址的,如果你需要定義的變量可以按位尋址,使用bdata 關鍵詞:
char bdata e=0xf7 ;變量e被分配在0×20–0x2F位尋址區域內。
作者: wwwmagic 時間: 2014-12-30 12:30
謝謝樓主分享
作者: freedom_lq 時間: 2016-12-25 00:34
如果是不需要修改的數組還可以用code定義到ROM中去
作者: 濤qq623942603 時間: 2020-1-17 15:48
使用結構體的話,能用xdata嗎?我試了,不會報錯,但是運行不正常
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
美日韩精品
|
久久精品欧美一区
|
99国产精品99久久久久久
|
h片免费|
亚洲视频一区二区三区
|
少妇视频在线观看
|
中文字幕免费在线观看
|
亚洲精品在线免费
|
欧美视频在线观看免费
|
美女无遮挡网站
|
最新日韩av
|
精品在线免费视频
|
天天射天天舔
|
婷婷六月天
|
久久久综合
|
男人添女荫道口图片
|
欧美777
|
亚洲成a
|
老司机免费福利视频
|
丁香花在线观看
|
视频爱爱免费视频爱爱太爽
|
第一福利丝瓜av导航
|
99re在线观看视频
|
日韩色在线
|
国产乱码一区二区三区
|
国产三级成人
|
在线观看91|
亚洲综合视频在线
|
国产黄色三级
|
五月天激情综合网
|
国产精品手机在线
|
成人午夜在线
|
一区二区视频网站
|
亚洲黄色小视频
|
欧美日韩综合
|
亚洲免费在线
|
久久99深爱久久99精品
|
中文字幕在线观看免费
|
日韩av免费播放
|
久久久久久国产精品
|
亚洲一区二区免费
|