A/D转换器芯片及接口电路
1.8位A/D转换器芯片ADC0809
ADC0809是CMOS单片型逐次逼近式A/D转换器,ADC0809的主要特性:
● 它是具有8路模拟量输入、8位数字量输出功能的A/D转换器。
● 转换时间为100μs。
● 模拟输入电压范围为0V~+5V,不需零点和满刻度校准。
● 低功耗,约15mW。 (1)ADC0809结构框图及引脚说明 图4.24 ADC0809的结构框图和引脚 通道选择开关
通道地址锁存和译码
逐次逼近A/D转换器
8位锁存器和三态门 (2)ADC0809的工作过程
对ADC0809的控制过程是:
① 首先确定ADDA、ADDB、ADDC三位地址,决定选择哪一路模拟信号;
② 使ALE端接受一正脉冲信号,使该路模拟信号经选择开关到达比较器的输入端;
③ 使START端接受一正脉冲信号,START的上升沿将逐次逼近寄存器复位,下降沿启动A/D转换;
④ EOC输出信号变低,指示转换正在进行。
⑤ A/D转换结束,EOC变为高电平,指示A/D转换结束。此时,数据已保存到8位三态输出锁存器中。此时CPU就可以通过使OE信号为高电平,打开ADC0809三态输出,由ADC0809输出的数字量传送到CPU。 (3)CPU读取A/D转换器数据的方法
① 查询法
优点:接口电路设计简单。
缺点:A/D转换期间独占CPU,致使CPU运行效率降低。
② 定时法:
优点:接口电路设计比查询法简单,不必读取EOC的状态。
缺点:A/D转换期间独占CPU,致使CPU运行效率降低;另外还必须知道A/D转换器的转换时间。 CPU读取A/D转换器数据的方法
③ 中断法
优点:A/D转换期间CPU可以处理其它的程序,提高CPU的运行效率。图4.25 ADC0809接口电路
缺点:接口电路复杂。 (4)ADC0809接口电路 图 4. 25 ADC0809接口电路 [例4.1]利用图4.25,采用无条件传送方式,编写一段轮流从IN0~IN7采集8路模拟信号,并把采集到的数字量存入0100H开始的8个单元内的程序。
程序如下:
MOV DI, 0100H;设置存放数据的首址
MOV BL,08H;采集8次计数器
MOV AH,00H;选0通道
AA1∶MOV AL,AH
MOV DX,ADPORT;设置ADC0809芯片地址
OUT DX,AL;使ALE、START有效,选择模拟通道,见图10.18 MOV CX, 0050H
WAIT∶LOOP WAIT;延时,等待A/D转换
IN AL,DX;使OUTPUTENABLE有效,输入数据,见图10.18
MOV[DI],AL;保存数据
INC AH;换下一个模拟通道
INC DI;修改数据区指针
DEC BL
JNZ AA1 2.12位A/D转换器AD574
AD574是美国模拟器件公司的产品,是较先进的高集成度、低价格的逐次逼近式转换器。
AD574由两片大规模集成电路构成。一片为D/A转换器AD565,另一片集成了逐次逼近寄存器SAR、转换控制电路、时钟电路、总线接口电路和高分辨比较器电路。 (1)AD574的结构框图及引脚说明 图 4. 26 AD574的结构框图
引脚信号说明如下:
12/8:数据输出方式选择信号,高电平时输出12位数据,低电平时与A0信号配合输出高8位或低4位数据。信号不能用TTL电平控制,必须直接接至+5V或数字地。
A0:转换数据长度选择控制信号。在转换状态,A0为低电平可使AD574进行12位转换,A0为高电平时可使AD574进行8位转换。在读数状态,如果为低电平,当A0为低电平时,则输出高8位数据,而A0为高电平时,则输出低4位数据;如果为高电平,则A0的状态不起作用。 (2)AD574的工作过程
AD574的工作过程分为启动转换和转换结束后读出数据两个过程。
启动转换时,首先使/CS、CE信号有效,AD574处于转换工作状态,且A0为1或为0,根据所需转换的位数确定,然后使R/C=0,启动AD574开始转换。视为选中AD574的片选信号,为启动转换的控制信号。转换结束,STS由高电平变为低电平。可通过查询法,读入STS线端的状态,判断转换是否结束。 (2)AD574的工作过程
输出数据时,首先根据输出数据的方式,即是12位并行输出,还是分两次输出,以确定是接高电平还是接低电平;然后在CE=1、/CS=0、R/C=1的条件下,确定A0的电平。若为12位并行输出,A0端输入电平信号可高可低;若分两次输出12位数据,A0=0,输出12位数据的高8位,A0=1,输出12位数据的低4位。由于AD574输出端有三态缓冲器,所以D0~D11数据输出线可直接接在CPU数据总线上。 (3)AD574接口电路
图4.27 12位AD574与8088CPU的接口电路图
启动A/D转换并采用查询方式,采集数据的程序如下:
MOV DX,278H
OUT DX,AL; 启动转换,R/C=0、CS=0、CE=1,A0=0
MOV DX,27AH; 设置三态门地址
AA1∶IN AL,DX; 读取STS状态
TEST AL,80H; 测试STS电平
JNE AA1;STS=1 等待,STS=0向下执行
MOV DX,278H
IN AL,DX; 读高8位数据,R/C=1,CS=0,CE=1,A0=1,CE=1
MOV AH,AL; 保存高8位数据
MOV DX,279H
IN AL,DX; 读低4位数据,R/C=1, CS=0,A0=1,CE=1
|