永发信息网

我想问问51单片机如果使用c语言将特定的数值,比如0x01,存到30h单元里面应该怎么写?

答案:4  悬赏:30  手机版
解决时间 2021-03-12 23:12
  • 提问者网友:一抹荒凉废墟
  • 2021-03-12 02:42
这样子以后就可以调用了。以前都是汇编语言,第一次用c
最佳答案
  • 五星知识达人网友:孤老序
  • 2021-03-12 03:31
楼主:我准确地回答你的问题,你可以到KEIL或IAR里去仿真一下:

BYTE value _at_ 0x30;//表示value这个单字节变量指定的RAM地址为0x30。
value=0x01;//将0x01值赋值给30h

BYTE :是定义数据类型为单字节;
value:是一个变量;
所以"BYTE value _at_ 0x30"表示value 这个单字节变量指定的RAM地址为0x30
如果还有问题,请继续问,呵呵!
全部回答
  • 1楼网友:痴妹与他
  • 2021-03-12 06:41
还像是可以自己定义一个特殊地址,然后调用!如头文件里的内容…… sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0;
  • 2楼网友:猎心人
  • 2021-03-12 05:22
应该是b,27h. 这是将a的低半字节与@r0的低半字节交换,高半字节不变。 @r0里存放的是地址30h里存放的数,即67h,a里存放的是20h,所以交换的结果是27h。 xch a,rn xch a,direct xch a,@ri 的意思是将a与后者的内容交换。 xchd a,@r0的意思是将a的低半字节与后者的低半字节交换。高半字节不变。
  • 3楼网友:封刀令
  • 2021-03-12 04:52
#define wrt377 XBYTE[0x8000] void key() { unsigned char xdata j,wrt377v; wrt377v = wrt377v+0x20; for (j=0;j<20;j++)delay(1000); //xd delay keys=0; wrt377=wrt377v; if(!(INT0&INT1)&&key_press==0) { key_xd=1; //confirm keypress EX0=0;EX1=0; } else {key_xd=0;keys=0;wrt377=wrt377v;} //confirm no keypress }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯