打印
[PIC®/AVR®/dsPIC®产品]

新手问个关于AD的弱弱问题求大神们帮解决

[复制链接]
1266|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lx911gt|  楼主 | 2014-5-26 09:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lx911gt 于 2014-5-26 09:22 编辑

做实验玩,AD转换,用两个通道,而且是得同时工作,选的是AN0和AN1,转换出的结果在1602上显示出来,X=个数,Y=个数,按理说拔下两个其中任何一个电位器后X或Y应该等于0的吧(参考电压我也选过了VSS,VDD),现在的问题是拔下其中一个另外一个还是能显示出来数值,并且根据一个电位器变化数值也跟着变(不知道说没说清楚,就是一个电位器拨动后XY都有数值出来,其中一个数值肯定是不对的)我知道应该是我程序的问题,

while(1)
          {                     
                ADCON0=0x01;                //选择AN0,
                asm("NOP");         //略作延时
                asm("NOP");
                asm("NOP");
                asm("NOP");
                GODONE = 1;
                while(GODONE)        continue;               
            Ydata=ADRESH;
                lcd_write_char(1,1,'Y');           
                lcd_write_char(2,1,'=');                    
            lcd_write_char(3,1,(Ydata/100)+0x30);           //百位
                lcd_write_char(4,1,(Ydata%100)/10+0x30);   //十位
                lcd_write_char(5,1,(Ydata%10)+0x30);       //个位        
                ADCON0=0x05;    //AN1
                asm("NOP");         //略作延时
                asm("NOP");
                asm("NOP");
                asm("NOP");
                GODONE = 1;
                while(GODONE)        continue;               
            Xdata=ADRESH;
                lcd_write_char(10,1,'X');           
                lcd_write_char(11,1,'=');                    
            lcd_write_char(12,1,(Xdata/100)+0x30);           //百位
                lcd_write_char(13,1,(Xdata%100)/10+0x30);   //十位
                lcd_write_char(14,1,(Xdata%10)+0x30);       //个位

          }

麻烦大神们帮帮忙,小弟想实现的是两组AD同时工作又互相不存在联系,比如拔下X,1602显示的X就应该=0,现在显示出数值了,这个地方我不是很明白,大神门教教我哈:lol
沙发
zhimagod| | 2014-5-26 12:54 | 只看该作者
你这个电路……
不清楚怎么连接的,怀疑AD引脚在你“拔下电位器后”是处于悬空状态,那肯定会出现你这种现象,解决方法是一个AD引脚接一个固定电阻到地,然后需要采集的信号串接可调电位器过来,或者原电路不变,在AD口和地之间并一个电阻,不过这样采样值就要处理一下了

使用特权

评论回复
板凳
zhimagod| | 2014-5-26 12:59 | 只看该作者
AD采样一般流程是开始->为芯片内保持电容充电->停止充电->开始逐次逼近比较->结束->等待下次转换
一路转换之后,保持电容内还是有电的,若下次采集时没有外部电路对此电容进行充放电的话那它的电压值会受上次影响是有可能的

使用特权

评论回复
地板
lx911gt|  楼主 | 2014-5-26 13:13 | 只看该作者
zhimagod 发表于 2014-5-26 12:54
你这个电路……
不清楚怎么连接的,怀疑AD引脚在你“拔下电位器后”是处于悬空状态,那肯定会出现你这种现 ...

哦这样啊,我用的是那种学习板,电位器直接接引脚上的,但是如果是悬空的话,它应该是一个固定值吧?比如我把下X电位器,理论上屏上应该显示0或者某个数值并且保持不变吧?现在的情况是拔下X电位器显示了一个值不变没有数字抖动的情况,但是拨动Y电位器的时候X位置显示的值还随着Y电位器的扭动变化..这就不对了吧?一会我接个电阻拉地试试去

使用特权

评论回复
5
yewuyi| | 2014-5-26 18:36 | 只看该作者
印象中,PIC只有少数型号才支持多通道同时AD转换,大部分都不支持,所以。。。

使用特权

评论回复
6
lx911gt|  楼主 | 2014-5-27 08:03 | 只看该作者
yewuyi 发表于 2014-5-26 18:36
印象中,PIC只有少数型号才支持多通道同时AD转换,大部分都不支持,所以。。。 ...

哦原来是这样...........

使用特权

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

本版积分规则

16

主题

62

帖子

0

粉丝