单片机ACC问题?请问ACC是个变量呢还是个表达式?

2019-03-24 19:36发布

dat1=ACC;//16进制转十进制
 dat2=dat1/16;
 dat1=dat1%16;
 dat1=dat1+dat2*10;
 return dat1; 上述程序中 必须把ACC付给变量dat1程序才对 而改成如下程序为什么就不对了呢? dat1=ACC%16; //16进制转十进制
 dat2=ACC/16;
 dat1=dat1+dat2*10;
 return dat1; 也就是说ACC直接参与运算为什么就出错了 ?ACC难道不是变量吗?比如ACC=ACC>>1  这个表达式ACC可以直接参与运算就对 宏定义中REG52.h 中不是定义了 #define ACC=0X80 了吗 ?求解答 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
小小白
1楼-- · 2019-03-25 03:55
首先我想说楼主很仔细,Acc是一个寄存器,那个宏定义,说的是他的地址,他是在ram里面的特殊寄存器,明白这个之后你就不难理解为什么把他直接进行运算为什么错了吧?
zmsxhy
2楼-- · 2019-03-25 08:53
呃 原来 是这样!
孤獨の快樂
3楼-- · 2019-03-25 09:07

reg52.h里应该是写着sfr ACC   = 0xE0;吧

而且只见过#define ACC 0X80的格式,没见过#define ACC=0X80的格式

[ 本帖最后由 孤獨の快樂 于 2011-11-18 13:53 编辑 ]
小小白
4楼-- · 2019-03-25 13:54
是的我看了。。。。你好仔细啊。。。。那个是语法错误啊。。。

一周热门 更多>