典型的集成ADC芯片
为了满足多种需要,目前国内外各半导体器件生产厂家设计并生产出了多种多样的ADC芯片。仅美国AD公司的ADC产品就有几十个系列、近百种型号之多。从性能上讲,它们有的精度高、速度快,有的则价格低廉。从功能上讲,有的不仅具有A/D转换的基本功能,还包括内部放大器和三态输出锁存器;有的甚至还包括多路开关、采样保持器等,已发展为一个单片的小型数据采集系统。
尽管ADC芯片的品种、型号很多,其内部功能强弱、转换速度快慢、转换精度高低有很大差别,但从用户最关心的外特性看,无论哪种芯片,都必不可少地要包括以下四种基本信号引脚端:模拟信号输入端(单极性或双极性);数字量输出端(并行或串行);转换启动信号输入端;转换结束信号输出端。除此之外,各种不同型号的芯片可能还会有一些其他各不相同的控制信号端。选用ADC芯片时,除了必须考虑各种技术要求外,通常还需了解芯片以下两方面的特性。
(1)数字输出的方式是否有可控三态输出。有可控三态输出的ADC芯片允许输出线与微机系统的数据总线直接相连,并在转换结束后利用读数信号选通三态门,将转换结果送上总线。没有可控三态输出(包括内部根本没有输出三态门和虽有三态门、但外部不可控两种情况)的ADC芯片则不允许数据输出线与系统的数据总线直接相连,而必须通过I/O接口与MPU交换信息。
(2)启动转换的控制方式是脉冲控制式还是电平控制式。对脉冲启动转换的ADC芯片,只要在其启动转换引脚上施加一个宽度符合芯片要求的脉冲信号,就能启动转换并自动完成。一般能和MPU配套使用的芯片,MPU的I/O写脉冲都能满足ADC芯片对启动脉冲的要求。对电平启动转换的ADC芯片,在转换过程中启动信号必须保持规定的电平不变,否则,如中途撤消规定的电平,就会停止转换而可能得到错误的结果。为此,必须用D触发器或可编程并行I/O接口芯片的某一位来锁存这个电平,或用单稳等电路来对启动信号进行定时变换。
具有上述两种数字输出方式和两种启动转换控制方式的ADC芯片都不少,在实际使用芯片时要特别注意看清芯片
。下面介绍两种常用芯片的性能和使用
。
1. ADC 0808/0809
ADC 0808和ADC 0809除精度略有差别外(前者精度为8位、后者精度为7位),其余各方面完全相同。它们都是CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。
1) 主要技术指标和特性
(1)分辨率: 8位。
(2)总的不可调误差: ADC0808为±LSB,ADC 0809为±1LSB。
(3)转换时间: 取决于芯片时钟频率,如CLK=500kHz时,TCONV=128μs。
(4)单一电源: +5V。
(5)模拟输入电压范围: 单极性0~5V;双极性±5V,±10V(需外加一定电路)。
(6)具有可控三态输出缓存器。
(7)启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始。
(8)使用时不需进行零点和满刻度调节。
2) 内部结构和外部引脚
ADC0808/0809的内部结构和外部引脚分别如图11.19和图11.20所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:
图11.19 ADC0808/0809内部结构框图
(1)IN0~IN7——8路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。
(2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。
(3)ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号与选中通道对应关系如
11.3所示。
(4)VR(+)、VR(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。
图11.20 ADC0808/0809外部引脚图
表11.3 地址信号与选中通道的关系
地 址
选中通道
ADDC
ADDB
ADDA
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
(5)ALE——地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
(6)START——A/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
(7)EOC——转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
(8)OE——输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。
3) 工作时序与使用说明
ADC 0808/0809的工作时序如图11.21所示。当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC再变高电平。微处理器收到变为高电平的EOC信号后,便立即送出OE信号,打开三态门,读取转换结果。
图11.21 ADC 0808/0809工作时序
模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成(因为ADC0808/0809的时间特性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。
如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。
2. AD574A
AD574A是美国AD公司的产品,是目前国际市场上较先进的、价格低廉、应用较广的混合集成12位逐次逼近式ADC芯片。它分6个等级,即AD574AJ、AK、AL、AS、AT、AU,前三种使用温度范围为0~+70℃,后三种为-55~+125℃。它们除线性度及其他某些特性因等级不同而异外,主要性能指标和工作特点是相同的。
1) 主要技术指标和特性
(1)非线性误差: ±1LSB或±LSB(因等级不同而异)。
(2)电压输入范围: 单极性0~+10V,0~+20V,双极性±5V,±10V。
(3)转换时间: 35μs。
(4)供电电源: +5V,±15V。
(5)启动转换方式: 由多个信号联合控制,属脉冲式。
(6)输出方式: 具有多路方式的可控三态输出缓存器。
(7)无需外加时钟。
(8)片内有基准电压源。可外加VR,也可通过将VO(R)与Vi(R)相连而自己提供VR。内部提供的VR为(10.00±0.1)V(max),可供外部使用,其最大输出电流为1.5mA;
(9)可进行12位或8位转换。12位输出可一次完成,也可两次完成(先高8位,后低4位)。
2) 内部结构与引脚功能
AD574A的内部结构与外部引脚如图11.22所示。从图可见,它由两片大规模集成电路混合而成: 一片为以D/A转换器AD565和10V基准源为主的模拟片,一片为集成了逐次逼近寄存器SAR和转换控制电路、时钟电路、三态输出缓冲器电路和高分辨率比较器的数字片,其中12位三态输出缓冲器分成独立的A、B、C三段,每段4位,目的是便于与各种字长微处理器的数据总线直接相连。AD574A为28引脚双列直插式封装,各引脚信号的功能定义分述如下:
图11.22 AD574A的结构框图与引脚
(1)12/——输出数据方式选择。当接高电平时,输出数据是12位字长;当接低电平时,是将转换输出的数变成两个8位字输出。
(2)A0——转换数据长度选择。当A0为低电平时,进行12位转换;A0为高电平时,则为8位长度的转换。
(3)——片选信号。
(4)R/——读或转换选择。当为高电平时,可将转换后数据读出;当为低电平时,启动转换。
(5)CE——芯片允许信号,用来控制转换与读操作。只有当它为高电平时,并且=0时,R/信号的控制才起作用。CE和、R/、12/、A0信号配合进行转换和读操作的控制真值表如表11.4所示。
(6)VCC——正电源,电压范围为0~+16.5V。
(7)Vo(R)——+10V参考电压输出端,具有1.5mA的带负载能力。
表11.4 AD574A的转换和读操作控制真值表
CE
12 /
A0
操作内容
0
×
1
1
1
1
1
×
1
0
0
0
0
0
×
×
0
0
1
1
1
×
×
×
×
+5V
DGND
DGND
×
×
0
1
×
0
1
无操作
无操作
启动一次12位转换
启动一次8位转换
并行读出12位
读出高8位(A段和B段)
读出C段低4位,并自动后跟4个0
(8)AGND——模拟地。
(9)GND——数字地。
(10)Vi(R)——参考电压输入端。
(11)VEE——负电源,可选加-11.4V~-16.5V之间的电压。
(12)BIP OFF——双极性偏移端,用于极性控制。单极性输入时接模拟地(AGND),双极性输入时接Vo(R)端。
(13)Vi(10)——单极性0~+10V范围输入端,双极性±5V范围输入端。
(14)Vi(20)——单极性0~+20V范围输入端,双极性±10V范围输入端。
(15)STS——转换状态输出端,只在转换进行过程中呈现高电平,转换一结束立即返回到低电平。可用查询方式检测此端电平变化,来判断转换是否结束,也可利用它的负跳变沿来触发一个触发器产生IRQ信号,在中断服务程序中读取转换后的有效数据。
从转换被启动并使STS变高电平一直到转换周期完成这一段时间内,AD574A对再来的启动信号不予理睬,转换进行期间也不能从输出数据缓冲器读取数据。
3) 工作时序
AD574A的工作时序如图11.23所示。对其启动转换和转换结束后读数据两个过程分别说明如下:
图11.23 AD574A的工作时序
(1)启动转换
在=0和CE=1时,才能启动转换。由于是=0和CE=1相与后,才能启动A/D转换,因此实际上这两者中哪一个信号后出现,就认为是该信号启动了转换。无论用哪一个启动转换,都应使R/C信号超前其200ns时间变低电平。从图11.23可看出,是由CE启动转换的,当R/为低电平时,启动后才是转换,否则将成为读数据操作。在转换期间STS为高电平,转换完成时变低电平。
(2)读转换数据
在=0和CE=1且为高电平时,才能读数据,由12/决定是12位并行读出,还是两次读出。如图11.23所示,或CE信号均可用作允许输出信号,看哪一个后出现,图中为CE信号后出现。规定A0要超前于读信号至少150ns,信号超前于CE信号最小可到零。
从表11.4和图11.23可看出,AD574A还能以一种单独控制(stand-alone)方式工作: CE和12/固定接高电平,和A0固定接地,只用来控制转换和读数,=0时启动12位转换,=1时并行读出12位数。具体实现办法可有两种: 正脉冲控制和负脉冲控制。当使用350ns以上的正脉冲控制时,有脉冲期间开启三态缓冲器读数,脉冲后沿(下降沿)启动转换。当使用400ns以上的负脉冲控制时,则前沿启动转换,脉冲结束后读数。
4) 使用方法
AD574A有单极性和双极性两种模拟输入方式。
(1)单极性输入的接线和校准
单极性输入的接线如图11.24(a)所示。AD574A在单极性方式下,有两种额定的模拟输入范围: 0~+10V的输入接在Vi(10)和AGND间,0~+20V输入接在Vi(20)和AGND间。R1用于偏移调整(如不需进行调整可把BIP OFF直接接AGND,省去外加的调整电路),R2用于满量程调整(如不需调整,R2可用一个50Ω±1%的金属膜固定电阻代替)。为使量化误差为±LSB,AD574A的额定偏移规定为LSB。因此在作偏移调整时,使输入电压为LSB(满量程电压为+10V时是1.22mV),调R1,使数字输出为000000000000到000000000001的跳变。在做满量程调整时,是通过施加一个低于满量程值1LSB的模拟信号进行的,这时调R2以得到从111111111110到111111111111的跳变点。
(2)双极性输入的接线和校准
双极性输入的接线如图11.24(b)所示。和单极性输入时一样,双极性时也有两种额定的模拟输入范围: ±5V和±10V。±5V输入接在Vi(10)和AGND之间;±10V接在Vi(20)和AGND之间。
图11.24 AD574A的输入接线图
双极性校准也类似于单极性校准。调整方法是,先施加一个高于负满量程LSB(对于±5V范围为-4.9988V)的输入电压,调R1,使输出出现从000000000000到000000000001的跳变;再施加一个低于正满量程1LSB(对于±5V范围为+4.9963V)的输入信号,调R2使输出现从111111111110到111111111111的跳变。如偏移和增益无需调整,则相应的调整电阻也和在单极性中一样,R2可用50±1%Ω的固定电阻代替。
ADC 0808 与 ADC 0809 区别§7.3 A/D转换器ADC0809与 MCS-51单片机的接口设计 ADC0808/0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位的模/数转换器,8通道多路转换器和与微处理器兼容的控制逻辑.8通道多路转换器能直接连通8个单端模拟信号中一任何一个. 一,ADC0808/0809的内部结构及引脚功能 1,ADC0809转换器内部结构2,ADC0809引脚功能分辨率为8位.最大不可调误差ADC0808小于±1/2LSB,ADC0809小于±1LSB单一+5V供电,模拟输入范围为0~5V.具有锁存三态输出,输出与TTL兼容.功耗为15mw.不必进行零点和满度调整.转换速度取决于芯片的时钟频率.时钟频率范围:10~1280KHZ当CLK=500KHZ时,转换速度为128μs.IN0~IN7:8路输入通道的模拟量输入端口. 2-1~2-8:8位数字量输出端口. START,ALE:START为启动控制输入端口,ALE为地址锁存控制信号端口.这两个信号端可连接在一起,当通过软件输入一个正脉冲,便立即启动模/数转换.EOC,OE:EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口,这两个信号亦可连结在一起表示模/数转换结束.OE端的电平由低变高,打开三态输出锁存器,将转换结果的数字量输出到数据总线上.REF(+),REF(-),VCC,GND,REF(+)和REF(-)为参考电压输入端,VCC为主电源输入端,GND为接地端.一般REF(+)与VCC连接在一起,REF(-)与GND连接在一起.CLK:时钟输入端.3,8路模拟开关的三位地址选通编码表ADDA,B,C8路模拟开关的三位地址选通输入端,以选择对应的输入通道. 地 址 码对应的输入通道CBA000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7二,ADC0808/0809与8031单片机的接口设计 ADC0808/0809与8031单片机的硬件接口有三种方式,查询方式,中断方式和等待延时方式.究竟采用何种方式,应视具体情况,按总体要求而选择.1.延时方式 ADC0809编程模式在软件编写时,应令p2.7=A15=0;A0,A1,A2给出被选择的模拟通道的地址;执行一条输出指令,启动A/D转换;执行一条输入指令,读取A/D转换结果.通道地址:7FF8H~7FFFH下面的程序是采用延时的方法,分别对8路模拟信号轮流采样一次,并依次把结果转存到数据存储区的采样转换程序.START: MOV R1, #50H ;置数据区首地址MOV DPTR, #7FF8H ;P2.7=0且指向通道0 MOV R7, #08H ;置通道数 NEXT: MOVX @DPTR,A ;启动A/D转换MOV R6, #0AH ;软件延时DLAY: NOPNOPNOPDJNZ R6, DLAYMOVX A, @DPTR ;读取转换结果MOV @ R1, A ;存储数据INC DPTR ;指向下一个通道INC R1 ;修改数据区指针 DJNZ R7, NEXT ;8个通道全采样完了吗 ........ 2.中断方式 将ADC0808/0809作为一个外部扩展的并行I/O口,直接由8031的P2.0和脉冲进行启动.通道地址为FEF8H~FEFFH用中断方式读取转换结果的数字量,模拟量输入通路选择端A,B,C分别与8031的P0.0,P0.1,P0.2(经74LS373)相连,CLK由8031的ALE提供. INTADC:SETB IT1 ;选择为边沿触发方式SETB EA ;开中断SETB EX1 ;MOV DPTR, #0FEF8H ;通道地址送DPTRMOVX @DPTR,A ;启动A/D转换……PINT1: ……MOV DPTR, #0FEF8H ; 通道地址送DPTRMOVX A, @ DPTR;读取从IN0输入的转换结果存入MOV 50H, A ;50H单元MOVX @DPTR,A ;启动A/D转换RETI ;中断返回三,接口电路设计中的几点注意事项1.关于ADC0808/0809最高工作时钟频率的说明由于ADC0808/0809芯片内无时钟,所以必须靠外部提供时钟;外部时钟的频率范围为10KHZ~1280KHZ.在前面的ADC0808/0809通过中断方式与8031单片机接口的电路中,8031单片机的主频接为6MHZ,ALE提供ADC0808/0809的时钟频率为1MHZ(1000KHZ);实际应用系统使用证明,ADC0808/0809能够正常可靠地工作.但在用户进行ADC0808/0809应用设计时,推荐选用640KHZ左右的时钟频率. 2,ADC0816/17与ADC0809的主要区别ADC0816/0817与ADC0808/0809相比,除模拟量输入通道数增至16路,封装为40引脚外,其原理,性能结构基本相同.ADC0816和ADC0817的主要区别是:ADC0816的最大不可调误差为±1/2LSB,精度高,价格也高;ADC0817的最大不可调误差为士1LSB,价格低. 习
七 试设计一数据采集系统 2002.10 使用单位: 山东省气象局在东营市孤岛气象观察站设计单位: 山东大学物理与微电子学院2000级设计
: 自行确定提 示: 对于非模拟物理量,可以用下图示意即可非电物理量传感器A/D转换器
§7.3 A/D转换器ADC0809与 MCS-51单片机的接口设计
ADC0808/0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位的模/数转换器,8通道多路转换器和与微处理器兼容的控制逻辑.
8通道多路转换器能直接连通8个单端模拟信号中一任何一个.
一,ADC0808/0809的内部结构及引脚功能
1,ADC0809转换器内部结构
2,ADC0809引脚功能
分辨率为8位.
最大不可调误差ADC0808小于±1/2LSB,
ADC0809小于±1LSB
单一+5V供电,模拟输入范围为0~5V.
具有锁存三态输出,输出与TTL兼容.
功耗为15mw.
不必进行零点和满度调整.
转换速度取决于芯片的时钟频率.时钟频率范围:10~1280KHZ
当CLK=500KHZ时,
转换速度为128μs.
IN0~IN7:8路输入通道的模拟量输入端口.
2-1~2-8:8位数字量输出端口.
START,ALE:START为启动控制输入端口,ALE为地址锁存控制信号端口.这两个信号端可连接在一起,当通过软件输入一个正脉冲,便立即启动模/数转换.
EOC,OE:EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口,这两个信号亦可连结在一起表示模/数转换结束.OE端的电平由低变高,打开三态输出锁存器,将转换结果的数字量输出到数据总线上.
REF(+),REF(-),VCC,GND,REF(+)和REF(-)为参考电压输入端,VCC为主电源输入端,GND为接地端.一般REF(+)与VCC连接在一起,REF(-)与GND连接在一起.
CLK:时钟输入端.
3,8路模拟开关的三位地址选通编码表
ADDA,B,C
8路模拟开关的三位地址选通输入端,以选择对应的输入通道.
地 址 码
对应的输入通道
C
B
A
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
二,ADC0808/0809与8031单片机的接口设计
ADC0808/0809与8031单片机的硬件接口有三种方式,查询方式,中断方式和等待延时方式.究竟采用何种方式,应视具体情况,按总体要求而选择.
1.延时方式
ADC0809编程模式
在软件编写时,应令p2.7=A15=0;A0,A1,A2给出被选择的模拟通道的地址;
执行一条输出指令,启动A/D转换;
执行一条输入指令,读取A/D转换结果.
通道地址:7FF8H~7FFFH
下面的程序是采用延时的方法,分别对8路模拟信号轮流采样一次,并依次把结果转存到数据存储区的采样转换程序.
START: MOV R1, #50H ;置数据区首地址
MOV DPTR, #7FF8H ;P2.7=0且指向通道0
MOV R7, #08H ;置通道数
NEXT: MOVX @DPTR,A ;启动A/D转换
MOV R6, #0AH ;软件延时
DLAY: NOP
NOP
NOP
DJNZ R6, DLAY
MOVX A, @DPTR ;读取转换结果
MOV @ R1, A ;存储数据
INC DPTR ;指向下一个通道
INC R1 ;修改数据区指针
DJNZ R7, NEXT ;8个通道全采样完了吗
........
2.中断方式
将ADC0808/0809作为一个外部扩展的并行I/O口,直接由8031的P2.0和脉冲进行启动.通道地址为FEF8H~FEFFH
用中断方式读取转换结果的数字量,模拟量输入通路选择端A,B,C分别与8031的P0.0,P0.1,P0.2(经74LS373)相连,
CLK由8031的ALE提供.
INTADC:SETB IT1 ;选择为边沿触发方式
SETB EA ;开中断
SETB EX1 ;
MOV DPTR, #0FEF8H ;通道地址送DPTR
MOVX @DPTR,A ;启动A/D转换
……
PINT1: ……
MOV DPTR, #0FEF8H ; 通道地址送DPTR
MOVX A, @ DPTR;读取从IN0输入的转换结果存入
MOV 50H, A ;50H单元
MOVX @DPTR,A ;启动A/D转换
RETI ;中断返回
三,接口电路设计中的几点注意事项
1.关于ADC0808/0809最高工作时钟频率的说明
由于ADC0808/0809芯片内无时钟,所以必须靠外部提供时钟;
外部时钟的频率范围为10KHZ~1280KHZ.在前面的ADC0808/0809通过中断方式与8031单片机接口的电路中,8031单片机的主频接为6MHZ,ALE提供ADC0808/0809的时钟频率为1MHZ(1000KHZ);
实际应用系统使用证明,ADC0808/0809能够正常可靠地工作.但在用户进行ADC0808/0809应用设计时,推荐选用640KHZ左右的时钟频率.
2,ADC0816/17与ADC0809的主要区别
ADC0816/0817与ADC0808/0809相比,除模拟量输入通道数增至16路,封装为40引脚外,其原理,性能结构基本相同.
ADC0816和ADC0817的主要区别是:
ADC0816的最大不可调误差为±1/2LSB,精度高,价格也高;
ADC0817的最大不可调误差为士1LSB,价格低.
习题七 试设计一数据采集系统 2002.10
使用单位: 山东省气象局在东营市孤岛气象观察站
设计单位: 山东大学物理与微电子学院2000级
设计方案: 自行确定
提 示: 对于非模拟物理量,可以用下图示意即可
ADC0808
百科名片
ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
HYPERLINK "http://baike.baidu.com/image/148f28d359bc0f3d3bf3cf60" \t "_blank"
INCLUDEPICTURE "http://imgsrc.baidu.com/baike/abpic/item/148f28d359bc0f3d3bf3cf60.jpg" \* MERGEFORMATINET
ADC0808管脚图
内部结构
ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。
引脚功能(外部特性)
ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下:
1~5和26~28(IN0~IN7):8路模拟量输入端。
8、14、15和17~21:8位数字量输出端。
22(ALE):地址锁存允许信号,输入,高电平有效。
6(START): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。
12(VREF(+))和16(VREF(-)):参考电压输入端
11(Vcc):主电源输入端。
13(GND):地。
23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路
HYPERLINK "http://baike.baidu.com/image/0b14ad19c5040e7842a9ad5b" \t "_blank"
INCLUDEPICTURE "http://imgsrc.baidu.com/baike/abpic/item/0b14ad19c5040e7842a9ad5b.jpg" \* MERGEFORMATINET
通道选择
极限参数
电源电压(Vcc):6.5V
控制端输入电压:-0.3V~15V
其它输入和输出端电压:-0.3V~Vcc+0.3V
贮存温度:-65℃~+150℃
功耗(T=+25℃):875mW
引线焊接温度:①气相焊接(60s):215℃;②红外焊接(15s):220℃
抗静电强度:400V
一个风格很好的AD转换程序,值得你参考
标签: AD转换程序
顶[0] 分享到 发表评论(0) 编辑词条
HTMLCONTROL Forms.HTML:Hidden.1
HYPERLINK "http://www.kaixin001.com/repaste/share.php?rtitle=%E4%B8%80%E4%B8%AA%E9%A3%8E%E6%A0%BC%E5%BE%88%E5%A5%BD%E7%9A%84AD%E8%BD%AC%E6%8D%A2%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%80%BC%E5%BE%97%E4%BD%A0%E5%8F%82%E8%80%83&rurl=http://wiki.cepark.com/index.php?doc-view-548.html&rcontent=//ICC-AVR%20application%20builder%20:%202007/6/23%201:26:55//%20Target%20:%20M16//%20Crystal:1.0000Mhz" \l "include%20%3Ciom16v.h%3E#include%20%3Cmacros.h%3E#define%20ADC_VREF_TYPE%200xe0%C2%A0%C2%A0%20//%E9%80%89%E7%94%A82.56V%20%E7%9A%84%E7%89%87%E5%86%85%E5%9F%BA%E5%87%86%E7%94%B5%E5%8E%8B%E6%BA%90" \t "_blank" 开心001 人人网 新浪微博
//ICC-AVR application builder : 2007/6/23 1:26:55
// Target : M16
// Crystal:1.0000Mhz
#include
#include
#define ADC_VREF_TYPE 0xe0 //选用2.56V 的片内基准电压源,且结果为左对齐
#define AD_SE_ADC0 0x00 //ADC0
unsigned char Table[10] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管字型0~9
unsigned char Data[4] = {0,0,0,0}; //存放A/D转换结果
unsigned long int i,j=2560,k=256;
void port_init(void)
{
PORTA = 0x01;
DDRA = 0x00;
PORTB = 0xFF;
DDRB = 0xFF;
PORTC = 0x0F; //m103 output only
DDRC = 0x0F;
PORTD = 0x00;
DDRD = 0x00;
}
//ADC initialize
// Conversion time: 112uS
void adc_init(void)
{
ADCSR = 0x00; //disable adc
ADMUX = 0x00; //select adc input 0
ACSR = 0x80;
ADCSR = 0x86;
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
adc_init();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void delay_(unsigned char a)
{unsigned int i;
for(i=0;i ;包含芯片头文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;*********************寄存器定义*********************
TEMP EQU 20H ;临时寄存器
BAI EQU 21H ;转换结果的百位
SHI EQU 22H ;转换结果的十位
GE EQU 23H ;转换结果的个位
;****************************************************
ORG 00H ;复位入口地址
NOP ;ICD需要的空指令
GOTO MAIN ;跳转到主程序入口
ORG 04H ;中断入口地址
RETFIE ;放置一条中断返回指令,防止以外中断发生
;***********************查表程序*********************
;入口参数:W
;出口参数:W
TABLE
ADDWF PCL,1 ;指令寄存器加上偏移地址
RETLW 0C0H ;0的编码(公阳极数码管)
RETLW 0F9H ;1的编码
RETLW 0A4H ;2的编码
RETLW 0B0H ;3的编码
RETLW 99H ;4的编码
RETLW 92H ;5的编码
RETLW 082H ;6
RETLW 0F8H ;7
RETLW 080H ;8
RETLW 090H ;9
;***********************主程序***********************
MAIN
MOVLW 30H
MOVWF FSR ;转换结果存放起始地址
LOOP
BSF STATUS,RP0 ;选择体1
MOVLW 7H ;A口高3位为输出,低3位输入
MOVWF TRISA
CLRF TRISD ;D口设为输出
MOVLW 8EH
MOVWF ADCON1 ;结果左对齐,只选择RA0做ADC口,其余做普通数字口
BCF STATUS,RP0 ;回体0
MOVLW 41H
MOVWF ADCON0 ;选择时钟源为fosc/8,允许ADC工作
CALL DELAY ;调用延时程序,保证足够的采样时间
BSF ADCON0,GO ;启动ADC转换
WAIT
BTFSS PIR1,ADIF ;转换是否完成
GOTO WAIT ;等待转换的完成
BSF STATUS,RP0
MOVFW ADRESL ;读取转换的结果
BCF STATUS,RP0
MOVWF INDF ;保存到临时寄存器里
INCF FSR,1
BTFSS FSR,2 ;连续转换4次,求平均值
GOTO LOOP
CALL CHANGE ;调用结果转换程序
CALL DISPLAY ;调用显示程序
GOTO MAIN ;循环工作
;************************转换程序*********************
;入口参数:30H---33H
;出口参数:BAI,SHI,GE
CHANGE
CLRF BAI
CLRF SHI
CLRF GE ;先清除结果寄存器
MOVFW 31H ;以下8条指令求4次转换结果的平均值
ADDWF 30H,1
MOVFW 32H
ADDWF 30H,1
MOVFW 33H
ADDWF 30H,1
RRF 30H,1
RRF 30H,0
MOVWF TEMP
MOVLW 64H ;减100,结果保留在W中
SUBWF TEMP,0
BTFSS STATUS,C ;判断是否大于100
GOTO SHI_VAL ;否,转求十位结果
MOVWF TEMP ;是,差送回TEMP中
INCF BAI,1 ;百位加1
GOTO $-6 ;返回继续求百位的值
SHI_VAL
MOVLW 0AH ;减10,结果保留在W中
SUBWF TEMP,0
BTFSS STATUS,C ;判断是否大于10
GOTO GE_VAL ;否,转去判断个位结果
MOVWF TEMP ;是,差送回TEMP中
INCF SHI,1 ;十位值加1
GOTO $-6 ;转会继续求十位的值
GE_VAL
MOVFW TEMP
MOVWF GE ;个位的值
RETURN
;**************************显示程序********************
;入口参数:BAI,SHI,GE
;出口参数:无
DISPLAY
MOVFW BAI ;显示百位
CALL TABLE
MOVWF PORTD
BCF PORTA,3
CALL DELAY
CALL DELAY
BSF PORTA,3
MOVFW SHI ;显示十位
CALL TABLE
MOVWF PORTD
BCF PORTA,4
CALL DELAY
CALL DELAY
BSF PORTA,4
MOVFW GE ;显示个位
CALL TABLE
MOVWF PORTD
BCF PORTA,5
CALL DELAY
CALL DELAY
BSF PORTA,5
RETURN
;***************************延时程序***********************
;入口参数:无
;出口参数:无
DELAY
MOVLW 5FH
MOVWF TEMP
DECFSZ TEMP,1
GOTO $-1
RETURN
;*********************************************************
END ;程序结束
串行AD转换芯片与51单片机的接口电路及程序设计
--------------------------------------------------------------------------------
-
串行AD转换芯片与51单片机的接口电路及程序设计
AT89C51单片机系统经常使用A/D转换器。虽然并行A/D转换器速度高、转换通道多,但其价格高,占用单片机接口资源比串行A/D转换器多。工业检测控制及智能化仪器仪表中经常采用串行A/D转换器。ADS1110是一种精密、可连续自校准的串行A/D转换器,带有差分输入和高达16位的分辨率,其串行接口为I2C总线。AT89C51单片机通过软件模拟I2C总线实现与ADS1110的连接。
ADS1110的特点与内部结构
ADS1110的特点
完整的数据采集系统和小型SOT23-6封装;片内基准电压:精度2.048 V+0.05%;片内可编程增益放大器PGA;片内振荡器;16位分辨率;可编程的转换速率15次/秒~240次/秒;I2C总线接口(8个有效地址);电源电压2.7 V~5.5 V;低电流消耗240 μA。
ADS1110的引脚功能
ADS1110串行A/D转换器采用6引脚贴片封装,其引脚排列如图1所示。VDD:电源端,通常接+5V;GND:模拟地和数字地;VIN+、VIN-:采样模拟信号输入端,其范围为2.048 V~2.048 V;SCL:I2C总线时钟线;SDA:I2C总线数据线。
ADS1110的内部结构
ADS1110是由带有可调增益的△-∑型转换器内核、2.048 V的电压基准、时钟振荡器和I2C总线接口组成。其内部结构如图2所示。
ADS1110的寄存器读写配置请参考:ADS110引脚功能,寄存器配置及应用电路介绍
ADS1110的A/D转换器内核是由差分开关电容△-∑调节器和数字滤波器组成。调节器测量正模拟输入和负模拟输入的压差,并将其与基准电压相比较。数字滤波器接收高速数据流并输出代码,该代码是一个与输入电压成比例的数字,即A/D转换后的数据。
ADS1110片内电压基准是2.048 V。ADS1110只能采用内部电压基准该基准,不能测量,也不用于外部电路。ADS1110片内集成时钟振荡器用于驱动△-∑调节器和数字滤波器。ADS1110的信号输入端设有可编程增益放大器PGA,其输入阻抗在差分输入时的典型值为2.8 MΩ。
硬件设计
由于AT89C51单片机没有I2C总线接口,可通过软件模拟实现与I2C总线器件的连接。具体方法是将单片机的I/O接口连接至I2C的数据线SDA和时钟线SCL。通过软件控制时钟和数据传输,系统灵活性强。
图5所示是数据采集显示系统,采集工业现场的4路模拟信号并轮询显示。采用4个AD