📄 1路数据采集和发送.c
字号:
/* 从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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -