DS1302有关问题求指教

2019-03-24 19:36发布

在定入单字节中为什么是for(i=0;i<8;i++)
        {
        sck=0;
        sda=dat&0x01;//取出dat的第0位数据写入1302 数据由低位开始传
        dat=dat>>1;
        sck=1;
        }这个时候的SDA是怎么样放的,为什么是与上0X01呢?而读出单字节的for(i=0;i<8;i++)
        {
                value=value>>1;
                sck=0;
                if(sda)
                value=value|0x80; //将1取出,写在dat的最高位
                sck=1;
        }这里又是为什么呀?写入读出后的SDA是高位到低位还是低位到高位,

求个详细的解释呀,,,,越细越好呀 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
孤獨の快樂
1楼-- · 2019-03-26 05:31

if(sda)
value=value|0x80;

 

sda为1时,最高位置1,sda为0时,最高位0不变。

知道怎么读数据了的吧

写是从value数据按位取出给sda,读是sda数据按位保存在value

[ 本帖最后由 孤獨の快樂 于 2011-11-15 18:49 编辑 ]
Dele_chen
2楼-- · 2019-03-26 08:45
哦哦,,这个想明了点,那如果想写入01010011时,SDA是怎么排的呢,是01010011还是11001010呀
辛昕
3楼-- · 2019-03-26 13:44
 精彩回答 2  元偷偷看……

一周热门 更多>