ADC0809芯片的原理及应用

更新时间:2023-11-26 11:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

引言............................................................ (1) 1 ADC0809的逻辑结构 ............................................ (1) 1.1 ADC0809引脚结构 ............................................ (1) 1.2 ADC0809的主要性能指标 ...................................... (3) 1.3 ADC0809的内部逻辑结构 ...................................... (3) 1.4 ADC0809的时序 .............................................. (4) 2 ADC0809与MCS-51单片机的接口电路 ............................. (5) 2.1 0809与51单片机的第一种连接方式 ............................ (7) 2.2 0809与51单片机的第二种连接方式 ............................ (9) 2.3 0809与51单片机的第三种连接方式 ........................... (10) 3 ADC0809与单片机制作的数字电压表 ............................. (11) 总结........................................................... (16) 参考文献....................................................... (16) 英文翻译....................................................... (17)

ADC0809芯片的原理及应用

摘要:ADC0809是8位逐次逼近型A/D转换器,是目前应用比较广泛、典型的A/D转

换芯片之一。本文主要介绍ADC0809芯片的内部逻辑结构、引脚分布,并详细阐述了其工作原理。在此基础上设计了两种相关应用电路——ADC0809与单片机的接口电路及数字电压表,并对这两种应用电路的可行性进行了讨论。通过对ADC0809应用电路的探究,能更全面的提高对应用系统的分析、设计能力,对实践具有重要的指导意义。

关键词:ADC0809;模数转换;单片机

引言

A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。 1 ADC0809的逻辑结构

ADC0809是带有8位A/D转换器、8路模拟开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,是目前应用比较广泛的A/D转换芯片之一,主要适用于对精度和采样速率要求不高的场合或一般的工业控制领域,可以和单片机直接相连。它具有8个通道的模拟量输入线,可在程序控制下对任意通道进行A/D转换得到8

位二进制数字量。 图1.1 0809引脚图 1.1 ADC0809引脚结构

ADC0809引脚图如图1.1所示。

[1]

1

ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路,即采集模拟输入电压在某一时刻的瞬时值,并在A/D转换期间保持输出电压不变,以供模数转换。[2] 各管脚功能如下:

(1)模拟信号输入IN0~IN7(26-28、1-5脚):IN0-IN7为八路模拟电压输入线,加在模拟开关上,通过A、B、C三个地址译码来选通。

(2)地址输入和控制线:地址输入和控制线共4条,其中A、B和C为地址输入线(23-25脚),用于选择IN0-IN7上哪一路模拟电压送给比较器进行A/D转换。

ALE(22脚)为地址锁存允许输入线,高电平有效。当ALE线为高电平时,A、B和C三条地址线上地址信号得以锁存,经译码器控制八路模拟开关通路工作,上升沿有效。通道选择表如下表所示。[3] C B 0 0 1 1 A 0 1 0 1 选择的通道 C IN0 IN1 IN2 IN3 1 1 1 1 B 0 0 1 1 A 0 1 0 1 选择的通道 IN4 IN5 IN6 IN7 0 0 0 0 (3)数字量输出及控制线共11条:

START(6脚)为“启动脉冲”输入线,上升沿清零,下降沿启动ADC0809工作,最小脉冲宽度与ALE信号相同。

EOC(7脚)为转换结束输出线,该线高电平表示A/D转换已结束,数字量已锁入“三态输出锁存器”,常用来作为中断请求信号。

D0-D7(17、14、15、18-20脚)为数字量输出线,D7为最高位,D0为最低位。

OE为“输出允许”线,高电平有效。ADC0809接到此信号时,其三态输出端与CPU数据总线接通,后者可将数据取走。

(4)电源线及其它共5条:CLOCK(10脚)为时钟输入线,用于为ADC0809提供逐次比较所需,一般为640kHz时钟脉冲。

2

VCC(11脚)为电源输入线,典型的输入电压为+5V。 GND(13脚)为地线。

VREF?和VREF? (12、16脚)为参考电压输入线,用于给电阻网络供给标准电

压。VREF?常接+5V,VREF?常接地或-5V。两个参考电压的选择必须满足以下条件:

0?VREF??VREF??VCC

VREF??VREF?2?12VCC

从输入的模拟电压UIN转换成数字量的公式为

N?UIN?VREFVREF????VREF?2

8例如VREF?=+5V,VREF?=0V,UIN转换成数字量的公式为

N?UIN?VREF?2

8输入的模拟电压为UIN=2.5V,则N=128=80H。[1] 1.2 ADC0809的主要性能指标

分辨率:8位。

模拟量电压输入范围:0-5V。

线性误差:±1LSB。其中LSB为数字输出最低位,LSB=|VREF|/256。若使用+5V电压,那么线性误差为0.019V。

外接时钟频率:10kHz到1.2MHz。一般为640kHz。 转换时间:100μs。 功耗:15mW。

1.3 ADC0809的内部逻辑结构

ADC0809的内部逻辑结构如图1.2所示,它主要由三部分组成。第一部分:模拟输入选择部分,包括一个8路模拟开关、一个地址锁存译码电路。输入的3位通道地址信号由锁存器锁存,经译码电路后控制模拟开关选择相应的模拟输入。第二部分:转换器部分,主要包括比较器,8位A/D转换器,逐次逼近

[4]

3

寄存器SAR,电阻网络以及控制逻辑电路等。第三部分:输出部分,包括一个8位三态输出缓冲器,可直接与CPU数据总线接口。

[1]

图1.2 ADC0809内部逻辑结构图

由于芯片性能特点是一个逐次逼近型的A/D 转换器,外部供给基准电压;分辨率为8位,带有三态输出锁存器,转换结束时,可由CPU打开三态门,读出8位的转换结果;有8个模拟量的输入端,可引入8路待转换的模拟量。ADC0809的数据输出结构是内部有可控的三态缓冲器,所以它的数字量输出信号线可以与系统的数据总线直接相连。内部的三态缓冲器由OE控制,当OE为高电平时,三态缓冲器打开,将转换结果送出;当OE为低电平时,三态缓冲器处于阻断状态,内部数据对外部的数据总线没有影响。因此,在实际应用中,如果转换结束,要读取转换结果则只要在OE引脚上加一个正脉冲,ADC0809就会将转换结果送到数据总线上。 1.4 ADC0809的时序

[2]

ADC0809的时序图如图1.3所示。从时序图可以看出ADC0809的启动信号START是脉冲信号,也即此芯片是靠脉冲启动的。当模拟量送至某一通道后,由三位地址信号译码选择,地址信号由地址锁存允许信号ALE锁存。启动脉冲START到来后,ADC0809就开始进行转换。启动正脉冲的宽度应大于200ns,其上升沿复位逐次逼近SAR,其下降沿才正真开始转换。START在上升沿后2us在加上8个时钟周期的时间,EOC才变为低电平。当转换完成后,输出转换信号

4

EOC由低电平变为高电平有效信号。输出允许信号OE打开输出三态缓冲器的门,把转换结果送到数据总线上。使用时可利用EOC信号短接到OE端,也可利用EOC信号向CPU申请中断。

图1.3 ADC0809的时序图

2 ADC0809与MCS-51单片机的接口电路

ADC0809与MCS-51单片机的接口电路主要涉及两个问题:一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。在讨论此接口设计之前,应先了解单片机是如何控制ADC的问题。

由于MCS-51单片机受到引脚数目的限制数据线和低8位地址线是复用的,由P0口线兼用。为了将它们分离出来,需要在单片机外部增加地址锁存器,从而构成与一般CPU相类似的片外三总线:地址总线(AB)、数据总线(DB)、控制总线(CB),如图2.1所示。目前常用的地址锁存器芯片有:74LS373、8282、74LS573等。在实际应用中,先把低8位的地址送锁存器暂存,地址锁存器的输出给系统提供低8位的地址,而把P0口作为数据线使用。以P2口的口线作为高位地址线,如使用P2口的全部8位口线,在加上P0口提供的低8位地址,便形成了完整的16位地址总线,使单片机系统的寻址范围达到64KB。[3]

5

图2.1 MCS-51扩展的三总线

在扩展系统中还需要一些控制信号线,以构成扩展系统的控制总线。这些信号有的是引脚的第一功能,有的是P3口的第二功能信号,主要包括:使用ALE信号作为低8位地址的锁存控制信号;以EA信号作为内外程序存储器的选择控制信号,EA?1时,访问片内程序存储器,EA?0时,访问片外程序存储器;由RD和WR信号作为扩展数据存储器和I/O的读选通和写选通信号;以

PSEN信号作为扩展程序存储器的读选通信号用来接外扩EPROM的OE引脚。

总的来说,单片机控制ADC0809的工作过程是:首先用指令选择0809的一个模拟输入通道,当执行MOVX @DPTR,A时,单片机的WR信号有效,因此产生一个启动信号,给START引脚送入脉冲,开始对已选中的通道进行转换。这就是前面所说的第一个问题:8路模拟通道的选择问题。

转换结束后,0809发出转换结束EOC信号,即通过检查EOC引脚的电平即可,高电平时转换结束。此信号供单片机查询,也可以反向后作为向单片机发出的中断请求信号。当在执行MOVX A,@DPTR时,单片机发出读控制信号RD,OE端为高电平,允许输出,把转换完的数字量读到累加器A中。

A/D转换后得到的数据应及时传送给单片机进行处理。由上述可知,单片机控制ADC时,可采用查询和中断控制两种方式。查询方式时,A/D转换芯片有表明转换完成的状态信号,即0809的EOC端。启动A/D转换后,执行别的程序,同时对EOC引脚的状态进行查询,以检查转换是否完成,若查询到变换已经完成就接着进行数据传送。中断方式是在启动信号送到ADC后,单片机执行

6

别的程序。0809转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据。此方式效率高,特别适合于变换时间较长的ADC。[3]

还可采用定时传送方式进行数据的传送。因为对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机的64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以RD信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收。这里需要说明的是,ADC0809的三个地址端A、B、C可如前所述与地址线相连,也可与数据线相连,例如与D0~D2相连。这时启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:

MOV DPTR, #FE00H ;送入0809的口地址 MOV A ,#07H ;D2D1D0=111选择IN7通道 MOVX @DPTR, A ;启动A/D转换[5]

模数转换器定位为单片机的外部RAM单元,因此与单片机的连接就有很多种。大体上说ADC0809在整个单片机系统中是作为外部RAM的一个单元定位的。具体到某一个连接方式,定位又有区别。0809与单片机典型的连接有以下三种: 2.1 0809与51单片机的第一种连接方式

这是数据线对数据线、地址线对地址线的标准连接方式,如图2.2所示。由于ADC0809片内没有时钟,可利用单片机提供的地址锁存信号ALE经D触发器2分频后获得,ALE引脚的频率是单片机时钟频率的1/6,如果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,再经过2分频后为500kHz,恰好符合0809对时钟的要求。[3]

7

图2.2

由于ADC0809具有输出三态锁存器,其8位数据输出引脚可直接与数据总线连接。地址译码引脚C、B、A分别与地址总线的低3位A2、A1、A0相连,以选通INO-IN7中的一个通路。P2.7(地址线A15)作为片选信号端,在启动A/D转换时,由单片机的写信号WR和P2.7引脚信号控制ADC的地址锁存和转换启动,由于ALE信号与START信号接在一起,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。图2.3是有关信号的时间配合示意图。

图2.3信号的时间配合

在读取转换结果时,用低电平的读信号RD和P2.7引脚经1级或非门后,产生的正脉冲作为OE信号,用以打开输出三态锁存器。ADC0809的转换结果寄存器在概念上定位为单片机外部RAM单元的一个只读寄存器,与通道号无关。因此读取转换结果时不必关心DPTR 中的通道号如何。 编程概要:

MOV DPTR , # 7FF8H; DPTR 指向0809 通道0

8

MOVX @DPTR ,A ;端口地址送DPTR,P2.7=0,锁定通道0 并启动转换 --------

MOVX A , @DPTR ;读取转换结果

此方式下单片机采用的是查询方式来控制ADC。还可以采用中断方式的接口电路,只要把图2.2中的EOC引脚经过一非门接到单片机的INT1引脚上即可。采用中断方式可大大节省CPU的时间,当转换结束,EOC发出一个信号向单片机提出中断请求,单片机响应中断请求,由外部中断1的中断服务程序读A/D转换结果,并启动ADC0809的下一次转换,外部中断1采用跳沿触发方式。 程序如下:

INT1: SETB INT1 ;外部中断1初始化编程 SETB EA ;CPU开中断

SETB EX1 ;选择外中断为跳沿触发方式 MOV DPTR, #7FF8H ;端口地址送DPTR MOV A, #00H

MOVX @DPTR, A ;启动0809对IN0通道转换 ? ;完成其他工作 中断服务程序:

PINT1:MOV DPTR, #7FF8H ;读取A/D结果送内部RAM单元30H MOVX A, @DPTR MOV 30H, A

MOV A, #00H ;启动对IN0的转换 MOVX @DPTR,A RETI

2.2 0809与51单片机的第二种连接方式[6]

ADC0809的数据线有一特点:只能出不能进。通常芯片的地址线只能进不能出。因此可以在把51单片机的8 位数据线接到ADC0809的8位数据线的同时,又把其中的3位直接接到ADC0809的3根地址线以确定通道号。如图2.4所示。通常把51单片机的8位数据线中的低3位D2、D1、D0直接接到ADC0809的3根地址线A2、A1、A0以确定通道号。采用这种连接方式明显可以省去一片74LS373。

9

本文来源:https://www.bwwdw.com/article/68nt.html

Top