1,请教大家关于AD采样频率的问题

这个和您的计数方式还有关系,在连续增计数模式下是正确的。

请教大家关于AD采样频率的问题

2,adc0832ccn时钟频率问题

这个问题有歧义,这里的 单片机时钟 是指单片机自己的工作时钟呢还是单片机提供给adc0832d工作的时钟?如果adc0832的工作时钟改变,则会影响adc的转换时间(速率),如果单片机的工作时钟改变,却不影响adc0832的时钟,那就是没有影响
最低10KHZ,最高400KHZ,你看的250是在转换时间32us下的

adc0832ccn时钟频率问题

3,dis2ad0832data51 dis3adc0832data51

你的adc可能是8位的,基准电压为5v,假如你输入电压为1v那么adc采样得到的数为: 1/5x(2e8),约为51。dis[2]=ad0832_data/51; // 这是求电压的整数位dis[3]=adc0832_data%51; //这是求余暂存 后面可能还有:dis[3]=dis[3]*10; //计算小数第一位dis[1]=dis[3]/51; //同上……当然在求得各位之后还需要转换为可显示的ACSII码。我也是刚学,加油!!!
l再看看别人怎么说的。

dis2ad0832data51 dis3adc0832data51

4,ADC采样数目 采样频率

采样频率就是你说的那样,即ADC的时钟频率;外来一个信号,每秒钟ADC可以采1M个sample,之后对每个采到的sample进行模拟值向数字值的转换。 没有听说过“采样数目”这个说法,但是从8这个数字我估计是指转换位数(或者说是转换精度)。转换位数,例如8bit的ADC,就是指前面经过采样,得到了一个sample后,把这个sample转换为数字量,这个数字量是8位的。可以想象,数字位有8bit相当于把最大可以采到的模拟量划分为2的8次方个区域,转换时的数字量就对应其中的一个区域,显然这个位数越高,转换就越精确。常见的ADC的转换位数为8~14bit

5,adc0832的分辨率为什么能满足系统要求

为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。商用级芯片温宽为0°C to +70°C,工业级芯片温宽为?40°C to +85°C;芯片接口说明:· CS_片选使能,低电平芯片使能。· CH0 模拟输入通道0,或作为IN+/-使用。· CH1 模拟输入通道1,或作为IN+/-使用。· GND 芯片参考0 电位(地)。· DI 数据信号输入,选择通道控制。· DO 数据信号输出,转换数据输出。· CLK 芯片时钟输入。· Vcc/REF 电源输入及参考电压输入(复用)。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。
adc0832的分辨率固定为8位,不可以设置。至于采样频率,只要低于器件的最高采样频率,完全受控于外部电路。当工作频率为250khz,adc0832的转换时间为32μs,最高采样频率为31.25khz。

6,adc0832的clk口的时钟频率是多少

u16 Adc0832() //ADC0832的设定时钟频率250KHZu8 i;u8 value1,value2;ADDI=1;ADCS=0;//_nop_();_nop_();ADCLK=0;//_nop_();_nop_();ADCLK=1;//_nop_();_nop_();ADDI=1;//_nop_();_nop_();ADCLK=0;_nop_();// _nop_();ADCLK=1;//_nop_();_nop_();ADDI=1;//ADDI可能为1// _nop_();_nop_();ADCLK=0;_nop_();// _nop_();ADCLK=1;//_nop_();_nop_();ADCLK=0;// _nop_();_nop_();//空操作ADDI=1;//把数据线拉高,为下次读数据做准备//线与//释放总线for(i=0;i<8;i++)value1<<=1;ADCLK=1;// _nop_();_nop_();ADCLK=0;// _nop_();_nop_();value1|=ADDO;//收数据}for(i=0;i<8;i++)if(ADDO)value2|=0x01<ADCLK=1; //_nop_(); _nop_(); ADCLK=0; //_nop_(); _nop_(); } ADCS=1; ADCLK=0;//拉低CLK端 ADDO=1; if(value1==value2) return value1; else return 0; }
adc0832的clk引脚需要单片机产生脉冲给adv0832所以程序里面就可以做了

7,新手求教关于单片机读取ADC0832数值的问题

你用这个调一下看看unsigned char A_D() uchar i; CS=1; //一个转换周期开始 CLK=0; //为第一个脉冲作准备 CS=0; //CS置0,片选有效 DIO=1; //DIO置1,规定的起始信号 CLK=1; //第一个脉冲 CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平 DIO=1; //DIO置1, 通道选择信号 CLK=1; //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 CLK=0; //第二个脉冲下降沿 DIO=0; //DI置0,选择通道0 CLK=1; //第三个脉冲 CLK=0; //第三个脉冲下降沿 DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1 CLK=1; //第四个脉冲 for(i=0;i<8;i++) //高位在前 CLK=1; //第四个脉冲 CLK=0; dat<<=1; //将下面储存的低位数据向右移 dat|=(uchar)DIO; //将输出数据DIO通过或运算储存在dat最低位 } CS=1; //片选无效 return dat; //将读出的数据返回 }
你先看一下你的控制时序吧?还有0832端口的定义,是不是改过了
adc0832能进行两路模数转换给你一段我以前设计的程序/*ad0832模数转换通过日期2006-4-25说明:clk=p3^4;d1=p3^6;cs=p3^2;晶振11.0592m*/#include<reg51.h>sbitclk=p3^4;sbitd1=p3^6;sbitd0=p3^7;sbitcs=p3^2;sfrp2=0xa0;#definevmax5voiddelay(inttimer)while(--timer);}voidpulse(void)clk=1;delay(4);clk=0;}intadc0832(void)inti;inta;delay(2);cs=0;a=0x07;//通道选择07一通道06二通道for(i=0;i<4;i++)if(!(a&0x01))d1=0;elsed1=1;a=a>>1;pulse();}a=0x00;for(i=0;i<8;i++)pulse();a=a<<1;if(d0)a=a+1;}cs=1;returna;}......直接调用adc0832()的返回值即可希望对你能有帮助ok
adc0832能进行两路模数转换给你一段我以前设计的程序/*ad0832模数转换通过日期2006-4-25说明:clk=p3^4;d1=p3^6;cs=p3^2;晶振11.0592m*/#include<reg51.h>sbitclk=p3^4;sbitd1=p3^6;sbitd0=p3^7;sbitcs=p3^2;sfrp2=0xa0;#definevmax5voiddelay(inttimer)while(--timer);}voidpulse(void)clk=1;delay(4);clk=0;}intadc0832(void)inti;inta;delay(2);cs=0;a=0x07;//通道选择07一通道06二通道for(i=0;i<4;i++)if(!(a&0x01))d1=0;elsed1=1;a=a>>1;pulse();}a=0x00;for(i=0;i<8;i++)pulse();a=a<<1;if(d0)a=a+1;}cs=1;returna;}......直接调用adc0832()的返回值即可希望对你能有帮助ok
这好似I2C的程序把?

文章TAG:ad0832采样频率是多少采样  采样频率  频率  
下一篇