单片机 数据采集 adc0832
`
proteus仿真图:
实物图:
下面是ADC程序:
uchar get_adc() //读取ADC0832数值
{
uchar i,data_adc;
data_adc=0X00;
ADC_CS=0;//片选
ADC_CLK=0;
_nop_();
ADC_CLK=1;
_nop_();
ADC_DIO=1;
_nop_();
ADC_CLK=0;
_nop_();
ADC_CLK=1;
_nop_();
ADC_DIO=1;
_nop_();
ADC_CLK=0;
_nop_();
ADC_CLK=1;
_nop_();
ADC_DIO=0;
_nop_();
ADC_CLK=0;
_nop_();
ADC_DIO=1;
_nop_();
for(i=0;i<8;i++)
{
ADC_CLK=1;
_nop_();
ADC_CLK=0;
_nop_();
data_adc=(data_adc<<1)|(ADC_DIO);
_nop_();
}
ADC_CS=1;
ADC_DIO=1;
ADC_CLK=1;
return(data_adc);
}
部分主程序
void main()
{
uchar adc_value;
float value
adc_value=get_adc();
value=adc_value*(5.0/256)*100;
count_display(value);
}
这次的设计是用于电压检测的,一个毫伏信号经过放大器OPA2277,放大至0-5V,当电压大于3V时,发出警报,proteus仿真是正常的,实际电路中很不稳定,万用表测量放大器输出0.7V,正常的,但有时候会突然变到3.75V左右(这个变化万用表检测不到,是LCD1602显示报警电压),引起误报警,不知道怎么去掉这个突变,求助!!!!
`
已退回5积分
回帖(1)
2018-11-16 09:13:22
面包板不稳定,什么原因都有的
面包板不稳定,什么原因都有的
1
举报
-
DaYuYu:
可是我焊接的也一样,就是3.75伏,应该是ADC0832输出0xc0,很奇怪,每次都这样,还避免不了。
更多回帖