模数和数模转换课件_第1页
模数和数模转换课件_第2页
模数和数模转换课件_第3页
模数和数模转换课件_第4页
模数和数模转换课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第十一章模数和数模转换在工业生产和自动控制领域,常常采用微机进行实时控制和数据处理。微机采集的外部信号和被控对象的参数通常是一些在时间和数值方面都是连续变化的模拟量,而微机通常只能接收和处理“0”、“1”这样的数字量,因此必须把这些模拟量转换成数字量,以便微机接收处理。微机处理的结果仍然是数字量,而大多数被控对象的执行机构不能直接接收数字量信号,所以必须将微机处理后的数字信号再转换为模拟信号,有时还需要功率放大,才能去控制和驱动执行机构,达到控制的目的。将模拟量转换为数字量的过程称为模/数(A/D)转换,完成这一转换功能的器件称为模/数转换器(简称ADC)。将数字量转换为模拟量的过程称为数/模(D/A)转换,完成这一转换功能的器件称为数/模转换器(简称DAC)。§11.1D/A转换器

D/A转换的基本功能是将一个用二进制表示的数字量转换成相应的模拟量。⒈分辨率(Resolution)

表示DAC对微小模拟信号的分辨能力,它是数字量的最低有效位(LSB)所对应的模拟值。

,n为二进制数的位数12n-1分辨率=一、D/A转换的主要技术指标可见,输入数字量位数越多,分辨率越高。所以,除上面公式外,在实际应用中,也常用字量的位数表示D/A转换器的分辨率。二、D/A转换基本原理

基本思想:由于构成数字代码的每一位都有一定的“权重”,因此为了将数字量转换成模拟量,就必须将每一位代码按其“权重”转换成相应的模拟量,然后再将代表各位的模拟量相加,即可得到与该数字量成正比的模拟量,这就是构成。n=4位数据:00000V11115V分辨率:5V/15=0.333V/每1个最低有效位n=8位数据:000000000V111111115V分辨率:5V/255=0.0196V/每1个最低有效位例如:010122+20=5×0.333V=1.67V数字量模拟量基本原理:

对于有权码,先将每位代码按其权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,从而实现了数字/模拟转换。0123456001010011100101110111D/A转换器DDD01n-1...vo输入输出vo/VD000ADC0832的内部结构:

DAC0832采用8位输入寄存器和8位DAC寄存器二次缓冲方式,这样可以在D/A输出的同时,送入下一个数据,以便提高转换速度。当输入寄存器的数据送入DAC寄存器后,D/A转换器便开始转换,这两个寄存器有两个锁存信号/LE1和/LE2,当它们为1时,数据能存入寄存器,当它们为0时,数据不能存入寄存器。

DI7DI0——D/A转换器的数字量输入引脚。其中DI0为最低位,DI7为最高位。

CS——片选信号输入端,低电平有效。

WR1——输入寄存器的写信号,低电平有效。

ILE——输入寄存器选通信号,高电平有效。XFER——从输入寄存器向DAC寄存器传送D/A转换数据的控制信号,低电平有效。

WR2——DAC寄存器的写信号,低电平有效。IOUT1——D/A转换器输出电流1,当输入全1时,输出电流最大,约为;当输入为全0时,输出电流最小,即为0。

IOUT2——D/A转换器输出电流2,它与IOUT1有如下关系:IOUT1+IOUT2=常数

D/A转换没有形式上的启动信号。实际上将数据写入第二级寄存器的控制信号就是D/A转换器的启动信号。另外,它也没有转换结束信号,D/A转换的过程很快,一般还不到一条指令的执行时间。ILE信号和CS、WR1共同控制选通输入寄存器。当CS、WR1均为低电平,而ILE为高电平时,LE1=0,输入数据被送至8位输入寄存器的输出端;当上述三个控制信号任一个无效时,LE1变高,输入寄存器将数据锁存,输出端呈保持状态。当XFER和WR2同时有效时,输入寄存器的数据装入DAC寄存器,并同时启动一次D/A转换。ILE=1,/CS=0,/WR1=0时,/LE1=1,否则,/LE1=0;/WR2=0,/XFER=0时,/LE2=1,否则,/LE2=0。二、DAC0832的工作方式

DAC0832内部有两个寄存器,能实现三种工作方式:双缓冲、单缓冲和直通方式。

DAC0832内部两个寄存器的两个锁存信号LE1和LE2不一定同时有效,它们可以分开控制,也可以同时有效。①当它们同时有效时,数据线上的数据D0~D7经输入寄存器立即进入DAC寄存器开始转换这种方式称为单缓冲方式;②对LE1和LE2分步控制称为双缓冲方式;③当LE1和LE2始终为有效时称为直通方式。1)如果要求图示系统的VOUT端输出方波,可编程如下:

MOV DX,200H ;端口地址200H送DXLOOP1: MOV AL,00H OUT DX,AL ;将数据0送DAC0832进行转换

CALL DELAY ;调用延时子程序

MOV AL,0FFH OUT DX,AL ;将数据FFH送DAC0832进行转换

CALL DELAY JMP LOOP12)如果要求图示系统的VOUT端输出锯齿波,可编程如下:START:MOVAL,0FFHAGAIN:INCALOUT200H,ALCALLDELAY;JMPAGAIN阶梯的宽度由延时时间决定2、单缓冲工作方式是指只有一个寄存器受到控制。这时将另一个寄存器的有关控制信号预先设置成有效,使之开通,或者将两个寄存器的控制信号连在一起,两个寄存器作为一个来使用。例:假设地址译码为310H,将1000H单元中的数据送DAC0832转换输出。电路如图:

DAC0832D7~D0/WRILEREFIOUT1IOUT2+-AGNDV0/CS/WR1/WR2/XFER+5V译码器A15~A0M/IOMOV BX,1000HMOV AL,[BX]MOV DX,310HOUT DX,AL单缓的接线方式不是唯一的,但是它必须满足二个条件:①必须受CPU的控制;②当CPU执行OUT指令时/CS、ILE、/XFER、/WR1、/WR2必须同时有效。不执行OUT指令时有个别控制信号有效是可以的。程序如下:

DAC0832D7~D0/WRILEREFIOUT1IOUT2+-AGNDV0/CS/WR1/WR2/XFER+5V译码器A15~A0M/IOMOVDX,320H;输入寄存器的地址为320HMOVAL,DATA;要转换的数为DATAOUTDX,ALINCDX;DAC寄存器的地址是321HOUTDX,AL;启动D/A转换例:三、电压输出电路的连接

DAC0832以电流形式输出转换结果,若要得到电压形式的输出,需要外加I/V转换电路,常采用运算放大器实现I/V转换。DAC0832的电压输出电路:(a)单极性输出;(b)双极性输出§11.3A/D转换

A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机或数字系统进行处理、存储、控制和显示。在工业控制和数据采集及其它领域中,A/D转换器是不可缺少的重要组成部分。一、转换原理

A/D转换器是将模拟量转换成数字量,实现A/D转换的方法有多种,常用的有计数法、双积分法和逐次逼近法。二、技术参数⒈转换精度⒉转换率转换速度、转换时间⒊分辨率⒋量程所能转换的电压范围§11.4ADC0809一、引脚及结构ADC0809是逐位逼近型8通道、8位A/D转换芯片,CMOS工艺制造,双列直插式28引脚封装。12345678910111213142927262524232221201918171615ADC0809IN3IN4IN5IN6IN7STARTEOCD3OECLKVCCREF(+)GNDD1IN2IN1IN0ABCALED7D6D5D4D0REF(-)D2ADC0809片内有8路模拟开关,可输入8个模拟量,单极性输入,量程为0+5V。典型的转换速度为100s。片内带有三态输出缓冲器,可直接与CPU总线接口。其性能价格比有明显的优势,是目前广泛采用的芯片之一,可应用于对精度和采样速度要求不高的数据采集场合或一般的工业控制领域。

ADC0809结构框图:1)内部结构与转换原理如图所示,ADC0809内部由三部分组成:8路模拟量选通输入部分,8位A/D转换器和三态数据输出锁存器。

ADC0809允许连接8路模拟信号(IN7IN0),由8路模拟开关选通其中一路信号输入并进行A/D转换,模拟开关受通道地址锁存和译码电路的控制。当地址锁存信号ALE有效时,3位地址ADDC、ADDB和ADDA(通常与地址总线A2、A1和A0引脚相连)进入地址锁存器,经译码后使8路模拟开关选通某一路模拟信号。输入的地址信息与所选通的模拟通道之间存在一一对应的关系。如当ADDC、ADDB、ADDA=000时,IN0选通;ADDC、ADDB、ADDA=001时,IN1选通;…;ADDC、ADDB、ADDA=111时,IN7选通。2)引脚定义

IN0IN7——8路模拟量输入端。

ADDC、ADDB和ADDA——地址输入端,以选通IN7IN08路中的某一路信号。

ALE——地址锁存允许信号,有效时将ADDC、ADDB和ADDA锁存。

CLOCK——外部时钟输入端。允许范围为101280kHz。时钟频率越低,转换速度就越慢。

START——A/D转换启动信号输入端。有效信号为一正脉冲。在脉冲的上升沿,A/D转换器内部寄存器均被清零,在其下降沿开始A/D转换。

EOC——A/D转换结束信号。在START信号上升沿之后不久,EOC变为低电平。当A/D转换结束时,EOC立即输出一正阶跃信号,可用来作为A/D转换结束的查询信号或中断请求信号。

OE——输出允许信号。当OE输入高电平信号时,三态输出锁存器将A/D转换结果输出到数据量输出端D7D0。D7D0——数字量输出端。D0为最低有效位(LSB),D7为最高有效位(MSB)。VCC与GND——电源电压输入端及地线。

VREF(+)与VREF(-)——正负基准电压输入端。中心值为(VREF(+)+VREF(−))/2(应接近于VCC/2),其偏差不应该超过0.1V。正负基准电压的典型值分别为+5V和0V。

ADC0809的数字量输出值D(十进制数)与模拟量输入值VIN之间的关系如下:通常VREF(−)=0V,所以当VREF(+)=5V,VREF(-)=0V,输入的单极性模拟量从0V到4.98V变化时,对应的输出数字量在0到255(00HFFH)之间变化。数据64个CLKSTARTALEEOCOED7~D0CBA二、ADC0809工作时序

转换过程:①选择当前转换的通道,将CBA选择的通道地址(即通道编码)送地址锁存器;②通过执行OUT指令在ALE,START上产生一个正脉冲,ALE脉冲的上升沿锁存通道编码,START脉冲的下降沿启动A/D转换;③A/D转换开始后,EOC变低,经过64个时钟周期后,转换结束,EOC变高;④转换结束后,通过执行IN指令在OE脚上产生一个正脉冲,打开输出缓冲器的三态门,数据送入D7~D0,读入转换数据。说明:使用时START和ALE可以用同一个信号控制;若START与EOC相连接,可实现连续转换;EOC的上升沿可作为中断请求信号。三、ADC0809与微处理器的接口1、直接连接由于ADC0809芯片内部集成了三态数据锁存器,其数据输出线可以直接与计算机的数据总线相连,因此,设计ADC0809与计算机的接口主要是对模拟通道的选择、转换启动的控制以及读取转换结果的控制等方面的设计。可以用中断方式,也可以用查询方式,还可以用无条件传送方式将转换结果送CPU。无条件传送即启动转换后等待100s(ADC0809的转换时间),然后直接读取转换结果。无条件传送方式接口电路简单。例:用ADC0809对8路模拟信号进行循环采样,各采集100个数据分别存放在数据段内的8个数据区中,采用无条件传送方式。接口电路如图所示:设图中通道0~7的地址依次为380H387H,则无条件传送的采集程序如下:

DATA SEGMENT COUNT EQU100 BUFF DB COUNT×8DUP(?) DATA ENDS STACKSEGMENT stack DW 200DUP(?) STACK ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV BX,OFFSETBUFFMOV CX,COUNTOUTL:PUSH BX MOV DX,380H ;指向通道0INLOP:OUT DX,AL ;锁存模拟通道地址,启动转换

MOV AX,50000 ;延时,等待转换结束WT:DEC AX JNZ WT IN AL,DX ;读取转换结果

MOV [BX],AL ADD BX,COUNT ;指向下一个通道的存放地址

INC DX ;指向下一个通道的地址

CMP DX,388H ;8个通道都采集了一遍吗?

JB INLOP POP BX ;弹出0通道的存放地址

INC BX ;指向0通道的下一个存放地址

LOOP OUTL MOV AH,4CH INT 21HCODEENDS END STARTADC0809通过8255A的接口原理图译码Y1Y0IOWRIORDD7~D0A0A1A7~A2CLK8088总线8255APB4PB2PB1PB0PAPC7WRRDDBA0A1CS+5VCLOCKALESTARTADDCADDBADDAEOCOEVccVREF+VREF-GNDADC0809IN7IN0D7~D08分频Y0地址为80H~83HY1地址为84H~87H2、通过并行接口芯片同CPU连接例:对ADC0809的IN0至IN7巡回进行采样一次,并将采样的数据存放在以DATA开始的内存单元中。分析:8255A有三个8位的并行口,可用PB口输出0809的通道选择编码和控制ADC的启动,PC口输入ADC的状态。PA口作为他用。MOVAL,98H ;8255方式0,PA口输入,OUT83H,AL ;PB口输出,PC口高四位输入MOVSI,OFFSETDATA;置内存首址MOVAX,0H;开关初始编码MOVCX,8第一步:程序初始化第二步:输出通道号,启动ADC。AGA:MOVAL,AH;输出开关编码

OUT81H,ALADDAL,10H;启动ADCOUT81H,ALSUBAL,10H;ALE、START正脉冲OUT81H,AL第三步:判ADC转换结束否?结束则读入数据,存入内存。否则再判。LOP:INAL,82H;检查EOCTESTAL,80HJZLOP;EOC=0,继续查询

INAL,84H;EOC=1,读入数据

MOV[SI],AL;存入内存第四步:修改循环变量,判测量完否?未完继续。INCSI;修改指针INCAH;修改开关编码LOOPAGA;未完继续接口综合大串联例程:有8路模拟信号,要求在按下k0键之后,每个通道以1KHz的采样频率采样数据,采样10ms时间。按下k1键之后,求出通道0采集到的数据的平均值,并将平均值的十六进制结果显示到8255的LED指示灯上面。按下k2键之后,将求出的平均值以9600bps,2位停止位,1位起始位,8位数据位,无奇偶校验的串行通信方式传送到另一台PC。按下k3键之后,输出一个赋值1.96v峰峰值,频率为100Hz的锯齿波。中断向量号从30H号开始安排。8MHz时钟源和4分频器由外电路提供。解答:1、首先给各个芯片分配端口地址,如74ls138输出脚所示。2、系统要求判断按键执行相应的功能程序,所以主程序要实时检测按键的内容,得到按键后进行相应的散转,然后调用各个功能函数。键盘扫描接到8255的PA口,所以令8255的PA口工作于方式0输入方式。3、AD的采集要求每个通道是1KHz,8个通道都要采集,必须保证AD的采集频率至少是1KHz×8=8KHz。该信号可由8253提供,由于系统外部有8MHz的时钟和4分频器电路,可将该频率4分频后得到2MHz的时钟信号做为8253的时钟源。8253分频后的8KHz的信号可以触发IR1中断,在IR1中断服务程序启动AD转换。AD采集结束信号用于触发IR2中断,IR2中断服务程序读取AD转换结果,并保存于内存当中。4、对于平均值计算可以采用累加之后进行除法运算得到。如果有k1键按下,可以将8255PB口设置为方式0输出,并将求到平均值输出到PB口即可。如果有k2键按下,首先设置8251工作于9600bps,2位停止位,1位起始位,8位数据位,无奇偶校验的方式,波特系数为16,并将平均值输出到发送缓冲器,将数据以串行通信形式,采用RS232接口,传送到令一台PC。5、DAC0832在相应参考电压下,要发出峰峰值为1.96V的100Hz的锯齿波,如果每次DA输出数据量步进为1,从0开始要累加100次

温馨提示

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

评论

0/150

提交评论