标题:
实验C8051F410的ADC,使用串口输出电压值,但是输出与实际的误差随实际电压增大而增大
[打印本页]
作者:
迷茫的落叶
时间:
2020-12-26 14:09
标题:
实验C8051F410的ADC,使用串口输出电压值,但是输出与实际的误差随实际电压增大而增大
实验C8051F410的ADC,使用串口输出电压值,但是输出与实际的误差随实际电压增大而增大,达到参考电压时串口发送出去的值与实际电压相差0.3V;
相关程序:
*******************************************
void ADC0_ISR (void) interrupt 10
{
static unsigned long accumulator = 0; // accumulator for averaging
static unsigned int measurements = 2048; // measurement counter
unsigned long result=0;
unsigned long mV; // measured voltage in mV
static unsigned int RH;
AD0INT = 0; // clear ADC0 conv. complete flag
accumulator += ADC0;
measurements--;
m=1;
if(measurements == 0)
{
measurements = 2048;
result = accumulator / 2048;
accumulator=0;
mV = result * 220 / 4095;
RI0=0;
TI0=0;
SBUF0=mV;
}
}
void UART0_Interrupt (void) interrupt 4
{
Delay_ms (2);
if (TI0==!0)
{
TI0=0;
}
else if(RI0==!0)
{
RI0=0;
}
}
********************************************
主程序是死循环;参考电压是2.2V,因为串口输出只能显示16位二进制,最大255,所以在计算时乘的220而不是2200。有没有大佬帮忙看一下?
作者:
迷茫的落叶
时间:
2020-12-28 12:05
测量了一下实际参考电压是2.17V,但是发现ADC输入端有2.44V的初始电压,会将我接上去的电压拉高,比如我接0.3V的电压进去会给我拉到0.6V,但是我最后电脑收到数据是0.5V,尝试把输入口写0,但是这样电压就输不进去了。有没有什么好的解决方法?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1