搜索
bottom↓
回复: 4

关于PIC10F222的AD转换问题

[复制链接]

出50入0汤圆

发表于 2016-11-5 20:40:05 | 显示全部楼层 |阅读模式
最近有个项目要用到PIC10F222这个芯片,本来以为这个料很简单的,现在确卡在AD转换这里,发出来请坛子的兄弟帮忙看看怎么回事。
功能描述,芯片采集一个模拟电压值,这个值的范围大概是0.3V-5V之间,当采集的值小于1.8V时,驱动一个电机,当大于2.8V时,关闭电机。现在通电之后模拟输入量接AN1,并且在AN1能测得有2.0V以上的电压,可是芯片采集到的电压经过换算大概只有0.6V,也就是这个芯片的内部绝对参考电压值。以下是程序:

void Initialization(void)//初始化程序
{
   OPTION = 0XC7; //时钟分频比1:256。
   TRIS    = 2;   //GP1使能模拟输入
   ANS0    = 0;        //数字输出
   ANS1    = 1;        //模拟输入   
   CHS1    = 1;        //选择1号通道
   TMR0    = 0;
}
void delay (void)//延时程序
{
  if(TMR0>=250)//64ms延时
     {
       TMR0     = 0;
       AD_FLAG  = 1;//64MS转换一次
     }
}
void AD_OPEN (void)//AD转换程序
{
   if(AD_FLAG)//AD转换标示位
     {
       AD_FLAG = 0;//清零标志位
       AD_OVER_FLAG = 1;//AD转换开启标志位
       ADON         = 1;
       GO           = 1;
     }
    if(AD_OVER_FLAG)//AD转换开启标志位
      {
       if(!GO)
          {
            AD_TEMP = ADRES;//AD转换结果保存
            AD_OVER_FLAG = 0;//AD转换开启标志位清零
            MOTO_OPEN_FLAG = 1;//电机控制标志位
          }
         
      }
}
void MOTO_OPEN (void)//电机控制程序
{
  if(MOTO_OPEN_FLAG)
   {
        MOTO_OPEN_FLAG = 0;
        if(AD_TEMP <=90)
            {
              MOTO_OUT   = 1;
            }
         if(AD_TEMP >=150)
            {
              MOTO_OUT   = 0;
            }
   }  

main()
{
Initialization();//初始化程序
while(1)
{
delay ();//延时程序
AD_OPEN ();//AD程序
MOTO_OPEN ();//电机控制程序
}
}

出0入0汤圆

发表于 2016-11-5 20:50:54 | 显示全部楼层
试试CHS0    = 0;   CHS1    = 1;        //选择1号通道

有时默认值不一定为0,如果为1,通道就错了

出50入0汤圆

 楼主| 发表于 2016-11-5 20:56:05 | 显示全部楼层
wwkkww 发表于 2016-11-5 20:50
试试CHS0    = 0;   CHS1    = 1;        //选择1号通道

有时默认值不一定为0,如果为1,通道就错了 ...

我前面已经选择了CHS1 = 1,也就是说我已经选择了1号通道。

出0入0汤圆

发表于 2016-11-5 21:03:18 | 显示全部楼层
初始化上加一句CHS0    = 0; 试试,通道是CHS0与CHS1的组合,如果CHS0上电默认=1,那你只有一个CHS1 = 1,则组合为11,选择3通道,就可能选中的是那个0.6V的通道

出50入0汤圆

 楼主| 发表于 2016-11-5 21:19:34 | 显示全部楼层
wwkkww 发表于 2016-11-5 21:03
初始化上加一句CHS0    = 0; 试试,通道是CHS0与CHS1的组合,如果CHS0上电默认=1,那你只有一个CHS1 = 1, ...

谢谢,现在好了,正确的用法应该是,CHS1 = 0,CHS0 = 1;.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-30 11:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表