微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > PIC16F1937, AD转换程序请教

PIC16F1937, AD转换程序请教

时间:10-02 整理:3721RD 点击:
大家好,这里有个问题求助一下,希望有人帮我指点一下,先谢谢了!
我用的是PIC16F1937, 对同一个电压值AD采样的结果相差有时比较大,有时相差二三十。不知是什么问题。 我把代码贴上来,大家帮我看一下:
AD初始化是:
OSCCON=0x78; //sytem clock, 16Mhz 0 1111 000
ANSELA=0x01;//0000 0001
TRISA0=1;
ADCON0=0x01;//choose the AN0, and allow the AD convert
ADCON1=0xB0;//1011 0000 right justified

AD转换程序是:(采集8次,取平均值)
void AD_Convert(void)
{
uchar i;
uint result,temph;
result=0;
for(i=0;i<8;i++)
{
GO_nDONE=1;
while(GO_nDONE);
temph=ADRESH;
result+=((temph<<8)+ADRESL);
}
press_ad=result>>3;
}

有什么想法的,尽情发言,感谢了

看看基准电压  别和VCC一样 单独供电

我就是用单片机的VDD作为基准电压来用的。 我这个不用很精密,所以按道理应该可以的

有干扰?

我没有示波器,只能用万用表测, 用万用表测电压是稳定的

你ADC电源和CPU别用一个  要不误差就大

万用表根本看不出来。模拟量消抖挺恶心。多多少少都有。如果硬件电路没有处理好的话,软件处理起来很棘手。

SHIDE

是电压波动太大倒置的,用万用表看不出来。以为电压是稳的。

谢谢,小编提供的场地。
MICROCHIP 原装正品,另有可替换单片机(无需修改PCB资料,程序可共用PIC的) 有用到的兄弟多多支持!  电话13430885511(微信同号),QQ2355910801

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top