关于51单片机 DS1302时钟编程问题

这是往DS1302写入一个字节的程序://**************读取一字节()*************************ucharDS1302_Output... 这是往DS1302写入一个字节的程序:
//**************读取一字节()*************************
uchar DS1302_Output_Byte(void) //从时钟IC读取一字节()
{
uchar i;
for(i=8; i>0; i--)
{
ACC>>=1; T_DIO= 1;
ACC_7 = T_DIO;
T_SCLK = 1; //相当于汇编中的 RRC
T_SCLK = 0;
}
return(ACC);
}
想问下
ACC>>=1; T_DIO= 1;
ACC_7 = T_DIO;
这句话是什么意思啊?这么做的目的没看懂
展开
 我来答
百度网友9c38907
2013-06-07 · TA获得超过421个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:357万
展开全部
ACC是个特殊寄存器,在reg52.h里有声明
通常用来存放数据移位运算。
ACC>>=1; //这里就是将ACC里的数据右移并赋值给自己,举例0xff也就是1111 1111经过右移1位计算,得到0111 1111

ACC_7 应该在最开始的时候定义过,也就是sbit ACC_7=ACC^7;
ACC_7代表ACC的最高位,也就是第刚才举例中右移一次得到0的那个位
而T_DIO应该是bit类型的,所以,赋值给ACC_7
也就是说ACC 0111 1111最高位被赋值为1,又变成了1111 1111
希望能帮助你
joyoustech
2013-06-07 · TA获得超过1873个赞
知道小有建树答主
回答量:1465
采纳率:71%
帮助的人:1290万
展开全部
ACC>>=1就是变量ACC内的值右移一位。
T_DIO=1应该是将数据线置一,ACC_7 = T_DIO应该是将数据线上的值读到ACC的第七位。
因为没有变量定义,以上的东西都是猜测的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式