ADC0809调试程序

AC-DC/DC-DC转换

118人已加入

描述

  A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。

  目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。

  ADC0809调试程序

  #include

  #include

  #include

  #define uchar unsigned char

  #define uint unsigned int

  #define ADC0809 XBYTE[0x0B000] //P2.6选通

  float sum=0,fjg;

  uint i,j,*q,*p,sd=5;

  sbit p1_0=P1^0;

  void wait(uint n);

  void main(void)

  { j=0;

  TMOD=0X01;//设置定时器0

  TH0=0XFC;//定时时间设为1ms

  TL0=0X18;

  EA=0;//先关中断

  EA=1;//开总中断

  ET0=1;

  //TR0=1;

  for(; ;)

  {

  if(j=20){

  do{}while(!TF0);

  q=0x30;

  for(i=0;i《20;i++) //转化后的数值求均方根

  {sum=sum+(*q)*(*q);

  q++;

  }

  sum=sum/20;

  fjg=sqrt(sum);

  if(fjg》sd) //判断是否跳闸

  p1_0=1;

  j=0;

  }}

  }

  void power(void)

  { uchar x;

  for(;;)

  {ADC0809=0x01;

  wait(1000);

  x=ADC0809;

  P2=x;

  }

  }

  void wait(uint n)

  { uint i,j;

  for(i=0;i

  for(j=0;j《100;j++);

  }

  timer0()interrupt 1 using 1

  {*p=ADC0809;

  p++;

  TH0=0XFC;

  TL0=0X18;

  TR0=1;

  j++;

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分