打印

ADC0809交流信号采样问题

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

最近用ADC0809采样50Hz的正弦波信号(0~4V),面包板搭好电路后,信号发生器输入经过精密整流给AD采样,采样方式为定时采样(见以下C程序),均方根值计算后送串口显示。现在问题来了:直流信号时显示正常,交流输入时收到的数值不正确,而且不稳定。调了两天,还是不行。不知是AD问题,还是程序问题。MCU为51
  采样部分程序如下:
  unsigned long getdata()  
{
  uchar adval=0;
  unsigned long sum=0;
    for(i=0;i<100;i++)            //预算是一个周期采样100点
  {   P1=0xff;
       ST=0;
       ST=1;
       ST=0;           //启动AD转换
       ALE=0;  
       ALE=1;           //地址锁存
      delayms();      //这里“大概”延时189μs(用Keil看的),用作转换
                           //0809转换时间最慢 128μs,CLK外接ALE二分频后的方波
      OE=1;
      adval=P1;              //读P1口AD数据
      OE=0;
     sum=sum+adval*adval;
   
    }
     return sum;
}

………………
………………
  usigned long a;
  float t_rms  ;
a=getdata()*5/255/100;   
t_rms=sqtr(a);                   //转换为0~5V,并进行均方根算法
烦请各路大侠指点出问题啊,本人只是入门者。还有,一般这样的交流采样都采用什么AD,算法?查过论坛中的帖,有说滤波的,过零的,那么具体程序应该怎样啊?

相关帖子

沙发
gaohq| | 2012-3-1 14:55 | 只看该作者
定时从什么时间开始到什么时间结束?没看到过零中断信号啊?

使用特权

评论回复
板凳
opp1234|  楼主 | 2012-3-1 22:47 | 只看该作者
没有这一步的设计 2# gaohq

使用特权

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

本版积分规则

0

主题

17

帖子

1

粉丝