ADC0809调试程序

ADC0809调试程序,第1张

  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++;

  }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2705484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-16
下一篇 2022-08-16

发表评论

登录后才能评论

评论列表(0条)

保存