Analog-to-Digital Conversion ADC A/D转换即是将模拟量信号转换成数字量信号,读入单片机内部以便进行处理 采集信号,不可控,干扰信号影响

ADC0809

ADC0809 是 8 通道 8 位的逐次逼近式模数转换芯片,芯片工作电压为 5V;

内部由八路模拟量开关、通道地址锁存译码电路、8 位 A/D 转换器和三态数据输出锁存器组成,能够分时对 8 路模拟量信号进行转换;

每一通道能够输入的模拟量电压范围单极性为 0-5V,双极性为 每一通道的转换时间为 100us,转换精度为 8 位

转换输出具有三态数据输出锁存功能,便于各种微处理器进行接口

外部引脚图: freecompress-Pasted image 20240620125306.png

IN0 — IN7:8路模拟量开关模块输入端 可以分别连接8路单端的模拟电压信号 芯片内部只有一个8位的AD转换器,因此,输入的八路信号只能分时选通

D0 — D7 : 数据输出端 AD转换后数据输出, 可以与计算机数据线相连

通道的选择由地址锁存与译码电路实现 A B C :通道选通端 三个选通信号的不同电平组合,用于选择不同的通道

ALE :地址锁存允许信号 高电平有效 信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道

START:启动转换信号 正脉冲启动启动 AD 转换

EOC : 转换结束信号 一次AD转换结束变为高电平

OE : 输出允许信号 AD 转换结束后,数据送入三态输出锁存器,三态锁存器的输出控制端由 OE 控制 高电平打开,使得数据可以被读取

内部结构图: freecompress-Pasted image 20240620125144.png

时序图:

freecompress-Pasted image 20240604210942.png

工作控制逻辑 选道:ALE产生正脉冲,锁存ADDA、ADDB、ADDC通道选通端数据,通过内部地址译码,选通对应通道

启动:START端口输入正脉冲信号,启动AD转换

判别:AD转换启动后,EOC从高电平变成低电平,

  • 在AD转换过程中,EOC保持低电平
  • 转换结束,EOC从低变成高电平(发送数据后自动进行)

读数:向OE引脚输入正脉冲,打开三态输出锁存器,内部数据输出到D0—D7数据总线

#include<reg51.h>
#include<intrins.h>
#define ADCDATA P1   //端口定义
sbit START=P2^0;
sbit ALE=P2^0;
sbit EOC=P2^1;
sbit OE=P2^2;
unsigned int getdata;
 
void main(void)
{
	while(1)
	{
		START=1;
		_nop_(); _nop_(); _nop_();
		START =0;
		_nop_(); _nop_(); _nop_();
		While(!EOC);
		OE=1;
		getdata=ADCDATA;
	}
}
getdata=getdata*1.0/255*5000
 

j3 = x / 1000 计算x的千位数,即将x除以1000并取整数部分。

j2 = x % 1000 / 100 计算x的百位数,首先计算x除以1000的余数(即去掉千位后的数值),然后除以100取整数部分。

j1 = x % 100 / 10 计算x的十位数,首先计算去掉千位和百位后的数值,然后除以10取整数部分。

j0 = x % 10 计算x的个位数,即去掉千位、百位和十位后的余数。