本帖最后由 hmg6681 于 2012-6-16 15:37 编辑
程序:
uint vAD_get()
{
uint ADval;
uint ADvalf;
asm("clrwdt");
C1ON=0;
TRISA2=1; //定义RA0、RA2为输入
ANS2=1; //定义RA0、RA2为模拟输入口
ADRESL=0;
ADRESH=0;
ADCON1=0x40; //选择AD采样频率Fosc/4
ADCON0=0x89; //右对齐、参考电压=VDD、模拟通道AN2、使能AD采样
delay(20,12); //延时210us
GO=1; //启动AD
while(GO); //等待ADGO位0,表示转换已经完成
/////////ADRESH=ADRESH;
//////////ADRESL=ADRESL;
ADval=ADRESH; //读出高两位
ADval=(ADval<<8)|ADRESL; //把高两位和低八位合成一个数据
ADvalf=(ADval/1023)*5*11; //转化为实际值
ADval=ADvalf*1000; //取三位小数,电压单位由V变为mV
return(ADval);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
哦,谢谢
一周热门 更多>