打印

PIC16单片机的A/D基准电压设置成Vref+,Vref- 程序该怎么写

[复制链接]
2466|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子三极管|  楼主 | 2010-7-8 22:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16F877单片机的A/D基准电压设置成Vref+,Vref-作为输入基准, 程序该怎么写

ADCON0=0x41;//5M以下 ANO作为模拟输入
ADCON1=0x8f;//对齐方式右对齐,AN0模拟量输入0x8e为只开通AN0其余为数字量;0x8f,RA2,RA3设置为Vref-,Vref+,开AN0.其余为数字量

unsigned int get_ad()
{ unsigned int ADResult;
float advalf;
  ADGO=1;
  while(ADGO);
  ADResult=ADRESH;//00000000 00000011        
  ADResult=ADResult<<8|ADRESL;//00000011 11111111
  advalf=ADResult/1023.0*5.0;//==2.3843 1023.0 /5.0
  ADResult=advalf*1000;
return (ADResult); //这个值是需要我显示的值

这里的5.0本来是我的设置最大显示值为5v,现在要用Vref+,Vref-作为输入基准 这里的5.0 ;advalf=ADResult/1023.0*5.0;该怎么改改成多少 应该是一个Vref+所对应的电压值就对了 advalf=ADResult/1023.0*(Vref+); 没这样的写法,不知道是这里的变量该怎么表示 还是程序还要换一种写法


请求高手指教。

相关帖子

沙发
电子三极管|  楼主 | 2010-7-9 11:07 | 只看该作者
怎么没人回帖 难道都不知道嘛 AD采集 AN0为输入模拟量 VREF+(RA3) VREF-(RA2) 做参考基准电压
advalf=ADResult/1023.0*5.0;//==2.3843 1023.0 /5.0
这里面的5.0 怎么改

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:承接采集设备运行参数,如温度、速度、压力、浓度、流量、节拍、湿度、重量等。采用PIC 51 AVR等类单片机 59467837(杭州单片机开发技术交流QQ群)

116

主题

530

帖子

2

粉丝