你的位置: 首页 > 机械维修 > 机电一体化

计算机A/D转换器与系统的连接及举例

2016-10-25 13:12:22 | 人围观 | 评论:

1.输入模拟电压的连接
A/D转换器的输入模拟电压可以是单端输入也可以是双端输入。如单通道8位A/D转换器ADC0804的两个输入端为VIN(-)、VIN(+),如果用单端输入的正向信号,则把VIN(-)接地,信号加到VIN(+)端;如果用单端输入的负向信号,则把VIN(+)接地,信号加到VIN(-)端;如果用双端输入,则模拟信号加在VIN(-)端和VIN(+)端之间。
ADC0808/0809可以从IN0~IN7接8路模拟电压输入,通常接成单端、单极性输入,这时UREF(+)=5V、UREF(-)=0V,也可以接成双极性输入,这时UREF(+)和UREF(-)应分别接+、-极性的参考电压。AD574是单端输入模拟电压,在10VIN和20VIN中任一端和AGND之间,可输入单极性电压或双极性电压,输入模拟电压的极性不同,其输入电路也不同(可参阅图5-54、图5-55)。
2.数据输出和系统总线的连接
A/D转换器的数据输出有两种方式。一种是A/D芯片内部带有三态输出门,其数据输出线可以直接挂到系统数据总线上去。另一种是A/D芯片内部不带三态输出门,或虽有三态输出门,但它不受外部信号控制,而是当转换结束时自动开门,如AD570就是这种芯片。
3.A/D转换启动信号
A/D转换器是由CPU发出启动转换信号的。启动信号有电平启动和脉冲启动两种方式。如AD570、AD571、AD572等要求用电平启动信号,在整个A/D转换期间,启动电平信号不能撤消。CPU一般要通过并行接口输出端或用D触发器发出和保持有效的电平启动信号。ADC0804、ADC0808/0809和AD574都要求用脉冲启动信号。通过读/写信号或程序控制得到足够宽度的脉冲信号。
4.转换结束信号及转换数据的读取
A/D转换结束时,A/D转换芯片输出转换结束信号。转换结束信号也有两种:电平信号和脉冲信号。CPU检测到转换结束信号后,即可读取转换后的数据。CPU一般可以采用以下3种方式和A/D转换器进行联络来实现对转换数据的读取:
(1)程序查询方式
(2)中断方式
(3)固定的延迟程序方式
可画出ADC0808/0809和8086CPU的连接原理图如图1所示。
图1 ADC0808/0809与8086CPU的连接原理图
由于ADC0808/0809的数据输出带三态输出门,故可直接接到CPU数据总线上。按图5-56所示接线,74LS138译码出的地址范围正好是78H~7FH。低3位地址线A2~A0分别直接接到ADC0808/0809的采样地址输入端C、B、A上,用于选通8路输入通路中的其中一路。那么用一条输出指令即可启动某一通路开始转换(使ADC0808/0809的START端和ALE端得到一个启动正脉冲信号):
CONTV1:MOVAL,00H;可以是不为00H的其他数字
OUT78H,AL;选通IN0通路并开始转换
…CONTV7:MOVAL,00H;
OUT7FH,AL;选通IN7通路并开始转换
转换结束,ADC0808/0809从EOC端发出一个正脉冲信号,通过中断控制器8259A向CPU发出中断请求,CPU响应中断后,转去执行中断服务程序。在中断服务程序中,执行一条输入指令,即可读取转换后的数据。
例 AD574与8031的连接。
图2为AD574与8031单片机的接口电路。
图2 AD574与8031的接口电路
利用该接口电路完成一次A/D转换,并把转换结果的高8位放入R2中,低8位放入R3中的
工作程序如下:
MAIN:MOVR0,#7CH;选择AD574,并令A0=0
MOVX@R0,A;启动A/D转换,全12位
LOOP:NOP
JBP3.2,LOOP;查询转换是否结束
MOVXA,@R0;读取高8位
MOVR2,A;存入R2中
MOVR0,#7DH;令A0=1
MOVXA,@R0;读取低4位,尾随4个0
MOVR3,A;存入R3中
例 位A/D转换器AD574与外部的连接。
图3是AD574与外部的连接电路。
图3 AD574与外部的连接电路
设转换结束信号STS接8255A的PA,8255A初始化设定为A口输入。用查询法启动和
读取AD574的转换数据的接口程序如下:
OUTADPORT,AL;
启动A/D按12位转换,ADPORT是AD574的一个偶地址
WAIT1:INAL,PA;
读取转换结束信号,PA是8255A的A端口地址
MOVCL,03;
RCRAL,CL;右移三次
JCWAIT1;如为高电平,则等待
INAL,ADPORT;读取转换后的高8位数据
MOVAH,AL;高8位数据传送到AH
INAL,ADPORT+1;
读取转换后的低4位数据(后跟4个0)




标签: