1路数据采集和发送.c

来自「单片机实验」· C语言 代码 · 共 46 行

C
46
字号
/* 从ADC0809的8个通道轮流采集一次数据,采集的结果放在数组ad中.其程序如下: */
#include<absacc.h>
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define IN0 XBYTE[0x7ff8] //设置ADC0809的通道0地址
sbit ad_busy=P3^2;//EOC状态 



void ad0809(uchar idata *x)
{uchar i;
 uchar xdata *ad_adr;
 ad_adr=&IN0;
 for(i=0;i<8;i++)//处理8个通道
  {
   *ad_adr=0;//启动转换
   i=i;//延时等待EOC变低
   i=i;
   while(ad_busy==1);//查询等待是否结束
   x[i]=*ad_adr;//存转换结果
   ad_adr++;//下一个通道
   }
}


void main(void)
{uchar i;
 uint j;
 static uchar idata ad[10];
 ad0809(ad);//采样ADC0809通道的值
 TMOD=0x20;
 TL1=0xfd;TH1=0xfd;//串口初始化,设置波特率9600Kb
 SCON=0xd8;PCON=0x00;//串行工作方式3,无奇偶校验位,1位停止位
 TR1=1;
 for(i=0;i<8;i++)
 {SBUF=ad[i];
  while(TI==0);
  TI=0;
  for(j=0;j<30000;j++);
 }
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?