ACC的用法

[复制链接]
1313|17
 楼主| zhaoxqi 发表于 2016-10-16 22:19 | 显示全部楼层 |阅读模式
sbit ACC_7 = ACC^7;    //先定义

   for ( i=8; i>0; i-- )
       {
               ACC_7=DIO;
               SCLK = 0;
               ACC=ACC>>=1;
               SCLK = 1;
                   }
其中DIO是单片机引脚,用ACC_7读出的数值
是FF,但是我用if语句判断引脚,不用ACC_7读就是对的
,难道这ACC用法不对?
liliang9554 发表于 2016-10-16 22:21 | 显示全部楼层
这里可能for ( i=8; i>0; i-- ) 会用到ACC,这样就会覆盖下面的ACC值

C里面一般不要去操作寄存器
heweibig 发表于 2016-10-16 22:23 | 显示全部楼层

用了C,除非你特牛,否则动到寄存器,死得难看。
liliang9554 发表于 2016-10-16 22:25 | 显示全部楼层
要在C语言中直接访问工作寄存器(R0~R7,A,B等等),你就得考虑后果。
wuhany 发表于 2016-10-16 22:26 | 显示全部楼层
我有次用I2C用了ACC,也被囧到了。。。
结果好像改成for(i = 0; i < 8; i++)就没事了。。。- -
lizye 发表于 2016-10-16 22:28 | 显示全部楼层
没听说过用C还要用ACC的
spark周 发表于 2016-10-16 22:29 | 显示全部楼层
你可以看下编译的汇编程序找找问题
 楼主| zhaoxqi 发表于 2016-10-16 22:32 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
lihuami 发表于 2016-10-17 22:09 | 显示全部楼层
ACC是什么寄存器?
lihuami 发表于 2016-10-17 22:12 | 显示全部楼层
楼主这是什么芯片的?
haokeer 发表于 2016-10-18 22:40 | 显示全部楼层
这好像是51中的芯片,51中才有ACC这个寄存器的。
haokeer 发表于 2016-10-19 21:57 | 显示全部楼层
51中的累加器ACC,是个8位的寄存器,用来存放数据的。
myiclife 发表于 2016-10-19 23:20 | 显示全部楼层
怎么不用宏定义来实现呢
myiclife 发表于 2016-10-19 23:22 | 显示全部楼层
这个是单片机51的吗?
Brand2 发表于 2016-10-31 21:55 | 显示全部楼层
ACC是51中的累加器
mmbs 发表于 2016-11-1 16:46 | 显示全部楼层
你直接通过宏定义判断不行吗?
mmbs 发表于 2016-11-1 16:47 | 显示全部楼层
这个应该是51里面的实现方法吧。
Rollo 发表于 2016-11-12 21:17 | 显示全部楼层
ACC是什么,是汇编的吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部