单片机8051中怎么用C语言的指针变量指量片内RAM某一个单元

例如要用一个指针变量指身片内RAM中50H这个单元!
假如要将单片机RAM中40H到50H单元里的数据比较大小,如果用C语言的指针指向这些单元,应该怎么指向!

第1个回答  2008-06-30
如果这个50H是固定的,就定义SFR:sfr xxx=0x50,以后对xxx的作操就是对50H单元的操作。
如果是不定的,就不行了,因为C语言编译器会自动分配各内存单元。此时变通的方法就是嵌入汇编语言。
就你补充的,据我所知是不行的,唯一的方法就是嵌入汇编语言。

单片机8051中怎么用C语言的指针变量指量片内RAM某一个单元
如果是不定的,就不行了,因为C语言编译器会自动分配各内存单元。此时变通的方法就是嵌入汇编语言。就你补充的,据我所知是不行的,唯一的方法就是嵌入汇编语言。

51单片机访问片内数据存储器某单元的内容用c语言怎么写???
方法1:char data *p; \/\/定义一个指向片内RAM地址的指针 p = 0x30; \/\/片内RAM地址为0x30 p = 0x12; \/\/向0x30内写入立即数0x12 方法2:include <absacc.h> char x;x = DBYTE[0x30]; \/\/将片内RANM地址0x30的内容赋给变量x DBYTE[0x30] = 0x12; \/\/向0x30...

怎么用C语言操作单片机内部RAM地址啊?
\/\/比如用C语言访问RAM的30H单元 char * pRam; \/\/定义一个个指针 pRam = 0x30; \/\/赋地址给一个指针 pRam; \/\/解引这个指针就可以访问了

在51单片机中怎样使用C语言预留一片存储区,使得变量自动分配内存时避开...
我自学51单片机用的编译器是SDCC,里面有一个修饰叫做__at 用sdcc的话可以写 __at(0x20) char reversed[16];然后这一块内存就分配给此全局变量了

c语言编程c51单片机
uint xdata *xp;\/\/定义指向片外RAM的指针 uint data *p;\/\/定义指向片内RAM的指针 uchar i;\/\/定义循环变量 xp=0x100;\/\/指向片外RAM的100H单元 p=0x30;\/\/指向片内RAM的30H单元 for(i=0;i<10;i++){\/\/循环10次 p=*xp;\/\/将片外RAM单元中的内容传送给片内RAM单元 xp++;\/\/指向下一个...

...51的单片机变量是怎么个定义法。全局变量,局部变量都放在什么存储...
unsigned char bdata SS _at_ 0x22;只有在Keil编译环境下才可以这样使用。还有,这种语法不适合用C语言,我说的是不适合,不是不能用。C语言里面的指针就是针对这个的,不建议使用 _at_ 进行变量在RAM中固定,这样对程序编译优化时,带来很多麻烦,也得不到充分的优化。其实用C语言指针的方法是可行...

怎么用80c51用c语言编程,把数据从内部存储器转移到外部存储器?_百度...
U6接CS4,即Y4,CBA=100,地址为0x8000~0x9fff。知道了器件地址,可以利用直接地址、外部数据指针来访问存储器。通过设置,也可以让编译器在扩展RAM中自动分配存储单元。(2)直接地址访问 ①向U4写数据:XBYTE[0x2000+addr]=dat; \/\/addr为U4内部地址,取值为0~0x1fff;dat为数据。②读出U4数据:...

用C语言编写8051单片机程序
unsigned char code bit_sel[]={0xfb,0xfd,0xfe};\/\/低电平有效数字个十百位选择 unsigned char buf[3]={0,0,2};\/\/计算中的个十百位暂时存放处 unsigned char one,ten,second;\/\/个十位变量和流水灯显示3秒的时间变量 unsigned char rate;\/\/扫描速度,调整以适应显示效果 unsigned char stop...

80C51单片机中怎么表示负一!内部RAM中一组数据传送,遇到负一停止!这里...
负一,用 8 位二进制数字表示,就是 1111 1111,即:255。

单片机是如何区分片内ram和片外ram
就51单片机来说,C语言编程的话,变量前加xdata,表示用的是外部RAM 汇编语言编程的话,MOVX是访问外部RAM的指令, MOV 访问内部RAM的指令

相似回答
大家正在搜