📄 Ȧ
字号:
//程序:ex6_2.c
//功能:单片机控制的巡回检测系统,使其能对8路模拟输入信号巡回检测并加以处理。
// 并依次将采样数据存放在数组ad中。查询方式实现。
#include<absacc.h> //该头文件中定义XBYTE关键字
#include<reg51.h>
#define uchar unsigned char
#define IN0 XBYTE[0xfef8] //设置AD0809的通道0地址
sbit ad_busy=P3^3; //定义EOC状态
//函数名:ad0809
//函数功能:8路通道循环检测函数
//形式参数:指针x,采样结果存放到指针x所指的地址中
//返回值:无返回值,但转换结果已经存放在指针x所指的地址中
void ad0809(uchar idata *x)
{
uchar i;
uchar xdata *ad_adr; //定义指向外部RAM的指针
ad_adr=&IN0; //通道0的地址送ad_adr
for(i=0;i<8;i++) //处理8通道
{
*ad_adr=0; //写外部I/O地址操作,启动转换,写的内容不重要,只需写操作
i=i; //延时等待EOC变低
i=i;
while(ad_busy==0); //查询等待转换结束
x[i]=*ad_adr; //读操作,输出允许信号有效,存转换结果
ad_adr++; //地址增1,指向下一通道
}
}
void main(void) //主函数
{
static uchar idata ad[10]; //static是静态变量的类型说明符,参见3.4.2节
ad0809(ad); //采样AD0809通道的值
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -