请教:PIC18F4520的AN0口电压采集问题
本帖最后由 fangjikun 于 2013-2-26 16:22 编辑请教:
8路温度传感器的电压(热敏电阻测温,10K热敏电阻上拉,再接个10K电阻到地)经过HCF4051后接到PIC18F4520的19脚AN0口,但采集结果为零,万用表量AN0口确实为0伏。再往前量4051的8个输入端电压在2点几伏,说明测温部分来的电压也差不多对。(4051的6脚INH接地,7脚VEE接地 9、10、11脚选择端是否上拉不影响这个奇怪的现象)
问题来了:将4051的随便那一路输入和输出端3脚短接,原来的2点几伏就降为0.4伏左右,将输出端3脚和5V电源短接,输出端为电源电压,PIC18F4520的AN0口输入有什么要求吗? 补充:不同的电压加到AN0脚,采集结果有变化 确认AN0设为模拟输入了吗?即ADCON1设置正确了吗? caochunhua 发表于 2013-2-26 16:39 static/image/common/back.gif
确认AN0设为模拟输入了吗?即ADCON1设置正确了吗?
ADCON1=0b00001110;//AN0即19为模拟,参考电压VCC\VSS
#define ADC_CASE_A LATC1//RC1//数模转换选择信号A
#define ADC_CASE_B LATC2//RC2//数模转换选择信号B
#define ADC_CASE_C LATD0//RD0//数模转换选择信号C
ADCON1=0b00001110;//AN0即19为模拟,参考电压VCC\VSS
ADCON0=0b00000001;//选择采集通道AN0,GODONE暂为0,ADON=1:启动AD模块
ADCON2=0b10010001;//结果右对齐,采样时间4TAD,时钟FOSC/2
//HV_A
ADC_CASE_A=1;
ADC_CASE_B=1;
ADC_CASE_C=0;// CD4051通道7
GODONE=1; //启动转换
while(GODONE);//等待转换完成
HV_A=(ADRESH<<8)|ADRESL;
//HV_C
ADC_CASE_A=1;
ADC_CASE_B=1;
ADC_CASE_C=0;// CD4051通道6
GODONE=1; //启动转换
while(GODONE);//等待转换完成
HV_C=(ADRESH<<8)|ADRESL;
//HV_B
ADC_CASE_A=1;
ADC_CASE_B=1;
ADC_CASE_C=0;// CD4051通道4
GODONE=1; //启动转换
while(GODONE);//等待转换完成
HV_B=(ADRESH<<8)|ADRESL;
.。。。。。。。。 问题已经找到,单片机初始化时19脚IO口设置为输入(原来搞成输出了)、再ADCON1=0b00001110;//AN0设置为19为模拟,即可
页:
[1]