微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > ad0804 采样程序 交流有效值

ad0804 采样程序 交流有效值

时间:10-02 整理:3721RD 点击:
       现在的问题是
     1:采集到的数据总是在变化。
     2.因为0804  只能采集0-5v之内的数,本人用直流2.5v将交流信号 保证在0-5v之内,是不是等我求出来的数据得减去2.5
     下面是程序,你们帮忙看看。
1  定时器函数
        void start_T0()
{
   TMOD=0x01;//用定时器0;
  TH0=0xfb; //定时1250us
TL0=0x1e;
TR0=1;//启动定时器0
  EA=1; //打开中断
ET0=1; //打开定时器0中断
}
2    中断函数
void ck_t0() interrupt 1
{
      ET0=0;//关闭中断
  TR0=0;//启动定时器0
  AD_init0804(); //采样 存到a里
  while(adint==0);
  ad[ck]=(a-128);//存入数组,减去128是用直流抬的电压,保证交流信号在0-5v之内,
   TR0=1;//启动定时器0
  ck++;
   if(ck==16)
   {   ET0=0;
  
  flag=1;
  
  
  }
     TH0=0xfb; //定时1250us
TL0=0x1e;  
  ET0=1;
}
算法
for(u=0;u<16;u++)
{  
   jieguo=ad*ad;
   
   
}
  for(i=1;i<16;i++)
{
   jieguo1+=jieguo;
  
   
}

jieguo2=jieguo1/15;
jieguo2=sqrt(jieguo2);
  
jieguo2=jieguo2;
m=jieguo2/100;
n=jieguo2%100;
k=n/10;
l=n%10;

v_char(shuzi+m*16,1,0,0x40,0xbe) ; //百位
v_char(shuzi+k*16,1,0,0x48,0xbe) ;   //十位
// v_char(dian,1,0,0x50,0xbe) ;
v_char(shuzi+l*16,1,0,0x50,0xbe) ;   //个位

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top