找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3301|回复: 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;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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