1、ADC0809芯片的原理及应用ADC0809芯片的原理及应用 摘要:ADC0809是8位逐次逼近型A/D转换器,是目前应用比较广泛、典型的A/D转换芯片之一。本文主要介绍ADC0809芯片的内部逻辑结构、引脚分布,并详细阐述了其工作原理。在此基础上设计了两种相关应用电路ADC0809与单片机的接口电路及数字电压表,并对这两种应用电路的可行性进行了讨论。通过对ADC0809应用电路的探究,能更全面的提高对应用系统的分析、设计能力,对实践具有重要的指导意义。 关键词:ADC0809;模数转换;单片机引言A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换
2、为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。1 ADC0809的逻辑结构 ADC0809是带有8位A/D转换器、8路模拟开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,是目前应用比较广泛的A/D转换芯片之一,主要适用于对精度
3、和采样速率要求不高的场合或一般的工业控制领域,可以和单片机直接相连。它具有8个通道的模拟量输入线,可在程序控制下对任意通道进行A/D转换得到8位二进制数字量。1 图1.1 0809引脚图1.1 ADC0809引脚结构 ADC0809引脚图如图1.1所示。ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路,即采集模拟输入电压在某一时刻的瞬时值,并在A/D转换期间保持输出电压不变,以供模数转换。2 各管脚功能如下:(1)模拟信号输入IN0IN7(26-28、1-5脚):IN0
4、-IN7为八路模拟电压输入线,加在模拟开关上,通过A、B、C三个地址译码来选通。(2)地址输入和控制线:地址输入和控制线共4条,其中A、B和C为地址输入线(23-25脚),用于选择IN0-IN7上哪一路模拟电压送给比较器进行A/D转换。ALE(22脚)为地址锁存允许输入线,高电平有效。当ALE线为高电平时,A、B和C三条地址线上地址信号得以锁存,经译码器控制八路模拟开关通路工作,上升沿有效。通道选择表如下表所示。3CBA选择的通道CBA选择的通道000IN0100IN4001IN1101IN5010IN2110IN6011IN3111IN7(3)数字量输出及控制线共11条:START(6脚)为
5、“启动脉冲”输入线,上升沿清零,下降沿启动ADC0809工作,最小脉冲宽度与ALE信号相同。EOC(7脚)为转换结束输出线,该线高电平表示A/D转换已结束,数字量已锁入“三态输出锁存器”,常用来作为中断请求信号。D0-D7(17、14、15、18-20脚)为数字量输出线,D7为最高位,D0为最低位。OE为“输出允许”线,高电平有效。ADC0809接到此信号时,其三态输出端与CPU数据总线接通,后者可将数据取走。(4)电源线及其它共5条:CLOCK(10脚)为时钟输入线,用于为ADC0809提供逐次比较所需,一般为640kHz时钟脉冲。VCC(11脚)为电源输入线,典型的输入电压为+5V。GND
6、(13脚)为地线。和 (12、16脚)为参考电压输入线,用于给电阻网络供给标准电压。常接+5V,常接地或-5V。两个参考电压的选择必须满足以下条件:从输入的模拟电压转换成数字量的公式为例如=+5V,=0V,转换成数字量的公式为输入的模拟电压为=2.5V,则N=128=80H。11.2 ADC0809的主要性能指标分辨率:8位。模拟量电压输入范围:0-5V。线性误差:1LSB。其中LSB为数字输出最低位,LSB=|/256。若使用+5V电压,那么线性误差为0.019V。4外接时钟频率:10kHz到1.2MHz。一般为640kHz。转换时间:100s。功耗:15mW。1.3 ADC0809的内部逻
7、辑结构 ADC0809的内部逻辑结构如图1.2所示,它主要由三部分组成。第一部分:模拟输入选择部分,包括一个8路模拟开关、一个地址锁存译码电路。输入的3位通道地址信号由锁存器锁存,经译码电路后控制模拟开关选择相应的模拟输入。第二部分:转换器部分,主要包括比较器,8位A/D转换器,逐次逼近寄存器SAR,电阻网络以及控制逻辑电路等。第三部分:输出部分,包括一个8位三态输出缓冲器,可直接与CPU数据总线接口。1 图1.2 ADC0809内部逻辑结构图由于芯片性能特点是一个逐次逼近型的A/D 转换器,外部供给基准电压;分辨率为8位,带有三态输出锁存器,转换结束时,可由CPU打开三态门,读出8位的转换结
8、果;有8个模拟量的输入端,可引入8路待转换的模拟量。ADC0809的数据输出结构是内部有可控的三态缓冲器,所以它的数字量输出信号线可以与系统的数据总线直接相连。内部的三态缓冲器由OE控制,当OE为高电平时,三态缓冲器打开,将转换结果送出;当OE为低电平时,三态缓冲器处于阻断状态,内部数据对外部的数据总线没有影响。因此,在实际应用中,如果转换结束,要读取转换结果则只要在OE引脚上加一个正脉冲,ADC0809就会将转换结果送到数据总线上。1.4 ADC0809的时序2ADC0809的时序图如图1.3所示。从时序图可以看出ADC0809的启动信号START是脉冲信号,也即此芯片是靠脉冲启动的。当模拟
9、量送至某一通道后,由三位地址信号译码选择,地址信号由地址锁存允许信号ALE锁存。启动脉冲START到来后,ADC0809就开始进行转换。启动正脉冲的宽度应大于200ns,其上升沿复位逐次逼近SAR,其下降沿才正真开始转换。START在上升沿后2us在加上8个时钟周期的时间,EOC才变为低电平。当转换完成后,输出转换信号EOC由低电平变为高电平有效信号。输出允许信号OE打开输出三态缓冲器的门,把转换结果送到数据总线上。使用时可利用EOC信号短接到OE端,也可利用EOC信号向CPU申请中断。图1.3 ADC0809的时序图2 ADC0809与MCS-51单片机的接口电路ADC0809与MCS-51
10、单片机的接口电路主要涉及两个问题:一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。在讨论此接口设计之前,应先了解单片机是如何控制ADC的问题。由于MCS-51单片机受到引脚数目的限制数据线和低8位地址线是复用的,由P0口线兼用。为了将它们分离出来,需要在单片机外部增加地址锁存器,从而构成与一般CPU相类似的片外三总线:地址总线(AB)、数据总线(DB)、控制总线(CB),如图2.1所示。目前常用的地址锁存器芯片有:74LS373、8282、74LS573等。在实际应用中,先把低8位的地址送锁存器暂存,地址锁存器的输出给系统提供低8位的地址,而把P0口作为数据线使用。以P2口的口
11、线作为高位地址线,如使用P2口的全部8位口线,在加上P0口提供的低8位地址,便形成了完整的16位地址总线,使单片机系统的寻址范围达到64KB。3图2.1 MCS-51扩展的三总线在扩展系统中还需要一些控制信号线,以构成扩展系统的控制总线。这些信号有的是引脚的第一功能,有的是P3口的第二功能信号,主要包括:使用ALE信号作为低8位地址的锁存控制信号;以信号作为内外程序存储器的选择控制信号,时,访问片内程序存储器,时,访问片外程序存储器;由和信号作为扩展数据存储器和I/O的读选通和写选通信号;以信号作为扩展程序存储器的读选通信号用来接外扩EPROM的引脚。总的来说,单片机控制ADC0809的工作过
12、程是:首先用指令选择0809的一个模拟输入通道,当执行MOVX DPTR,A时,单片机的信号有效,因此产生一个启动信号,给START引脚送入脉冲,开始对已选中的通道进行转换。这就是前面所说的第一个问题:8路模拟通道的选择问题。转换结束后,0809发出转换结束EOC信号,即通过检查EOC引脚的电平即可,高电平时转换结束。此信号供单片机查询,也可以反向后作为向单片机发出的中断请求信号。当在执行MOVX A,DPTR时,单片机发出读控制信号,OE端为高电平,允许输出,把转换完的数字量读到累加器A中。 A/D转换后得到的数据应及时传送给单片机进行处理。由上述可知,单片机控制ADC时,可采用查询和中断控
13、制两种方式。查询方式时,A/D转换芯片有表明转换完成的状态信号,即0809的EOC端。启动A/D转换后,执行别的程序,同时对EOC引脚的状态进行查询,以检查转换是否完成,若查询到变换已经完成就接着进行数据传送。中断方式是在启动信号送到ADC后,单片机执行别的程序。0809转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据。此方式效率高,特别适合于变换时间较长的ADC。3 还可采用定时传送方式进行数据的传送。因为对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。ADC0809转换时间为128s,相当于6MHz的MCS-51单片机的64个机
14、器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收。这里需要说明的是,ADC0809的三个地址端A、B、C可如前所述与地址线相连,也可与数据线相连,例如与D0D2相连。这时启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:MOV DPTR, #F
15、E00H ;送入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,如
16、果单片机时钟频率采用6MHz,则ALE引脚的输出频率为1MHz,再经过2分频后为500kHz,恰好符合0809对时钟的要求。3图2.2 由于ADC0809具有输出三态锁存器,其8位数据输出引脚可直接与数据总线连接。地址译码引脚C、B、A分别与地址总线的低3位A2、A1、A0相连,以选通INO-IN7中的一个通路。P2.7(地址线A15)作为片选信号端,在启动A/D转换时,由单片机的写信号和P2.7引脚信号控制ADC的地址锁存和转换启动,由于ALE信号与START信号接在一起,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。图2.3是有关信号的时间配合示意图。图2.3信号
17、的时间配合在读取转换结果时,用低电平的读信号和P2.7引脚经1级或非门后,产生的正脉冲作为OE信号,用以打开输出三态锁存器。ADC0809的转换结果寄存器在概念上定位为单片机外部RAM单元的一个只读寄存器,与通道号无关。因此读取转换结果时不必关心DPTR 中的通道号如何。编程概要:MOV DPTR , # 7FF8H; DPTR 指向0809 通道0MOVX DPTR ,A ;端口地址送DPTR,P2.7=0,锁定通道0 并启动转换-MOVX A , DPTR ;读取转换结果此方式下单片机采用的是查询方式来控制ADC。还可以采用中断方式的接口电路,只要把图2.2中的EOC引脚经过一非门接到单片
18、机的引脚上即可。采用中断方式可大大节省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结
19、果送内部RAM单元30H MOVX A, DPTR MOV 30H, A MOV A, #00H ;启动对IN0的转换 MOVX DPTR,A RETI2.2 0809与51单片机的第二种连接方式6ADC0809的数据线有一特点:只能出不能进。通常芯片的地址线只能进不能出。因此可以在把51单片机的8 位数据线接到ADC0809的8位数据线的同时,又把其中的3位直接接到ADC0809的3根地址线以确定通道号。如图2.4所示。通常把51单片机的8位数据线中的低3位D2、D1、D0直接接到ADC0809的3根地址线A2、A1、A0以确定通道号。采用这种连接方式明显可以省去一片74LS373。编程概要
20、:MOV A , # 0F8H ; ADC0809 通道0 地址送到AMOV DPTR , # 7FFFH ; DPTR 指向ADC0809MOVX DPTR ,A ; 锁定通道0 并启动转换MOVX A , DPTR ; 读取转换结果图2.42.3 0809与51单片机的第三种连接方式5在很多应用场合,51单片机内部的硬件资源,例如AT89S51单片机内部有4kB闪存,128B内部RAM,一个串行口和4个8位并行口等,已经够用。从而不需要外扩RAM或I/O口。当51单片机没有外扩RAM和I/O口时,ADC0809就可以在概念上作为一个特殊的唯一的外扩RAM单元。因此也就没有地址编号,也就不需
21、要任何地址线或者地址译码线。只要单片机往外部RAM写入,就写到ADC0809的地址寄存器中。单片机从外部RAM读取数据,就是读ADC0809的转换结果。基于这种外部RAM的唯一单元概念设计的AT89S51与ADC0809的连接电路如图2.5所示。编程概要:MOV A , #0F8H ; ADC0809 通道0 地址送到AMOVX R0 ,A ; 锁定通道0 并启动转换-MOVX A , R0 ; 读取转换结果图2.5三种接口电路各有特点,第一种和第二种接口电路允许多片ADC0809与单片机连接。一般1片0809就能满足控制工程需要,在单片机没有外扩RAM和I/O接口时,第三种接口电路是优选方案
22、。用2片或者更多ADC0809时,第二种接口电路是优选方案。第一种接口电路是在单片机系统有74LS373锁存器的基础上使用比较方便可行。3 ADC0809与单片机制作的数字电压表 从ADC0809的通道IN3输入05V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形式显示出来,如下图3.1所示。ADC0809的接5V电压。7图3.1 数字电压表电路图其中CD4013由两个相同的、相互独立的触发器构成。每个触发器有独立的数据、置位、复位、时钟输入和Q及输出。此器件可用作移位寄存器,且通过将输出连接到数据输入,可用作计数器和触发器。如前所述,使用CD4013目的就是对单片机ALE引
23、脚输出的时钟频率2MHz进行4分频,以提供0809合适的时钟信号。引脚图及具体单元电路图如图3.2所示。图3.2 CD4013引脚图硬件连线是:把单片机系统区域中的P1.0P1.7与动态数码显示区域中的A、B、C、D、E、F、G、H端口用8芯排线连接。P2.0P2.7与动态数码显示区域中的S1S8端口用8芯排线连接。P3.0与模数转换模块区域中的ST端子用导线相连接。P3.1与模数转换模块区域中的OE端子用导线相连接。P3.2与模数转换模块区域中的EOC端子用导线相连接。IN3端用导线连接到三路可调电压模块区域中的VR1端子上。P0.0P0.7用8芯排线连接到模数转换模块区域中的D0D7端上。
24、因为ADC0809的参考电压,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256),其中D为转换成的数字量。8程序设计时注意,进行A/D转换时,采用查询EOC标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0口读入,经数据处理后在数码管上显示。进行A/D转换之前,要启动转化的方法:ABC=110选择第三通道。ST=0,ST=1,ST=0产生启动转换的正脉冲信号。汇编源程序如下:CH EQU 30H 。DPCNT EQU 31HDPBUF EQU 33HGDATA EQU 32HST BIT P3.0OE BIT P3.1EOC BIT P3.2ORG
25、00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DPCNTMOV R7,#5MOV A,#10MOV R0,#DPBUFLOP: MOV R0,AINC R0DJNZ R7,LOPMOV R0,#00HINC R0MOV R0,#00HINC R0MOV R0,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EAWT: CLR STSETB STCLR ST
26、WAIT: JNB EOC,WAITSETB OEMOV GDATA,P0CLR OEMOV A,GDATAMOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BSJMP WTT0X: NOPMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV A,DPCNTADD A,#DPBUFMOV R0,AMOV A,R0MOVC A,A+DPTRMOV P1,AMOV DPTR,#DPBTMOV A,DPCNTMOVC A,A+DPTRMOV P2,AINC DP
27、CNTMOV A,DPCNTCJNE A,#8,NEXTMOV DPCNT,#00HNEXT: RETIDPCD: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND 9结束语ADC0809作为逐次比较型A/D转换器,在精度、速度和价格上都适中,是最常用的A/D转换器件。在与单片机的接口电路中,关键是要明确0809转换的原理及单片机控制0809的工作过程,并且对软件编程还有一定的要求。以上三种接口电路所用器件都很常见,电路连接简单,能实现对数据
28、的采集和A/D转换。在应用此接口电路时,主要根据场合的应用要求以及ADC0809芯片的性能指标来选择合适的应用电路。ADC0809和单片机制作的数字电压表,是基于0809工作原理以及0809与单片机接口电路的基础上设计的,由于实际电路中模拟量变化较快,因此对软件编程要求相对高些。此应用电路理论上能基本实现对输入模拟电压的显示。目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测量系统等智能化测量领域,展示出强大的生命力。参考文献 1 尹建华.微型计算机原理与接口技术M.北京:高等教育出版社,2008;513-5152 周明德.微机原理与接口技术M.北
29、京:人民邮电出版社,20023 张毅刚.单片机原理及应用M.北京:高等教育出版社,2004;295-2984 王毓银.数字电路逻辑设计/脉冲与数字电路M.北京:高等教育出版社,19995 申小海,李俊莉.基于ADC0809的模数转换应用举隅J.河南师范大学师范大学学报(自然科学版),2008:166-1676 元增民.AT89S51单片机与ADC0809模数转换器的三种典型连接J.长沙大学学报,2005:69-727 电子制作2007合订本(上、下册)J:107-1098 夏莉英,陈雁.基于ADC0809的模拟电压采样测量方法J.福建电脑,2008,(5):166-1689 沈庆阳.8051单
30、片机实践与应用M.北京:清华大学出版社,200210 JeffersonC.Boyce.Digital Logic and Switching Circuits: Operation and Analysis. Prentice-Hall, 1975ADC0809 chips principles and applicationsDepartment of Electronic 0504 Student Wu Lixing Tutor Wang Aizhen Abstract: ADC0809 is an 8-bit successive approximation type A / D converter and a typical A / D conversion chip, having a much wider application. This paper mainly introduces the ADC0809 chips internal logic structure, and pin detailes distribution, its basic working principle. On this basic the design of the two circuit-related applicatio
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1