找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2047|回复: 3
打印 上一主题 下一主题
收起左侧

想问下这段单片机程序的具体意思,adc0832的

[复制链接]
跳转到指定楼层
楼主
ID:489439 发表于 2019-5-24 14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前面那个是根据时序图来写的吧?但是从for循环开始那边是什么意思呢?

unsigned int  A_D()            //ADC0832   读值程序
{
        unsigned char i;
        unsigned char dat;                                         
        ADC0832_CS=1;   //一个转换周期开始
        ADC0832_CLK=0;  //为第一个脉冲作准备
        ADC0832_CS=0;  //CS0,片选有效
        ADC0832_DIO=1;    //DIO1,规定的起始信号  
        ADC0832_CLK=1;   //第一个脉冲
        ADC0832_CLK=0;   //第一个脉冲的下降沿,此前DIO必须是高电平
        ADC0832_DIO=1;   //DIO1, 通道选择信号  
        ADC0832_CLK=1;   //第二个脉冲,第23个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道RH0
        ADC0832_CLK=0;   //第二个脉冲下降沿
        ADC0832_DIO=0;   //DI0,选择通道0
        ADC0832_CLK=1;    //第三个脉冲
        ADC0832_CLK=0;    //第三个脉冲下降沿
        ADC0832_DIO=1;    //第三个脉冲下沉之后,输入端DIO失去作用,应置1
        ADC0832_CLK=1;    //第四个脉冲
        for(i=0;i<8;i++)  //高位在前
        {
                ADC0832_CLK=1;         //第四个脉冲
                ADC0832_CLK=0;
                dat<<=1;       //将下面储存的低位数据向右移
                dat|=(unsigned char)ADC0832_DIO;          //将输出数据DIO通过或运算储存在dat最低位
        }                                 
        ADC0832_CS=1;          //片选无效
        return dat;         //将读书的数据返回     
}

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

使用道具 举报

沙发
ID:155507 发表于 2019-5-24 23:32 | 只看该作者
但是从for循环开始那边是什么意思呢?



注释 解释很清楚 就是读出数据
回复

使用道具 举报

板凳
ID:441193 发表于 2019-5-25 07:39 | 只看该作者
从ADC0832的DIO端输出转换数据,先最高位DATA7,依次输出,直到DATA0。
先产生一个CLk脉冲下降沿,同时,(dat<<=1; ),dat左移一位,空出最低位准备接收ADC0832_DIO位。
DIO 端输出一位数据,并入dat低位,for循环,读取8次,接收完最低位数据DATA0,一个字节的数据输出完成。一次A/D 转换的结束。
最后将CS 置高电平禁用芯片,将转换后的数据dat返回。
回复

使用道具 举报

地板
ID:489439 发表于 2019-5-25 09:20 | 只看该作者
netlmq 发表于 2019-5-25 07:39
从ADC0832的DIO端输出转换数据,先最高位DATA7,依次输出,直到DATA0。
先产生一个CLk脉冲下降沿,同时,( ...

adc0832不是需要读两次吗?正的一次反的一次
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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