找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2100|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

求分析這段單片機(jī)代碼的作用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:559917 發(fā)表于 2019-6-17 13:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
unsigned int Adc0832(unsigned char channel)
{
        uchar i=0;
        uchar j;
        uint dat=0;
        uchar ndat=0;
        uchar  Vot=0;

        if(channel==0)channel=2;
        if(channel==1)channel=3;
        ADDI=1;
        _nop_();
        _nop_();
        ADCS=0;//拉低CS端
        _nop_();
        _nop_();
        ADCLK=1;//拉高CLK端
        _nop_();
        _nop_();
        ADCLK=0;//拉低CLK端,形成下降沿1
        _nop_();
        _nop_();
        ADCLK=1;//拉高CLK端
        ADDI=channel&0x1;
        _nop_();
        _nop_();
        ADCLK=0;//拉低CLK端,形成下降沿2
        _nop_();
        _nop_();
        ADCLK=1;//拉高CLK端
        ADDI=(channel>>1)&0x1;
        _nop_();
        _nop_();
        ADCLK=0;//拉低CLK端,形成下降沿3
        ADDI=1;//控制命令結(jié)束
        _nop_();
        _nop_();
        dat=0;
        for(i=0;i<8;i++)
        {
                dat|=ADDO;//收數(shù)據(jù)
                ADCLK=1;
                _nop_();
                _nop_();
                ADCLK=0;//形成一次時(shí)鐘脈沖
                _nop_();
                _nop_();
                dat<<=1;
                if(i==7)dat|=ADDO;
        }
        for(i=0;i<8;i++)
        {
                j=0;
                j=j|ADDO;//收數(shù)據(jù)
                ADCLK=1;
                _nop_();
                _nop_();
                ADCLK=0;//形成一次時(shí)鐘脈沖
                _nop_();
                _nop_();
                j=j<<7;
                ndat=ndat|j;
                if(i<7)ndat>>=1;
        }
        ADCS=1;//拉低CS端
        ADCLK=0;//拉低CLK端
        ADDO=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)
        dat<<=8;
        dat|=ndat;

        return(dat);            //return ad data
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:552614 發(fā)表于 2019-6-17 16:00 | 只看該作者
這應(yīng)該是一個(gè)AD 轉(zhuǎn)換的程序,先按它的時(shí)序來(lái)拉低或拔高電平,接著讀取數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

板凳
ID:517466 發(fā)表于 2019-6-17 16:47 | 只看該作者
你這個(gè)是通過(guò)串行方式獲取AD轉(zhuǎn)換結(jié)果的吧。for循環(huán)之前的代碼好像是啟動(dòng)AD轉(zhuǎn)換。后面的是通過(guò)串行方式獲得轉(zhuǎn)換結(jié)果。
回復(fù)

使用道具 舉報(bào)

地板
ID:452821 發(fā)表于 2019-6-17 20:38 | 只看該作者
這就是ADC0832對(duì)單片機(jī)的一種串行通訊,所以作用就是通訊咯
回復(fù)

使用道具 舉報(bào)

5#
ID:487604 發(fā)表于 2019-6-17 20:43 | 只看該作者
這是ADC0832的ADC轉(zhuǎn)換程序,開始的兩個(gè)if語(yǔ)句是通道選擇,后面是按該芯片的通信時(shí)序?qū)懭肟刂浦噶詈妥x取AD轉(zhuǎn)換值
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表