標題: 為什么單片機+ADC0832轉換后的數(shù)據(jù)在led顯示屏上一直是255 [打印本頁]

作者: zyx981002    時間: 2020-5-17 16:20
標題: 為什么單片機+ADC0832轉換后的數(shù)據(jù)在led顯示屏上一直是255
附上寫的ADC代碼,和仿真、實物的照片,實物是連接了mq傳感器,仿真用滑動變阻器代替沒有問題

sbit ADCS         =P1^5; //ADC0832 片選
sbit ADCLK  =P1^2; //ADC0832 時鐘
sbit ADDI         =P1^3; //ADC0832 數(shù)據(jù)輸入        
sbit ADDO         =P1^4; //ADC0832 數(shù)據(jù)輸出        
unsigned int ADc0832(unsigned char channel)
{
        uchar i=0;
        uchar j;
        unit 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;//控制命令結束
        _nop_();
        _nop_();
        dat=0;
        for(i=0;i<8;i++)
        {
                dat|=ADDO;//收數(shù)據(jù)
                ADCLK=1;
                _nop_();
                _nop_();
                ADCLK=0;//形成一次時鐘脈沖
                _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;//形成一次時鐘脈沖
                _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
}



E792D0DB0F541CDFB405D132F4216D91.jpg (96.38 KB, 下載次數(shù): 81)

E792D0DB0F541CDFB405D132F4216D91.jpg

`(WGBMQNGVAGSRAOQ(D]AW4.png (44.36 KB, 下載次數(shù): 136)

`(WGBMQNGVAGSRAOQ(D]AW4.png

作者: TTQ001    時間: 2020-5-17 21:26
這表示用于顯示和讀取傳感器的代碼是正確的。 問題可能是傳感器的配置不正確,或者從傳感器讀取的數(shù)據(jù)未正確解碼。
作者: 之一知足    時間: 2020-5-18 00:25
說明你硬件電路有問題,檢查接線




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1