打印

PIC16F877单片机的A/D基准电压设置成Vref+,Vref-基准, 程序

[复制链接]
2457|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子三极管|  楼主 | 2010-7-9 08:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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+); 没这样的写法,不知道是这里的变量该怎么表示 还是程序还要换一种写法


请求高手指教。
沙发
Beatachen| | 2010-7-9 15:27 | 只看该作者
advalf=ADResult/1023.0*5.0
ADResult 不是浮点数,这里不能这样操作,
advalf=ADResult/1023.0*5.0  等价于 advalf=ADResult/205(建议使用这个),当然你算出来是没有小数点的.需要小数部分,可以使用浮点数

使用特权

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

本版积分规则

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

116

主题

530

帖子

2

粉丝