标题: 单片机ADC0832转换程序的工作过程如何理解? [打印本页]

作者: zhangqi610    时间: 2020-4-21 18:01
标题: 单片机ADC0832转换程序的工作过程如何理解?
关于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;
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1