找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3472|回复: 0
收起左侧

单片机ADC0832转换程序的工作过程如何理解?

[复制链接]
ID:732746 发表于 2020-4-21 18:01 | 显示全部楼层 |阅读模式
关于ADC0832进行转换时的这部分程序不太明白,请大佬讲下是怎么个过程
//下面开始读取转换后的数据,从最高位开始依次输出(D7~D0)
        for(i = 0;i < 8;i++)
        {
        dat <<= 1;//左移运算符,例如c<<=2就是 c=c<<2把c左移2位得度到的值给c。dat=dat<<1,把dat左移1位得度到的值给dat
        ADCLK=1;//拉高时钟端
        _nop_();
        _nop_();
        ADCLK=0;//拉低时钟端形成一次时钟脉冲
        _nop_();
        _nop_();
        dat |= ADDO;//C语言中的 |= 意思为:按位或后赋值.C语言中的 ^= 意思为:按位异或后赋值.C语言中的 &= 意思为:按位与后赋值
        }
        ndat = 0; //记录D0
        if(ADDO == 1)
        ndat |= 0x80;
        //下面开始继续读取反序的数据(从D1到D7)
        for(i = 0;i < 7;i++)
        {
        ndat >>= 1;
        ADCLK = 1;//拉高时钟端
        _nop_();
        _nop_();
        ADCLK=0;//拉低时钟端形成一次时钟脉冲
        _nop_();
        _nop_();
        if(ADDO==1)
        ndat |= 0x80;
        }
        ADCS=1;//拉高CS端,结束转换
        ADCLK=0;//拉低CLK端
        ADDI=1;//拉高数据端,回到初始状态
        if(dat==ndat)
        return(dat);
        else
        return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表