一、A/D转换基本知识
1.A/D转换过程
A/D转换的功能是把模拟量转换为n位数字量,图5.18所示为A/D转换器的输入和输出关系图。
图5.18 A/D转换器的输入和输出关系
说明如下:
(1)输入A/D转换器的模拟量转换成离散量称为采样。经过采样后输出不连续的物理量,在图5.18中各个孤立的点表示采样结果,每个点的纵坐标代表某个时刻的模拟量,在相邻的两次采样中,A/D转换输出保持前一时刻的值,A/D转换后的输出特性是一条阶梯曲线。
(2)相邻两次采样的时间间隔称为采样周期。为了使输出量能充分反映输入量的变化情况,采样周期要根据输入量变化的快慢决定,一次A/D转换所需要的时间应该小于采样周期。
(3)采样输出的离散量转换为相应的数字量称为量化。假设输入的模拟量为0~4.99V时,经8次采样输出的离散量分别为0.00V、0.71V、1.42V、2.13V、2.84V、3.55V、4.28V和4.99V,则经量化后输出的数字量为3位二进制数,离散量与数字量的对应关系如表5.5所示。
(4)数字量最低位(最小有效位LSB,Least Significant Bit)对应的模拟电压称为一个量化单位,如果模拟电压小于此值,则不能转换为相应的数字量。LSB表示A/D转换器的分辨能力,从表5.5可知,1LSB=0.71V。
表5.5 模拟量与数字量的对应关系
为了实现输出数字信号近似于输入模拟信号的指标,必须有足够大的采样频率和转换位数。采样频率越大,采样后的信号越接近输入信号,一般选择采样频率大于5~10倍模拟信号的最高频率。A/D转换器的位数越多,转换后的数字量也越接近于模拟量。
2.A/D转换器的主要性能指标
(1)分辨率。
A/D转换器能分辨的最小模拟输入量,通常用转换数字量的位数表示,如8位、10位、12位和16位等,位数越高,分辨率越高。例如对于8位A/D转换器,当输入电压满刻度为5V时,输出数字量的变化范围为0~255,转换电路对输入模拟电压的分辨能力为5V/255=19.6mV。
(2)转换时间。
A/D转换器完成一次转换所需的时间。转换时间是软件编程时必须考虑的参数,若CPU采用无条件传送方式输入转换后的数据,则从启动A/D芯片转换开始到A/D芯片转换结束的时间称为延时等待时间,该时间由启动转换程序之后的延时程序实现,延时等待时间必须大于或等于A/D转换时间。
(3)量程。
A/D转换器所能转换的输入电压范围。
(4)量化误差。
将模拟量转换成数字量过程中引起的误差。
(5)精度。
数字输出量对应的模拟输入量的实际值与理论值之间的差值。
常用的A/D转换器按照转换输出数据方式分为串行与并行两种,并行A/D转换器按原理可分为计数式、双积分式、逐次逼近式和并行式四种,目前常用的是双积分式和逐次逼近式转换器。
双积分式A/D转换器的主要特点是转换精度高、抗干扰能力好、价格便宜,但转换速度较慢,主要应用在转换速度要求不高的场合。
逐次逼近式A/D转换器的主要特点是转换速度较快、精度较高,转换时间在几微秒到几百微秒之间。
二、8位A/D转换器ADC 0809
1.ADC0809的内部结构及引脚功能
ADC0809是一种典型的8位8通道逐次逼近式A/D转换器,其内部逻辑结构如图5.19所示。
图5.19 ADC0809内部逻辑结构框图
8路模拟量开关可选通8个模拟通道,允许8路模拟量分时输入,共用1个A/D转换器进行转换,地址锁存与译码电路完成对ADDA、ADDB和ADDC 3个地址位的锁存和译码,译码输出用于8路模拟通道的选择,三态输出锁存器用于存放和输出转换得到的数字量。
ADC0809芯片为28引脚双列直插式封装的芯片,其引脚排列如图5.20所示。(www.daowen.com)
各引脚功能如下:
IN7~IN0:模拟量输入通道。
ADDA、ADDB和ADDC:8路模拟通道地址选通输入端,地址状态与通道的对应关系见表5.6。
ALE:地址锁存允许信号。在ALE信号的上升沿将通道地址锁存至地址锁存器。
START:启动A/D转换控制信号。在START信号的上升沿,所有内部寄存器清零;在START下降沿时,开始进行A/D转换;在A/D转换期间,START保持低电平。
图5.20 ADC0809芯片引脚图
表5.6 ADC0809通道选择
D7~D0:数据输出线。三态缓冲输出形式,与单片机的数据线可以直接相连。
OE:输出允许信号。控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻态;OE=1,输出转换得到的数据。
CLOCK:时钟信号。ADC0809内部没有时钟电路,需要外接时钟信号,通常使用频率为500kHz的时钟信号。
EOC:转换结束状态信号。EOC=0,正在进行转换;EOC=1,转换结束。EOC信号可作为查询的状态标志,也可作为中断请求信号使用。
VCC:+5V电源。
GND:地。
REF+、REF-:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准,其典型值为REF+=+5V,REF-=0V。
2.ADC0809的接口电路与仿真设计
例5-2 由ADC0809和AT89C51组成的电压表,量程0~5V,模拟电压信号通过改变可变电阻的阻值来改变,从IN3通道输入,经ADC0809转换后传送至AT89C51,AT89C51控制3位共阴极数码管显示实时电压值。
(1)电路设计。
图5.21 电压表仿真电路
仿真电路如图5.21所示。ADC0809的地址译码引脚ADDA、ADDB和ADDC分别与单片机P1.4、P1.5和P1.6相连,启动信号START和地址锁存允许信号ALE同接在单片机P1.1,将ALE与START相连,执行写操作时启动ADC0809,将时钟信号CLR由定时器T0定时获得,与单片机P1.3连接,转换结束状态信号EOC与单片机P1.1连接,输出允许信号OE与单片机P1.0连接,执行读操作时将A/D转换将结果从P3口读入单片机。
(2)程序设计。
启动转换后,ADC0809采样通道3输入的模拟量并转换,单片机采用查询方式,读取EOC的状态,若EOC=1,置OE=1,则读入数字量电压值,将其转换为十进制形式在数码管上显示。
程序如下:
利用Keil集成开发环境编辑编译源程序,生成同名的Hex后缀的目标文件。
(3)仿真运行。
在Proteus ISIS中绘制如图5.21所示的电压表仿真。将生成的目标代码文件加载到图中单片机的“Program File”属性栏中,并设置时钟频率为12MHz。
单击“仿真”按钮,启动仿真。可看到电压实时显示值,如图5.22所示。若要调整输入,可用鼠标单击可变电阻的阻值按钮。
图5.22 ADC0809与单片机接口电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。