📄 ex6_3.c
字号:
//程序:ex6_3.c
//功能:单片机控制的巡回检测系统,使其能对8路模拟输入信号巡回检测并加以处理。
// 并依次将采样数据存放在数组ad中。中断方式实现。
#include<absacc.h> //绝对地址访问头文件
#include<reg51.h>
#define uchar unsigned char
#define IN0 XBYTE[0xfef8] //设置AD0809的通道0地址
uchar i; //通道选择控制
uchar x[8]; //存放8个通道的A/D转换数据
uchar xdata *ad_adr; //存放通道地址
//中断函数: service_int1
//函数功能: 外部中断1中断服务函数
//形式参数: *ad_adr为当前选定通道
//返回值: x[i]中存放转换后的结果
void service_int1(void) interrupt 2 // interrupt 2表示该函数为中断号2的中断函数
{
x[i]=*ad_adr; //存转换结果
ad_adr++; //下一通道
i++;
while(i==8) EA=0; // 8个通道转换完毕,关中断
}
void main(void) //主函数
{
IT1=1; //设置边沿触发方式
EX1=1; //外部中断1开中断
EA=1; //开总中断允许位
i=0; //初始化i为第0通道
ad_adr=&IN0; //通道0地址送ad_adr
*ad_adr=0; //写操作启动A/D转换
while(1); //等待中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -