第三章ADC和DAC教材_第1页
第三章ADC和DAC教材_第2页
第三章ADC和DAC教材_第3页
第三章ADC和DAC教材_第4页
第三章ADC和DAC教材_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能仪表——第三章DAC与ADC重点:A/D及D/A转换器的主要技术指标,DAC0832,ADC0809的典型电路和编程方法,

几种常见ADC。了解:8位以上的ADC和DAC的编程特点,前置放大器和采样保持器的用途和选择依据。教学重难点DA转换器采样保持器传感器放大器有源滤波器单片机被测量控制信号AD转换器图3.1智能化测量控制仪表的工作过程对离散输入进行量化,得到幅度和时间均为离散的数字信号当输入的模拟信号变化速度大于A/D转换器的速度时,防止采样的错误。得到平滑的输入信号1.分辨率:用于反映转换器所能分辨的被测量最小值,通常用二进制代码的位数来表示。例如:某10位A/D转换器可测量电压为0-10V,则所能分辨的最小模拟电压是:因为最大模拟量对应数字量为1111111111B,则根据对应关系10V1111111111BX0000000001B=则X=10/(210-1)(V)3.1.1A/D转换器的主要技术指标1.分辨率:同理,当8位A/D转换器测量范围0-10V时,所能分辨得最小模拟电压是Y=10/(28-1)(V)结论:分辨率高的A/D转换器所能测量的最小值比分辨率低的转换器小得多。3.1.1A/D转换器的主要技术指标2.精度:转换结果相对于实际值的偏差,分为绝对精度和相对精度。(1)绝对精度:用二进制的最低位(LSB)的倍数来表示。如±(1/2)LSB、±1LSB等。(2)相对精度:绝对精度/满量程值(百分比)。注意:分辨率和精度之间没有必然的联系!如一把有毫米刻度的直尺,并不能说明就能够精确的测量毫米尺度。3.1.1A/D转换器的主要技术指标3.量程:所能转换模拟电压的范围,双极性和单极性满刻度值仅仅是名义值,实际的A/D、D/A转换器的最大输出值总是比满刻度值小2n-1个梯级。如12位的A/D转换器,其满刻度值为10V,而实际的最大输出值为3.1.1A/D转换器的主要技术指标

1409521210V-10V×=10V×4096=9.9976V4.线性度误差:实际的模拟数字转换关系与理想的直线关系不同而出现的误差,用LSB的倍数表示。3.1.1A/D转换器的主要技术指标5.转换时间:由启动转换命令到转换结束信号开始有效的时间间隔,与转换器的工作原理和位数有关。通常对于相同工作原理的转换器,位数越多,转换时间越长。积分型AD:毫秒级、低速AD;逐次比较型:微秒级、中速AD;全并行/串并行型AD:纳秒级与A/D转换器基本相同,不同的是:转换时间:又称建立时间,当输入的二进制代码从最小值突然跳变至最大值时,其模拟输出电压相应的满度跳跃并达到稳定所需的时间。3.1.2D/A转换器的主要技术指标一、DAC组成1.数字量输入端2.模拟量输出端3.基准电压3.2DAC接口技术二、DAC分类按数字输入端分类:1.无数据锁存器2.带单数据锁存器3.带双数据锁存器4.接收串行数字输入外加锁存器无需外加锁存器适于远距离现场控制3.2DAC接口技术三、模拟量输出方式电压电流(常用)3.2DAC接口技术OUT电流输出DACRV-+数字量输入(b)同相输出R2R1电流输出DACRVOUT+-数字量输入(a)反相输出iiVout=-iR3.2DAC接口技术电流输出DACRFBVOUT数字量输入图3.2将电流型DAC芯片接成电压输出方式R2R1+-A1A2+-R4R3±VREFV1IOUTI2I4I3V1=-IOUT×R1IOUT=I2I3=±VREF/R3I4=I2+I3I2=(V1-0)/R2VOUT=-I4R4=V1R2±VREFR3R4+=-(2V1+VREF)()R3=R4=2R23.2DAC接口技术锁存器B锁存器A10位DACD1D0D2D3D4D5D6D7002CH002DHVOUT单片机无内部锁存器的DAC接口图3.310位DAC接口MOVDPTR,#002CHMOVA,#DATA8MOVX@DPTR,AINCDPTRMOVA,#DATA2MOVX@DPTR,A3.2.1常用DAC芯片的接口方法---无内部锁存器的DAC因为10位数字量输出是分两次进行的,所以在输出低8位和高2位数据之间,可能产生“毛刺”。假设两个锁存器原来的内容是0001111000,现在要求转换的数据为0100001011。第一次输出数据为低8位,即00001011,连同原先的高2位00,构成另外一个10位数据0000001011进行DA转换,得到一个不需要的电压,称为毛刺。3.2.1常用DAC芯片的接口方法---无内部锁存器的DAC锁存器

1锁存器3锁存器

2D9D8D7…D010位DAC2位8位6000H6001H输出数据线10位锁存器MOVDPTR,#6000HMOVA,#DATA8MOVX@DPTR,AINCDPTRMOVA,#DATA2MOVX@DPTR,A3.2.1常用DAC芯片的接口方法---无内部锁存器的DAC

D/A转换器与单片机接口也具有硬、软件相依性。各种A/D转换器与单片机接口的方法有些差异,但就其基本连接方法,还是有共同之处:都要考虑到数据线、地址线和控制线的连接。3.2.1常用DAC芯片的接口方法1.数据线的连接(1)位数——当高于8位的D/A转换器与8位数据总线的MCS-51单片机接口时,MCS-51单片机的数据必须分时输出,这时必须考虑数据分时传送的格式和输出电压的“毛刺”问题;(2)D/A转换器的内部结构——当D/A转换器内部无输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或I/O接口。最简单的连接是8位带锁存器的D/A转换器和8位单片机的接口,这时只要将单片机和D/A转换器的8位数据输入端一一对应连接即可。3.2.1常用DAC芯片的接口方法2.地址线的连接(1)一般DAC只有片选信号,而没有地址线。这时单片机的地址线采用全译码或部分译码,经译码器的输出控制片选信号。也可由某一位I/O线来控制片选信号。(2)少数DAC有少量的地址线,用于选中片内独立的寄存器或选择输出通道(对于多通道DAC)。这时单片机的地址线与D/A转换器的地址线对应连接。3.2.1常用DAC芯片的接口方法3.控制线的连接DAC主要有片选信号、写信号及启动转换信号一般由单片机的有关引脚或译码器提供。一般来说,写信号多由单片机的---WR信号控制;启动信号常为片选信号和写信号的合成。3.2.1常用DAC芯片的接口方法DAC0832具有双缓冲输入寄存器,片内有基准电源及电压输出放大器。数字量并行输入,属于电流输出型的D/A转换器,其转换结果是与输入数字量成正比的电流。输出不能直接带动负载,需经运算放大器放大并转换成电压输出。电压输出又根据不同的场合,需要单极性电压输出和双极性电压输出3.2.1常用DAC芯片的接口方法——DAC0832ILE:数据锁存允许信号,输入,高电平有效

:数据传送控制信号,输入,低电平有效。

IOUT1:电流输出1,当DAC寄存器中各位为全“1”时,电流最大;为全“0”时,电流为0。3.2.1常用DAC芯片的接口方法——DAC0832IOUT2:电流输出2,电路中保证IOUT1+IOUT2=常数。3.2.1常用DAC芯片的接口方法——DAC0832

IOUT1:电流输出1,当DAC寄存器中各位为全“1”时,电流最大;为全“0”时,电流为0。两级缓冲结构输入输出锁存允许“1”内容不变化“1”IOUT1+IOUT2=常数图3.5DAC0832逻辑框图参考电压写信号2,低电平有效。在传送控制信号XFER控制下,可将数据传入DAC寄存器。WR1——第一信号(输入),低电平有效。该信号与ILE

信号共同控制输入寄存器是数据直通方式还是数据锁存方式。片选信号,低电平有效。3.2.1常用DAC芯片的接口方法---DAC08323.2.1常用DAC芯片的接口方法---DAC0832经运算放大器放大并转换成电压输出。电压输出又根据不同的场合,需要单极性电压输出和双极性电压输出二.DAC0832的工作方式1.单缓冲方式——使DAC0832的两个输入寄存器中一个处于直通方式,而另一个处于受控的锁存方式,当然也可使两个寄存器同时选通及锁存。适用于一路模拟量输出,或多路模拟量非同步输出;3.2.1常用DAC芯片的接口方法---DAC0832DAC0832的3种单缓冲连接方式(a)DAC寄存器直通方式;3.2.1常用DAC芯片的接口方法---DAC0832DAC0832的3种单缓冲连接方式(b)输入寄存器直通方式;3.2.1常用DAC芯片的接口方法---DAC0832DAC0832的3种单缓冲连接方式(c)两个寄存器同时选通及锁存方式3.2.1常用DAC芯片的接口方法---DAC0832VCCILERFDIOUT1AGNDIOUT2D0~7CSXFERWR1WR20832WRP2.780C51P0.0~P0.7……+5VVOUT(0~5V)图3.6DAC0832与80C51单片机的接口单缓冲方式(两个寄存器同时选通及锁存)3.2.1常用DAC芯片的接口方法---DAC08322.双缓冲方式——输入寄存器和DAC寄存器分配有各自的地址,可分别选通,即DAC0832的两个锁存器都接成受控锁存方式。适用于多个DAC0832同时输出;由于两个锁存器分别占据两个地址,因此在程序中需要使用两条传送指令,才能完成一个数字量的模拟转换。3.2.1常用DAC芯片的接口方法---DAC08322.双缓冲方式假设第一输入寄存器地址为FEFFH,第二输入寄存器地址为FDFFH,则完成一次D/A转换的程序段应为:MOVA,#DATA;转换数据送入AMOVDPTR,#0FEFFH;指向输入寄存器MOVX@DPTR,A;转换数据送输入寄存器MOVDPTR,#0FDFFH;指向DAC寄存器MOVX@DPTR,A;数据进入DAC寄存器并

;进行D/A转换。3.2.1常用DAC芯片的接口方法---DAC0832ILERFDIOUT1IOUT2DI0~70832CSXFERWR1WR2+5VVOUTWRP2.780C51P0.0~P0.7P2.0VREFILERFDIOUT1IOUT2DI0~70832CSXFERWR1WR2VREF+5V-5V-5V-+A2-+A1VOUT图3.7二路DAC0832与80C51的接口双缓冲方式3.2.1常用DAC芯片的接口方法---DAC0832RFDIOUT1IOUT2DI0~70832CSXFERWR1WR2VREF+5V-5V-+A图3.8多通模拟量输出口(WR+P2.7)OUT1OUT8CD4051INABCINHLE74LS373+-A1+15VRL500欧10uF+-A8+15VRL500欧10uFP0.0~P0.3(WR+P2.6)…………P0.0~P0.7禁止端输出端INH=1时,模拟开关均断开,输出高阻地址锁存八选一多路模拟开关输入端输出通道选择端3.2.1常用DAC芯片的接口方法---DAC08323.2.1常用DAC芯片的接口方法---DAC0832定义存放首地址定义从第一路输出定义输出总路数指向多路开关端口指向某第一路输出口指向DAC0832端口启动一次DA转换延时修改存放地址修改输出支路是否输出数据到指定存储单元退出是否都转换过一次?3.2.1常用DAC芯片的接口方法---DAC0832

MOVR0,#40HMOVR2,#00HMOVR7,#08HLOOP:MOVDPTR,#0BFFFHMOVA,R2MOVX@DPTR,AMOVDPTR,#7FFFHMOVA,@R0MOVX@DPTR,A

P2.7P2.6P2.5~P0.0×0×……×令×=1,则地址为10111111B=BFFFHP2.7P2.6P2.5~P0.00×

×

……×令×=1,则地址为01111111B=7FFFH选通DAC0832输出数据首先指向第一路输出定义存放首地址ACALLDELAYINCR0INCR2DJNZR7,LOOPRET3.2.1常用DAC芯片的接口方法---DAC0832;指向下一路输出续上页3.直通方式——输入寄存器和DAC寄存器共用一个地址,同时选通输出。适用于连续反馈控制线路。3.2.1常用DAC芯片的接口方法---DAC0832三.0832的应用波形发生器——三角波、锯齿波、方波和正弦波。△V=5V28256=19.5mV5V=令单片机的累加器A从0开始递增,每递增一次就向DAC0832送出一个数,即获得一个电压,就可得到一个正向的阶梯波。3.2.1常用DAC芯片的接口方法---DAC0832T△t△V

MOVDPTR,#7FFFHMOVA,#00HLOOP:MOVX@DPTR,A

ACALLDELAYINCAAJMPLOOPDELAY:MOVR4,#0FFHLOOP1:MOVR5,#10HLOOP2:NOPNOPNOPDJNZR5,LOOP2DJNZR4,LOOP1RET?DECA3.2.1常用DAC芯片的接口方法---DAC0832?在加1和减1过程当中判断是否加到FFH和减到00H

MOVDPTR,#7FFFHMOVA,#00HUP:MOVX@DPTR,AINCA

ACALLDELAY

CJNEA,#0FFH,UPDOWN:MOVX@DPTR,ADECA

ACALLDELAY

CJNEA,#00H,DOWNAJMPUP

3.2.1常用DAC芯片的接口方法---DAC0832T?

MOVDPTR,#7FFFHSQ:MOVA,#LOWMOVX@DPTR,AACALLDELAYMOVA,#HIGHMOVX@DPTR,AACALLDELAYAJMPSQT1T2?3.2.1常用DAC芯片的接口方法---DAC0832T?

MOVDPTR,#7FFFHMOVA,#153SQ:MOVX@DPTR,AACALLDELAYMOVA,#255MOVX@DPTR,AACALLDELAYAJMPSQ3.2.1常用DAC芯片的接口方法---DAC08325V3V5V28-1lowlow=1533V=high=255

MOVDPTR,#7FFFHMOVA,#LOWSQ:MOVX@DPTR,AACALLDELAYMOVA,#HIGHMOVX@DPTR,AACALLDELAYAJMPSQ3.2.1常用DAC芯片的接口方法---DAC0832T?5V-3Vlow=515V-(-5V)255255-low5V-(-3V)=51255利用图3.6硬件接口编写一个锯齿波程序,已知台阶电压△V=39mV,要求波形的起始电压为2V,终止电压为5V。5V2VT△t△VVCCILERFDIOUT1AGNDIOUT2D0~7CSXFERWR1WR20832WRP2.780C51P0.0~P0.7+5VVOUT(0~5V)图3.9DAC1208的结构IOUT2IOUT18位输入寄存器12位DAC寄存器12位D/A转换器4位输入寄存器DI0DI1DI2DI3DI4DI5DI6DI7DI8DI9DI10DI11(LSB)(MSB)BYTE1/BYTE2CSWR1WR2XFERVREFRFBVCCAGNDDGND用于区分输入8位寄存器和4位寄存器,为“0”选中4位寄存器片选信号,低电平有效3.2.1常用DAC芯片的接口方法---DAC1208WR1WR2CSXFERBYTE1/BYTE2DI8~DI11DI4~DI7DI0~DI3锁存器Q0P0.4~P0.7P0.0~P0.3ALEEAW/R译码器1208图3.10DAC1208与单片机80C51接口3.2.1常用DAC芯片的接口方法---DAC1208假设4位寄存器地址为20H,8位寄存器地址为21H,XFER地址为22H图3.9DAC1208的结构IOUT2IOUT18位输入寄存器4位输入寄存器DI0DI1DI2DI3DI4DI5DI6DI7DI8DI9DI10DI11(LSB)(MSB)BYTE1/BYTE2CSWR1WR2XFERVREFRFBVCCAGNDDGND20H21H22H3.2.1常用DAC芯片的接口方法---DAC120812位DAC寄存器12位D/A转换器DAC1208采用双缓冲方式传送数据时,首先送高8位数据DI11~DI4,再送低4位数据DI3~DI0,最后打开DAC寄存器。假设高8位数据存在50H,低4位存在51H(低4位数据有效),程序如下:3.2.1常用DAC芯片的接口方法---DAC1208假设高8位数据存在50H,低4位存在51H(低4位数据有效),程序如下:MOVR0,#21HMOVR1,#50HMOVA,@R1MOVX@R0,ADECR0INCR1;8位输入寄存器地址;高8位数据地址;取高8位数据;送至DAC1208;4位输入寄存器地址;低4位数据地址3.2.1常用DAC芯片的接口方法---DAC1208假设高8位数据存在50H,低4位存在51H(低4位数据有效),程序如下:MOVA,@R1SWAPAMOVX@R0,AMOVR0,#22HMOVX@R0,A;取低4位数据;高低4位互换3.2.1常用DAC芯片的接口方法---DAC1208;送至DAC1208;12位DAC转换地址;完成12位DAC转换3.2.4常用DAC芯片的接口方法---DAC接口的应用正弦曲线的生成程控时钟发生器顺序地址发生器

RAM1正弦编码表余弦编码表

RAM2锁存器1锁存器2DAC1DAC2CPU正弦波余弦波图3.13双通道正交可程控正弦波发生器原理图D4D3D2D1Di1234iNwtf(wt)步骤如下:(1)计算0~π/2区间N/4个离散的正弦值;(2)根据对称关系,复制π/2~π区间的值;(3)将0~π区间各点根据求补即得π~2π区间的值。取多少采样点才能保证曲线的最小失真度呢?3.2.4常用DAC芯片的接口方法---DAC接口的应用采样点N1010010004096失真度%182.06.3×10-34.4×10-4表3.2采样点与失真度之间的关系采样点越多,失真度越小。采样点——1秒内的采样数,与采样频率成正比采样点能无限多么?3.2.4常用DAC芯片的接口方法---DAC接口的应用采样点N1010010004096失真度%182.06.3×10-34.4×10-4表3.2采样点与失真度之间的关系采样频率能无限大么?采样频率受到数据传送链中RAM、锁存器及DAC转换时间之和的影响。3.2.4常用DAC芯片的接口方法---DAC接口的应用若完成一次量化数据占用时间为250ns计算,假设要求正弦波失真度要优于0.1%。若取4096个采样点时,上限频率为采样点N1010010004096失真度%182.06.3×10-34.4×10-4表3.2采样点与失真度之间的关系fx

max=250ns×10-9×40961≈1000Hz当取128个采样点时,上限频率为但失真率达到2%。3.2.4常用DAC芯片的接口方法---DAC接口的应用fx

max=250ns×10-9×1281≈32KHz合理选择每个周期的采样点数是非常重要的!顺序地址发生器

RAM数据区

锁存器1

DAC1

DAC2

锁存器2CPU可程控频率源

EPROM波形存储表

键盘显示器

RS-232GPIB

地址锁存器循环寻址波形输出Vm1Vm2fK图3.16MDAC任意波形发生器原理框图3.2.4常用DAC芯片的接口方法---DAC接口的应用ADC(AnalogDigitalConverter)的功能是将输入模拟量转换为与其成比例的数字量的一种器件。这个模拟量泛指电压、电阻、电流、时间等参量,但在一般情况下,模拟量是指电压而言的。按工作原理,有比较式、积分式和压频转换式(电压—频率转换)3.3ADC接口技术ADC分类1.积分型2.逐次比较型3.压频转换式4.并行比较型/串并行比较型5.Σ-Δ调制型6.电容阵列逐次比较型3.3

ADC接口技术1.积分型

工作原理:将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。优点:简单电路就能获得高分辨率缺点:由于转换精度依赖于积分时间,因此转换速率极低。初期的单片AD转换器大多采用积分型,现在逐次比较型已逐步成为主流。3.3

ADC接口技术2.逐次比较型工作原理:由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。优点:速度较高、功耗低,在低分辩率(<12位(时价格便宜,但高精度(>12位)时价格很高。

3.3

ADC接口技术3.压频转换式工作原理:通过间接转换方式实现模数转换。首先将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。理论上讲这种AD的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度。优点是分辩率高、功耗低、价格低,但是需要外部计数电路共同完成AD转换。3.3

ADC接口技术3.3ADC接口技术1.输入端的连接方式(1)单端输入(2)差动输入(有利于克服共模干扰)输入信号分为单极性输入和双极性输入。2.输出端的连接方式(1)具有可控的三态门——输出线可与CPU的数据总线直接相连,利用CPU的读信号控制三态门。(2)不具有三态门——输出线必须经过输入缓冲器与CPU的数据总线相连。3.启动转换信号的分类(1)电平形式——转换过程中必须保持电平如果转换过程中撤掉电平信号,则转换结束,结果发生错误。(2)脉冲形式4.转换结束信号(1)E0C=1,

ADC完成,用于通知主机读取数据。(2)EOC可作为CPU的查询信号;(3)EOC也可作为一种中断信号;3.3ADC接口技术5.读取数据

(1)由于一次数据的转换时间是有限的,因此可采用软件延时等待后直接读取;例如若转换时间为10us,则延时10us以上就可以读取数据。(2)中断程序中读取;(3)查询EOC,当EOC=1时,方读取数据。3.3ADC接口技术(a)原理电路VVitVdtOO计数脉冲开始结束(b)工作波形图3.17阶梯波比较式ADC工作原理3.3.1比较式ADC接口计数器DAC+-ViVdVc&+-D/AP1T080C51VxVsVINVs>Vx

Vs<Vx10T0=假设FFH对应模拟量输入255V,设实际模拟量输入为80.5V,求转换后的数字量。图3.18软件ADC的接口3.3.1比较式ADC接口测试T0为0,则保留当前测试位Dx=1;反之,当T0为1,则设置当前测试位Dx为0+-D/AP1T080C51VxVsVIN01000000B(64V)10000000B(128V)01100000B(96V)01010000B(80V)01011000B(88V)01010100B(84V)01010010B(82V)01010001B(81V)>>>>>><<D7=0D6=1D5=0D4=1D3=0D2=0D0=0D1=001010000B(80V)VsVx=80.5V图3.18软件ADC的接口3.3.1比较式ADC接口3.3ADC接口技术——ADC0809芯片多路转换开关ADDAADDBADDCIN0IN1IN7A/D转换ADC0809为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。1.结构一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器。3.3ADC接口技术——ADC0809芯片多路转换开关ADDAADDBADDCIN0IN1IN7A/D转换2.引脚8路模拟量输入信号端:

IN0~IN78位数字量输出信号端:

D0~D7通道选择地址信号输入端:

ADDA、ADDB、ADDCCLK:时钟输入。

3.3ADC接口技术——ADC0809芯片2.引脚CLK:时钟输入。

每通道转换需66-73个时钟周期,当fclk=640KHz时,一次需要时间考虑到ALE引脚自动在每个机器周期发一个脉冲,

fOSC/12(如果单片机主频为12MHZ,则输出1MHZ).所以通常将ALE引入D锁存器进行二分频得到500KHz图3.20ADC0809原理结构图CBA=通道号0~73.3ADC接口技术——ADC0809芯片图3.20ADC0809原理结构图当ALE=1时,CBA被送入地址锁存器,从而选中某个通道3.3ADC接口技术——ADC0809芯片ADC0809原理结构图及通道选择3.3ADC接口技术——ADC0809芯片(1)IN7~IN0:模拟量输入通道。(2)ADDA/ADDB/ADDC:模拟通道地址线。(3)ALE:地址锁存信号。(4)START:转换启动信号(5)D7~D0:数据输出线3.3ADC接口技术——ADC0809芯片(6)OE:输出允许信号。(7)CLK:时钟信号。(8)EOC:转换结束信号。(9)VCC:+5V电源。(10)Vref:参考电压。3.3ADC接口技术——ADC0809芯片地址锁存器ALE通道地址ADD稳定模拟输入IN启动START转换结束EOC输出允许OE输出数据DATA10us图3.21ADC0809的工作时序不能在启动转换后,立刻检查EOC判断是否结束,否则会出现错误。3.3ADC接口技术——ADC0809芯片地址锁存器ALE通道地址ADD稳定模拟输入IN启动START转换结束EOC输出允许OE输出数据DATA10us图3.21ADC0809的工作时序如果将EOC和START相连,则一个启动脉冲就可进行连续的转换。OE=“1”时,三态门通,转换结果送入数据总线,为“0”则门截止。3.3ADC接口技术——ADC0809芯片判断转换是否结束,并读取转换结果方法有三:1.查询EOC是否等于1

如P1.0=EOC,如下程序:

loop:

jnbP1.0,loop

mova,P0…3.3ADC接口技术——ADC0809芯片2.软件延时100us以上由于AD转换一次至少需要100us的时间,可以延时100us之后,认为一次转换已经结束,直接从数据总线上读取转换结果。如程序:

MOVX@DPTR,A;启动一次AD转换

ACALLDELAY100us

MOVA,P0……DELAY100us:……3.3ADC接口技术——ADC0809芯片3.中断的应用利用80C51内部中断源,由于INT1/INT0是低电平有效,所以由EOC出来的电平必须外加反相器,才可与INT1/INT0相连。OESTARTALEDB0~DB7ADDAADDBADDCCLOCKEOCIN0~IN70809P2.7P0.0~P0.7ALEINT1WRRDP0.0P0.1P0.2或非门向端口地址7FFFH分别写入00H~07H,即可启动模拟量输入通道0~7进行A/D转换。03.3ADC接口技术——ADC0809芯片启动A/D转换只需使用1条MOVX指令。在此之前,要将P2.7清0并将末3位与所选择的通道号相对应的口地址送入数据指针DPTR中。例如当ADDA、ADDB、ADDC分别与P0.0、P0.1、P0.2相连时,启动IN7的A/D转换指令如下:

3.3ADC接口技术——ADC0809芯片例如当ADDA、ADDB、ADDC分别与P0.0、P0.1、P0.2相连时,启动IN7的A/D转换指令如下:

MOVDPTR,#7FFFH;送入0809的口地址

MOVA,#07H;P0.2-P0.0=111,选择IN7通道

MOVX@DPRT,A;启动A/D转换

3.3ADC接口技术——ADC0809芯片或者是MOVDPTR,#7F07H;IN7的端口的地址为7F07H

MOVX@DPTR,A;此处A与AD转换无关。采用中断的方式对8路模拟输入信号进行A/D转换并把转换结果存入内部数据存储器。设数据存储器的首地址为30H,程序如下:3.3ADC接口技术——ADC0809芯片数据区首地址模拟通道数开始边沿触发方式指向0809端口从通道0开始转换启动一次转换等待中断打开中断主程序流程图关中断送内存修改数据区地址修改通道号启动下一次转换读转换结果是否8路转换完毕?中断返回中断子程序流程图

ORG0000HAJMPMAINORG0013HAJMPBINT1MAIN:MOVR0,#30HMOVR4,#08HMOVR2,#00HSETBEASETBEX1SETBIT1

数据区首地址模拟通道数开始边沿触发方式指向0809端口从通道0开始转换启动一次转换等待中断打开中断MOVDPTR,#7FFFHMOVA,R2MOVX@DPTR,AHERE:SJMPHERE数据区首地址模拟通道数开始边沿触发方式指向0809端口从通道0开始转换启动一次转换等待中断打开中断BINT1:MOVXA,@DPTRMOV@R0,AINCR0INCR2MOVA,R2MOVX@DPTR,ADJNZR4,LOOPCLREX1LOOP:RETI3.3ADC接口技术——ADC0809芯片关中断送内存修改数据区地址修改通道号启动下一次转换读转换结果是否8路转换完毕?中断返回1.AD574主要性能(1)逐次逼近ADC,可选择工作于12位或8位。(2)转换后的数据有两种读出方式:12位一次读出;8位、4位两次读出。(3)具有可控三态输出缓冲器,TTL电平。(4)非线性误差:AD574AJ为±1LSB,AD574AK为±1/2LSB。3.3ADC接口技术——AD5741.AD574主要性能(5)转换时间:最大转换时间为25us(中档速度)(6)输入模拟信号:单极性时,范围为0V~+10V和0V~+20V,从不同引脚输入。双极性输入时,范围为0V~±5V和0V~±10V,从不同引脚输入。3.3ADC接口技术——AD574(7)需三组电源:+5V、VCC(+12V~+15V)、VEE(-12V~-15V)。由于转换精度高,所提供电源必须有良好的稳定性,并进行充分滤波,以防止高频噪声的干扰。(8)低功耗:典型功耗为390mW。(9)时钟电路:内部有,无需外接。3.3ADC接口技术——AD5741.AD574主要性能A0引脚为字节选择控制引脚。两种方式,一是启动12位或8位转换,12位转换的时间为25us,8位转换的时间为16us。二是输出为12位或8位。数据模式输出选择。当此引脚为高电平时,输出数据为并行12位。为低电平时,与A0引脚配合,把12位数据分两次输出片选信号读/转换选择信号片选信号DB0~DB11为12位数字输出线。DB11为高位,DB0为低位,由控制逻辑决定输出为数据或高阻状态。3.3ADC接口技术——AD574内部10V基准电压输出基准电压输入,只有由此引脚把REFOUT引脚引入到其内部DAC,才能进行正常的AD转换双极性补偿。把此引脚适当连接,可实现单极性或双极性输入20V量程模拟信号输入端状态信号,STS=1表示转换正在进行,STS=0表示转换结束3.3ADC接口技术——AD57410V量程模拟信号输入端表3-1AD574的转换方式和数据输出格式启动转换接地接地+5V读取转换数据3.3ADC接口技术——AD574

(a)启动与转换(b)转换结果输出图3-17AD574A控制时序图03.3ADC接口技术——AD574AD574A的单极性和双极性输入图3-18AD574A的单极性和双极性输入单极性输入电路当输入电压为VIN=0V~+10V时,应从引脚10VIN输入,当VIN=0V~+20V,应从20VIN引脚输入。输出数字量D为无符号二进制码,计算公式为:

D=4096VIN/VFS或:VIN=DVFS/4096

式中VIN为输入模拟量(V),VFS是满量程,如果从10VIN引脚输入,VFS=10V,1LSB=10/4096=24(mV);若信号从20VIN

引脚输入,VFS=20V,1LSB=20/4096=49(mV)。

3.3ADC接口技术——AD574AD574A的单极性和双极性输入:图3-18AD574A的单极性和双极性输入3.3ADC接口技术——AD574双极性输入电路R1用于调整双极性输入电路的零点。如果输入信号VIN在-5V~+5V之间,应从10VIN引脚输入;当VIN在-10V~+10V之间,应从20VIN引脚输入。双极性输入时输出数字量D与输入模拟电压VIN之间的关系:

D=2048(1+2VIN/VFS)或:VIN=(D/2048-1)VFS/2

式中VFS的定义与单极性输入情况下对VFS的定义相同。

AD574A的单极性和双极性输入:图3-18AD574A的单极性和双极性输入3.3ADC接口技术——AD574双极性输入电路VIN=(D/2048-1)VFS/2由上式求出的数字量D是12位偏移二进制码。把D的最高位求反便得到补码。补码对应模拟量输入的符号和大小。同样,从AD574A读到的的数字量D也是偏移二进制码。例如,当模拟信号从10VIN引脚输入,则VFS=10V,若读得D=FFFH,即111111111111B=4095,代入式中可求得VIN=4.9976V。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0RDWREAD0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7R/CA0CS12/8STSCEDB3DB2DB1DB0DB11DB10DB9DB8DB7DB6DB5DB4VLVCCVEE20VINBIPOFF10VINREFOUTREFINAGDG+5V+15V-15V±5V±10V80C51P0.7=0,选中AD57474LS373P1.0=1,正转换P1.0=0,转换结束输出数据为8位或者低4位形式3.3ADC接口技术——AD574P0.0=0/1,启动转换/读取数据P0.1=0/1,12位/8位AD574编程特点:1.CE=1,CS=0,R/C=0方启动转换;2.转换开始后,STS=1;3.转换结束后,STS=0;4.采用中断或者查询法读取转换结果;5.单片机分两次读取转换结果:先读高8位(CE=1,12/8=0,R/C=1,A0=0),再读低4位(CE=1,12/8=0,R/C=1,A0=1);3.3ADC接口技术——AD574AD574转换程序段如下:1.启动AD574转换;2.置P1.0为输入方式,检测P1.0,等待转换结束;3.置R/C为1,设置为读取数据状态;4.读取高8位;5.使R/C、A0为1(设置为读取低位数据状态)6.读取低4位。3.3ADC接口技术——AD574P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0RDWREAD0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7R/CA0CS12/8STSCEDB3DB2DB1DB0DB11DB10DB9DB8DB7DB6DB5DB4VLVCCVEE20VINBIPOFF10VINREFOUTREFINAGDG+5V+15V-15V±5V±10V80C51第一步:进行12位数据转换,令R/C=0,A0=0,CS=0,其他视具体情况确定第二步:设定P1.0为输入口,用于启动转换第三步:转换结束后,令R/C=1第四步:读取高8位数据,即令A0=0第五步:读取低4位数据,即令A0=13.3ADC接口技术——AD574查询法设计AD574的程序:AD574:MOVDPTR,#××00H;送端口地址入DPTRMOVX@DPTR,A;启动AD574SETBP1.0;置P1.0为输入方式LOOP:JBP1.0,LOOP;检测P1.0口

INCDPTR;令R/C=1,读取高8位数据

MOVXA,@DPTR;读取高8位数据

MOV41H,A;高8位内容存入41H单元

INCDPTR;

INCDPTR;使R/C=1、A0=1,即读取低4位

令P0.1P0.0=01,即读取高8位令P0.1P0.0=11,即读取低4位3.3ADC接口技术——AD574令P0.1P0.0=00,即启动12位转换查询法设计AD574的程序(续上页):

INCDPTR;

INCDPTR;使R/C=1、A0=1,即读取低4位

MOVXA,@DPTR;读取低4位

MOV40H,A;将低4位内容存入40H单元

......

上述程序是按查询方式设计,也可按中断方式设计中断服务程序。3.3ADC接口技术——AD574特点:12位高速ADC芯片转换速度3us由混合电路组成,其内部集成有时钟电路、高精度电压源、12位的ADC电路和比较器电路。输入电压范围为±5V、±10V、0~10V和0~20V无需外接元件即可实现A/D转换。没有三态输出锁存器。3.3ADC接口技术——AD578图3-19AD578引脚排列3.3ADC接口技术——AD5783.3ADC接口技术——AD578......B1B2B11B12STARTCLKEOCSO......图3.29AD578的工作时序3.3.2积分式ADC接口有些智能化测量控制仪表,要求能在工业现场使用。由于现场存在很强的干扰信号,这时可以考虑使用积分式ADC。3.3ADC接口技术——积分式3.3ADC接口技术——积分式1、积分式ADC工作原理图3-20积分式ADC原理电路工作过程分为三个阶段:1)准备期开关S1、S2、S3断开,S4接通,积分电容C被短路,输出为02)采样期(定时积分阶段)开关S2、S3、S4断开,S1闭合,积分器对输入模拟电压Vi进行积分,积分时间固定为T1.在采样期结束的t2时刻,积分器的输出电压为:其中:为被测模拟电压在T1时间内的平均值。3)比较期(定值积分阶段)从t2时刻开始,开关S1、S2、S4断开,S3闭合,将与被测电压相反的标准电压-Er输入到积分器。当积分器的输出回到0时,比较器的输出发生负跳变。同理,当输入为负时,将相反电压+Er接入到积分器。此时有:式中:T2=t3-t2将带入得:3.3ADC接口技术——积分式在T2周期内对一个周期为τ的时钟脉冲进行计数,结论:N正比于输入模拟电压值,实现了AD转换。3.3ADC接口技术——积分式+Er定时积分阶段的曲线斜率与输入模拟电压大小成正比;定值积分阶段,由于积分对象为参考电压,所以每一次定值积分的曲线斜率都是一样的,不同的是定值积分的时间不同。如果应用定时器对定值积分的时间进行定时,就可得到定时时间与输入模拟量之间的关系。-VittUAUB定时积分定值积分②①t1t2t32.ICL7135ICL7135是一种常用的4位半BCD码双积分型单片集成ADC芯片,其分辨率相当于14位二进制数,转换精度高,误差为±1LSB。能在单极性参考电压下对双极性输入模拟电压进行A/D转换模拟输入电压范围为0~±1.9999V输出BCD码范围00000~19999芯片采用自动校零技术,可保证零点在常温下的长期稳定性模拟输入可以是差动信号,输入阻抗极高。3.3ADC接口技术——积分式——ICL71353.3ADC接口技术——积分式——ICL7135图3-22ICL7135的引脚排列图INLO、INHI:模拟电压差分输入端。输入电压应在放大器共模电压范围内,即从低于正电源5V到高于负电源1V。单端输入时,通常INLO与模拟地连在一起。3.3ADC接口技术——积分式——ICL7135VREF:基准电压端,其值为Vin/2,一般取1V。VREF的稳定性对A/D转换精度有很大影响,应当采用高精度稳压源。3.3ADC接口技术——积分式——ICL7135INTOUT、AZIN、BUFOUT:分别为积分器的输出端、自动校零端和缓冲放大器输出端。三个引脚分别用来外接积分电阻、电容以及校零电阻。积分电阻Rint的计算公式:Rint=满度电压/20μA积分电容计算公式:

Cint=(10000×(1/fosc)×20μA)/

积分器输出摆幅一般输出摆幅选±4V。校零电容可取1μF。3.3ADC接口技术——积分式——ICL7135外接基准电容输入端。电容值可取1μF。3.3ADC接口技术——积分式——ICL7135时钟输入端。工作于双极性情况下,时钟最高频率为125kHz,这时转换速率为3/s。工作于单极性情况下,时钟频率可以增加到1MHz,这时转换速率为25次/s。3.3ADC接口技术——积分式——ICL7135A/D转换启动控制引脚。高电平:芯片连续自动转换,每隔40002个时钟周期完成一次A/D转换。低电平,转换结束后保持转换结果,若输入一个大于300ns的正脉冲,启动新一次转换。3.3ADC接口技术——积分式——ICL7135输出状态信号引脚。输出高电平时表示A/D转换正在进行输出低电平表示转换结束。3.3ADC接口技术——积分式——ICL7135选通脉冲输出端。脉冲宽度为时钟脉冲的1/2。A/D转换结束后,该引脚输出5个负脉冲,分别选通高位到低位的BCD码输出。也可以作为中断申请信号来使用。3.3ADC接口技术——积分式——ICL7135极性输出引脚。输入信号为正时,POL输出为高电平;输入信号为负时,POL输出为低电平。3.3ADC接口技术——积分式——ICL7135

OVERRANGE:为过量程标志输入端。当输入信号超过转换计数器范围时(19999)时,该端输出高电平。UNDERRANGE:欠量程标志输出端。当输入信号小于量程的9%(1800)时,该端输出高电平。3.3ADC接口技术——积分式——ICL7135BCD码数据输出线。其中B8为最高位,B1为最低位。3.3ADC接口技术——积分式——ICL7135ICL7135输出一个完整的数据包括数据位(万千百十个)以及极性(POL)欠压(UnderRange)过压(OverRange)3.3ADC接口技术——积分式——ICL71353.3ADC接口技术——积分式---ICL7135BUSY万D5千D4百D3十D2个D1STB万千百十个万千百十个图3.33ICL7135的输出时序当D5=1时表明一次有效的转换结果。ICL7135的A/D转换式连续、自动进行的P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.7ALEINT1RDWRPC0AD0AD1AD2AD3AD4AD5AD6AD7IO/MCEALEWRRDTIMEERIN815580C51STPOLOVERUNDERD5B8B4B2B1D1D2D3D4CLKINV-VREFAGNDV+PC23B2B1BSEL3A2A1A3Y2Y1Y74LS157PA3PA2PA1PA0PA4PA5PA6PA7TOUT-5V1V+5VINTOUTCREF-CREF+INHIINLODGNDR/HICL71350.47uF0.1uF100欧100欧1uF100欧0.1uF5.1K3.3ADC接口技术——积分式——ICL7135P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.7ALEINT1RDWRPC0AD0AD1AD2AD3AD4AD5AD6AD7IO/MCEALEWRRDTIMEERIN815580C51STPOLOVERUNDERD5B8B4B2B1D1D2D3D4CLKINV-VREFAGNDV+PC23B2B1BSEL3A2A1A3Y2Y1Y74LS157PA3PA2PA1PA0PA4PA5PA6PA7TOUT-5V1V+5VINTOUTCREF-CREF+INHIINLODGNDR/HICL71350.47uF0.1uF100欧100欧1uF100欧0.1uF5.1K3.3ADC接口技术——积分式——ICL7135P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.7ALEINT1RDWRPC0AD0AD1AD2AD3AD4AD5AD6AD7IO/MCEALEWRRDTIMEERIN815580C51STPOLOVERUNDERD5B8B4B2B1D1D2D3D4CLKINV-VREFAGNDV+PC23B2B1BSEL3A2A1A3Y2Y1Y74LS157PA3PA2PA1PA0PA4PA5PA6PA7TOUT-5V1V+5VINTOUTCREF-CREF+INHIINLODGNDR/HICL71350.47uF0.1uF100欧100欧1uF100欧0.1uF5.1K“0”“1”3.3ADC接口技术——积分式——ICL7135P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.7ALEINT1RDWRPC0AD0AD1AD2AD3AD4AD5AD6AD7IO/MCEALEWRRDTIMEERIN815580C51STPOLOVERUNDERD5B8B4B2B1D1D2D3D4CLKINV-VREFAGNDV+PC23B2B1BSEL3A2A1A3Y2Y1Y74LS157PA3PA2PA1PA0PA4PA5PA6PA7TOUT-5V1V+5VINTOUTCREF-CREF+INHIINLODGNDR/HICL71350.47uF0.1uF100欧100欧1uF100欧0.1uF5.1K当ICL7135完成一次A/D转换后,产生5个数据选通脉冲,分别将各位的BCD码结果和标志D1~D5打入8155的PA口3.3ADC接口技术——积分式——ICL7135由于ICL7135的A/D转换是自动进行的,完成一次A/D转换后,选通脉冲的产生与80C51中断的开放是不同步的,为了保证读出数据的完整性,单片机只对万位的中断请求作出响应,其他位的数据输入采用查询法。

3.3ADC接口技术——积分式——ICL7135中断设计思路:当D5=0(即D4~D1不全零)时,说明此时收到的数据无效,重新等待新的数据,中断返回。若D4~D1全为零,意味着D5=1,此时认为收到了一个有效的数据,开始接收万~个、及POL、OVER、UNDER数据。POLOVUND7D6D5D4D3D2D1D0××××万位20HD7D6D5D4D3D2D1D0千位百位21HD7D6D5D4D3D2D1D0十位个位22H3.3ADC接口技术——积分式——ICL7135开始8155初始化,置PA为选通输入方式,定时器为方波发生器置数据缓冲器地址指针初值,置长度计数器初值工作单元和中断系统初始化,置堆栈指针初值AD转换数据送到8155RAM接收到一次转换么?调用数据处理程序长度计数器减为0?(a)主程序NNYYMAIN:MOVDPTR,#7F04H;8155初始化MOVA,#10H;16分频MOVX@DPTR,AINCDPTRMOVA,#40H;输出连续方波MOVX@DPTR,AMOVDPTR,#7F00H;命令端口MOVA,#0D6H;A是选通口,允许中断,PC0中断请求,PC2数据选通,A输入,B输出。MOVX@DPTR,A

MOVSP,#60HMOV20H,#00H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论