单片机C语言语句ACC7=ACC^7;是什么意思?

如题所述

ACC7=ACC^7,就是在定义时写的用ACC7来表示ACC^7,这样在下面的程序写起来比较方便。比如说你还会见到sbit p0_0=P0^0,因为在reg52.h里面写的P0.0口是P0^0,程序员为了在写程序时输入方便和阅读方便就把它定义写成p0_0了。追问

void write(unsigned char add,unsigned char dat)
{char i;
load=0;
ACC7=add;
for(i=0;i<=7;i++)
{
clk=0;
din=ACC7;

ACC=ACC<<1;
clk=1;
}
ACC=ACC<<1是整个寄存器的右移吗?
这个与ACC的最高位有什么练习?
这是MAX7219的程序?

追答

ACC=ACC<<1是整个寄存器的左移一位
ACC^7就是ACC的最高位,移位以后变成最低位
看不出是什么程序~

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
ACC7就是个变量名。ACC^7表示ACC寄存器的第七位。本回答被提问者和网友采纳
第2个回答  推荐于2016-08-14
累加器(ACC)是8位寄存器,常用于进行算术或逻辑操作的输入和运算结果的输出。在指令累加器的助记符为A,作为直接地址时助记符为ACC。ACC7为累加器对应的位。通常写作sbit ACC7=ACC^7。
第3个回答  2015-07-12

源码是

sbit ACC7=ACC^7;

这样的形式吧

定义特殊功能寄存器的位变量,表示ACC寄存器(累加器)的最高位

具体用处,取决于使用的代码,一边是用于判断累加和是否为负数(有符号数的话)

第4个回答  2011-08-12
“^”为异或的意思,ACC7为ACC和7异或的值,其实也就是要看AAC所代表的寄存器0~2位的状态
相似回答