打印

什么功能?

[复制链接]
1293|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llia|  楼主 | 2021-12-8 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在下面程序中,
uchar Ds1302Read(uchar addr)
{
        uchar n,dat,dat1;
        RST = 0;
        _nop_();

        SCLK = 0;//先将SCLK置低电平。
        _nop_();
        RST = 1;//然后将RST(CE)置高电平。
        _nop_();

        for(n=0; n<8; n++)//开始传送八位地址命令
        {
                DSIO = addr & 0x01;//数据从低位开始传送
                addr >>= 1;
                SCLK = 1;//数据在上升沿时,DS1302读取数据
                _nop_();
                SCLK = 0;//DS1302下降沿时,放置数据
                _nop_();
        }
        _nop_();
        for(n=0; n<8; n++)//读取8位数据
        {
                dat1 = DSIO;//从最低位开始接收
                dat = (dat>>1) | (dat1<<7);
                SCLK = 1;
                _nop_();
                SCLK = 0;//DS1302下降沿时,放置数据
                _nop_();
        }

        RST = 0;
        _nop_();        //以下为DS1302复位的稳定时间,必须的。
        SCLK = 1;
        _nop_();
        DSIO = 0;
        _nop_();
        DSIO = 1;
        _nop_();
        return dat;        
}

   dat = (dat>>1) | (dat1<<7);是什么意思,什么功能?

使用特权

评论回复
沙发
llia|  楼主 | 2021-12-8 23:30 | 只看该作者
dat1 = DSIO;//从最低位开始接收,数据明明是给了dat1,但是最后return 的数据 却是  dat ?

使用特权

评论回复
板凳
dengdc| | 2021-12-8 23:32 | 只看该作者

dat=(dat>>1)|(dat1<<7)
dat=(dat按位右移1位)相或同假为假一真即真|(dat1按位左移7位)

使用特权

评论回复
地板
wuhany| | 2021-12-8 23:34 | 只看该作者
dat右移1位,左侧空位补0;dat1左移7位,右侧空位补0,将两个结果按位或运算,赋值给dat

使用特权

评论回复
5
huangchui| | 2021-12-8 23:36 | 只看该作者
你的程序最后一句话写的是return dat;如果想返回dat1,就写return dat1;

使用特权

评论回复
6
guoyt| | 2021-12-8 23:38 | 只看该作者
for(n=0; n<8; n++)//读取8位数据
        {
                dat1 = DSIO;//从最低位开始接收
                dat = (dat>>1) | (dat1<<7);
                SCLK = 1;
                _nop_();
                SCLK = 0;//DS1302下降沿时,放置数据
                _nop_();
        }

使用特权

评论回复
7
juventus9554| | 2021-12-8 23:40 | 只看该作者

dat>>1,右移一位,高1位补零,变成0XXXXXXX。
dat1<<7左移七位,低7位补零,变成X0000000,

使用特权

评论回复
8
llljh| | 2021-12-8 23:42 | 只看该作者
dat = (dat>>1) | (dat1<<7)  就是dat右移一位, dat1左移7位,当两个条件任何一个为真时,结果为1.

使用特权

评论回复
9
llia|  楼主 | 2021-12-8 23:44 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

961

主题

8893

帖子

4

粉丝