打印

PIC16F877A多路采集会相互干扰

[复制链接]
1667|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 xurenhui 于 2013-8-26 16:53 编辑

                ADON=0;
                ADCON0=0x44;ADCON1=0x00;
                ADON=1;
                while(ADGO);
                Batter.adc_value = (ADRESH<<2)+(ADRESL>>6);
                ADON=0;
                adc_process(&Batter);
                Volt=Batter.adc_average;//显示值
               
                //下一个通道
                ADON=0;
                ADCON0=0x6C;ADCON1=0x00;
                ADON=1;
                while(ADGO);
                Power.adc_value = (ADRESH<<2)+(ADRESL>>6);
                ADON=0;
                adc_process(&Power);        
               
                //下一个通道
                ADON=0;
                ADCON0=0x7c;ADCON1=0x00;
                ADON=1;
                while(ADGO);
                Led.adc_value = (ADRESH<<2)+(ADRESL>>6);
                ADON=0;
                adc_process(&Led);        
我使用的是PIC16F877A芯片,程序写进去转换不了,这样写对吗,
有的时候再调试RA0端口AD的数值时,会改变RE0端口AD的数值



QQ截图20130826165100.png (19.4 KB )

QQ截图20130826165100.png
沙发
726593100| | 2013-8-26 21:15 | 只看该作者
切换通道的时候要延时一段时间

使用特权

评论回复
板凳
opal11| | 2013-8-26 21:57 | 只看该作者
打开ADC电源没有延时

使用特权

评论回复
地板
726593100| | 2013-8-26 21:59 | 只看该作者
还有,我怀疑你的移位有问题

使用特权

评论回复
5
xurenhui|  楼主 | 2013-8-26 22:04 | 只看该作者
本帖最后由 xurenhui 于 2013-8-26 22:06 编辑

打开AD要延时多久啊,为什么一定要延时啊,
我是直接赋值,没有移位,

有没有典型的参考程序啊,非常谢谢你们的指点

使用特权

评论回复
6
726593100| | 2013-8-27 21:02 | 只看该作者
延时让采样电路稳定,具体延时时间可以参考芯片手册,当然,不参考的话,延时几十us也差不多了

使用特权

评论回复
7
xurenhui|  楼主 | 2013-8-27 22:21 | 只看该作者
非常谢谢,同仁们,我现在延时了5Ms,就可以了,

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝