怎么用C语言操作单片机内部RAM地址啊?

如题,怎么使用C语言操作单片机内部RAM的地址啊?比如说想把单片机内部RAM地址30H到3FH的内容调出来,要怎么实现啊?

//比如用C语言访问RAM的30H单元
char * pRam; //定义一个个指针
pRam = 0x30; //赋地址给一个指针
*pRam; //解引这个指针就可以访问了追问

懂了懂了 谢谢啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-30
把地址 通过 强制类型转换 转换为指向片内ram的指针。
例如 访问 30H的内容可以这样:
*(unsigned char data *) 0x30追问

这个然后要怎么操作0x30之后的地址啊?比如要调用30H到3FH的内容,然后把这部分内容送给P0口和P1口啊?

追答

不是很明白你的意思,如果只是把一些值送到端口,赋值就可以了呀,例如把 片内ram0x32的内容送到 P1
P1= *(unsigned char data *) 0x32 ;
如果是访问一片内容,定义 一个 指针即可,例如
unsigned char data * ptr1 ;
...
ptr1=0x30;
P1=*ptr1++;
...

追问

好像有点明白了,那怎么才能自己设置地址里面的数啊?比如说30H到3FH里面的内容我想让它全为1,这要怎么设置啊?因为我想自己先在单片机内部的RAM某个地址自己设置一些数,然后把它读出来给LED显示一下~

追答

呵呵,读出和写入都可以通过指针访问来实现呀,例如
*(unsigned char data *) 0x33 = 0x5a;

本回答被提问者和网友采纳
相似回答