两个模拟信号差超限时报警
一、 任务
利用0809采集两路模拟电压,当两电压值相差超过1V时,蓝色LED亮,此时若低通道号的电压值大,红色LED亮;若高通道号的电压值大,则黄色LED亮。(硬件电路参见AD_CH2_2.DSN)。
二、 设计参考:
① 算法:依次采集两路模拟电压,并将其保存。当所有通道都采集完后,计算两通道采样值的差(低通道号采样值减高通道号采样值)。若差值小于-51,则蓝色和黄色LED亮;若差值大于51,则蓝色和红色LED亮;其余,所有LED熄灭。注:通道IN0~IN7的编号分别为0~7。
② LED显示:
输出 LED显示
0 亮
1 灭
③ 地址分配:
0809片选地址 3C00H
通道地址 片选地址+通道编号
直接代码
#include <reg51.h>
//宏定义
#define AD_Convert(i) (*((unsigned char volatile xdata *) (0x3C00 + i)) = 0) // 启动AD转换
#define AD_