第10章数模转换与模数转换接口及其应用课件_第1页
第10章数模转换与模数转换接口及其应用课件_第2页
第10章数模转换与模数转换接口及其应用课件_第3页
第10章数模转换与模数转换接口及其应用课件_第4页
第10章数模转换与模数转换接口及其应用课件_第5页
已阅读5页,还剩205页未读 继续免费阅读

下载本文档

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

文档简介

概述A/D和D/A转换器是把微型计算机的应用领域扩展到检测和过程控制的必要装置,是把计算机和生产过程、科学实验过程联系起来的重要桥梁。下图给出了A/D、D/A转换器在微机检测和控制系统中的应用实例框图。概述A/D和D/A转换器是把微型计算机的应第10章数模转换与模数转换接口及其应用课件10.1D/A转换器及其接口技术一、D/A转换器及其接口

D/A转换器的功能是把二进制数字量电信号转换为与其数值成正比的模拟量电信号。在D/A参数中一个最重要的参数就是分辨率,它是指输入数字量发生单位数码变化时,所对应输出模拟量(电压或电流)的变化量。10.1D/A转换器及其接口技术一、D/A转换器及其接口

分辨率是指输入数字量最低有效位为1时,对应输出可分辨的电压变化量ΔU与最大输出电压Um之比,即分辨率=1/(2-1)

n分辨率是指输入数字量最低有效位为1时,对应最小阶梯电压=参考电压*分辨率

=参考电压/(2n-1)最小阶梯电压=参考电压*分辨率第10章数模转换与模数转换接口及其应用课件第10章数模转换与模数转换接口及其应用课件

实现D/A转换器和微型计算机接口技术的关键是数据锁存问题。有些D/A转换器芯片本身带有锁存器,但也有些D/A从转换器芯片本身不带锁存器。此时一些并口芯片如8212,74LS273及可编程的并行I/O接口芯片8255A均可作为D/A转换的锁存器。第10章数模转换与模数转换接口及其应用课件第10章数模转换与模数转换接口及其应用课件数据CSWR输出8255数据输出WRADAD数据输出8255数据输出WRADAD二、并行8位D/A转换芯片AD558及其接口

1、AD558的内部结构框图二、并行8位D/A转换芯片AD558及其接口第10章数模转换与模数转换接口及其应用课件2、AD558与PC机的连接图

2、AD558与PC机的连接图CODE SEGMENT ASSUME CS:CODESTART: MOVCX,256

MOVAL,0

MOVDX,30CHLOOP1: OUTDX,AL ;输出AL内容

CALLDELAY ;延时

INCAL ;AL内容加1

LOOPLOOP1 ;循环256次

JMPSTART ;重新输出下一 ;个锯齿波CODEENDS

ENDSTARTCODE SEGMENTDAC0832逻辑结构框图DAC0832逻辑结构框图(1)双缓冲方式(LE1和LE2分别控制)(2)单缓冲方式(其中LE1和LE2有一个直通)(3)直通方式(LE1和LE2均为直通)注:在DAC实际连接中,要注意区分“模拟地”和“数字地”的连接,为了避免信号串扰,数字量部分只能连接到数字地,而模拟量部分只能连接到模拟地。DAC0832有三种工作方式:(1)双缓冲方式(LE1和LE2分别控制)DAC0832有三(3)设计①硬件设计根据上述分析,接口电路主要是提供并处理缓冲方式和写操作的5根信号线,故采用普通IC芯片就可以组成接口电路。图中,DAC0832工作在单缓冲方式,并且只对第1级锁存器的WR1进行了控制,而第2级锁存器的WR2固定接地,未进行控制。D7~D0IOWA9~A0AEN系统总线DI0~7WR1ILECSDAC0832译码器WR2XFERDGNDVREFRFBIO1IO2AGND+-AR+5VVoutDAC0832单缓冲方式连接+5V314H(3)设计①硬件设计D7~D0IOWA9~A0AEN②软件设计根据设计要求产生连续的锯齿波,可知本程序是一个循环结构,其程序流程图如图所示。②软件设计根据设计要求产生连续的锯齿波,可知本程序是一个循程序清单如下:SAWTOOTHPROCFARMOVAX,DATAMOVDS,AXMOVAL,00H;置AL=0LOP:MOVDX,314H;端口地址

OUTDX,AL;AL的值送DAC0832

MOVBL,AL;保存AL→BL

MOVAH,0BH;是否有键按下?

INT21HCMPAL,0FFHJESTOP;有,停止输出波形

MOVAL,BL;无,恢复AL的值

INCAL;AL加1

JMPLOP;继续循环输出波形STOP:MOVAX,4C00H;退出

INT21HSAWTOOTHENDP程序清单如下:SAWTOOTHPROCFAR输出三角波程序段如下:

MOVDX,314H;DAC0832的端口地址

MOVAL,0H;输出数据0TN1:OUTDX,AL

INCAL;输出数据加1

JNZTN1

MOVAL,0FFH;输出数据0FFHTN2:OUTDX,AL

DECAL;输出数据减1

JNZTN2

JMPTN1输出三角波程序段如下:(4)讨论①利用DAC产生锯齿波输出的方法是,将从0开始逐渐递增的数据送到DAC,直到FFH,再回到0。重复上述过程,就可得到周期性的锯齿波电压。实际上,从0到FFH,中间分为256个小台阶,但从宏观上看,是一个线性增长的电压直线。②DAC0832的3种缓冲方式,用在不同的场合。双缓冲方式用于需要多个不同模拟量同时输出的系统中;单缓冲与直通方式都用于单个模拟量输出的场合。单缓冲常用在采用普通IC芯片的DAC接口中,直通方式常用于采用可编程并行接口芯片的DAC接口中。(4)讨论①利用DAC产生锯齿波输出的方法是,将从0开始逐三、串行8位D/A转换器TLC5620第一级缓冲

第二级缓冲三、串行8位D/A转换器TLC5620第一级缓冲第二级缓数据写入方式

(LDAC更新DAC输出)

数据写入方式

(LOAD更新DAC输出)

数据写入方式(LDAC更新DAC输出)数据写入方式(LTLC5620与8255A的连接

TLC5620与8255A的连接

MOVCL,5 ;先把AX内容左移5位

SHLAX,CL MOVDX,AX ;DX为串行输出的数据,最高位为通道选择

MOVCX,11 ;循环11次DAC_PROC1: MOVAL,0 ;预置对DATA线的置位复位字

SHLDX,1 ;取串行输出位

ADCAL,0 ;把串行输出位送到置位复位字的第0位

OUT86H,AL ;把DATA线上串行输出位内容

MOVAL,00000010B ;发送CLK负脉冲

OUT86H,AL MOVAL,00000011B OUT86H,AL LOOPDAC_PROC1 ;循环

MOVAL,00000100B ;循环完毕,发LOAD负脉冲

OUT86H,AL

MOVAL,00000101B ;

OUT86H,AL

MOVAL,00000110B ;发LDAC负脉冲

OUT86H,AL

MOVAL,00000111B ;

OUT86H,AL MOVCL,5 ;先把AX内容左移5位主程序段: MOVAL,10010010B ;8255A初始化OUT86H,ALMOVAL,0FFH ;C口各位初始值全为1OUT84H,AL…… ;其它处理MOVCX,256 ;D/A通道B产生一锯齿波MOVAL,0 ;D/A初始数据为0MOVAH,00000010B ;选取通道B,最大输出电压为参考电压AGAIN:CALLDAC_PROC ;把AX里的内容送DACINCAL ;产生锯齿波的下一个数据CALLDELAY ;延迟LOOPAGAIN ;循环256次

……主程序段: MOVAL,10010010B ;8255A初四、12位D/A转换及接口四、12位D/A转换及接口例

DAC1210接口电路设计(1)要求通过DAC1210产生并输出50个方波,方波数据存放在内存缓冲区。(2)分析DAC1210的分辨率为12位,且内部有两个三态锁存器,用于分别对数据的高、低两个字节进行锁存,故数据线可与系统数据总线直接连接。但是,当它与8位微机系统连接时,数据要分两次传输。例DAC1210接口电路设计(1)要求8位输入锁存器4位输入锁存器12位DAC寄存器12位相乘型D/A转换器&&&LELELELSBMSBDI1115DI1016DI917DI818DI719DI620DI54DI45DI36DI27DI18DI09BYTE123/BYTE2CS1WR1

2XFER21WR2

2210VREF14IOUT213IOUT111RFB24Vcc3AGND24DGNDDAC1210内部结构8位输入4位输入12位DAC12位相乘型&&&LELELEL有两种数据对齐格式:

“右对齐”:从低位对齐(先送低,后送高)

“左对齐”:从高位对齐(先送高,后送低)特别注意:设置两个锁存器,分别锁存高字节和低字节。同时选通两个锁存器进行D/A转换。有两种数据对齐格式:12位DAC与CPU之间加两级锁存器(右对齐)PC扩展槽D0-7IOWANEA0-9BUF1D0-7Q0-7CBUF3D0-7Q0-7CBUF2D0-7Q0-7C12位DACD0-7D/AI01

D8-11I02译码器Y0Y1图10-512位DAC与CPU之间加两级锁存器12位DAC与CPU之间加两级锁存器(右对齐)PC扩展槽BU(3)设计①硬件设计接口电路如图所示。图中,DAC1210的12根数据线直接与系统的数据线相连,但系统数据线只有8位,故将DAC1210的低4位数据线连到了系统数据线的高4位上。这种连接方法称为“左对齐”方式。DAC1210的3个端口地址为316H(y0)、317H(y1)和318H(y2)。

(3)设计①硬件设计②软件设计根据设计要求产生连续50个方波输出,可知本例程序也是一个循环结构,其流程如图所示。②软件设计根据设计要求产生连续50个方波输出,可知本例程序程序清单如下:SSTACKSEGMENTDW256DUP(?)

SSTACKENDSDATASEGMENTBUFRDW50DUP(0000,0FFFH)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKSQUARE:MOVAX,DATAMOVDS,AXMOVAX,SSTACKMOVSS,AXMOVSI,OFFSETBUFRMOVCX,100程序清单如下:SSTACKSEGMENT

SEND:MOVBX,WORDPTR[SI]

MOVCL,4SHLBX,CL;使BX中12位数向左对齐

MOVDX,316H;DAC1210的第1个字节锁存器端口

MOVAL,BH;写入高8位

OUTDX,ALINCDX;DAC1210的第2个字节锁存器端口

MOVAL,BL;写入低4位

OUTDX,ALINCDX;DAC1210的转换器端口

OUTDX,AL;写入任意数据(假写)启动转换

CALLDELAY;延时使方波保持一定的宽度SEND:MOVBX,WORDPTR[SI]INCSI;缓冲区地址加2

INCSI

DECCX;循环次数减1

JNZSEND;循环次数未到,继续

MOVAX,AC00H;已到,退出

INT21HDELAYPROCNEAR;延时子程序

MOVBX,0FFFFHLOP:DECBXJNZLOPRETDELAYENDPCODEENDSENDSQUAREINCSI;缓冲区地址加210.2A/D转换器及其接口技术

分辨率指A/D转换器对输入模拟信号的分辨能力。通常用数字输出最低位(LSB)所对应的模拟输入的电平值表示。如A/D转换器的输出为12位二进制数,最大输入模拟信号为10V,则其分辨率为

分辨率=10/(2N

-1)≈10/2N≈2.44mV

10.2A/D转换器及其接口技术10.2A/D转换器及其接口技术

一、A/D转换原理常用的A/D有并行A/D、逐次逼近A/D、双积分A/D。10.2A/D转换器及其接口技术一、A/D转换原理1.计数斜波式A/D转换器1.计数斜波式A/D转换器DA8255比较器模拟输入DA8255比较器模拟输入2.逐次逼近式A/D转换器10000000D71000000D7D6100000D7D6D5D4D3D2D1D0DHPC02.逐次逼近式A/D转换器1000Ui=163mV的逐次比较过程Ui=163mV的逐次比较过程第10章数模转换与模数转换接口及其应用课件

3.双积分型A/D转换器

计数器3.双积分型A/D转换器计数器充电时间T1放电T2充电时间V0=Vi*T1/τ放电时间V0-VR*T2/τ=0T2=(T1/VR

)*Vi在实际测量中T1,VR固定充电时间T1放电T2充电时间V0=V

4.并行比较型A/D转换器第10章数模转换与模数转换接口及其应用课件类型逐位比较型双积分型并行比较型速度中慢快分辨率8-14位10-20位8-12位价格中低高类型逐位比较型双积分型并行比较型速度中慢快分辨率8-14位1二、A/D转换与微机接口技术原理1、

三态总线输入问题有的ADC芯片带有三态输出缓冲器,其控制端为OE(输出允许)。若不带三态缓冲器的ADC芯片(如AD570芯片)与微机接口,必须使用三态器件,如:8255A,74LS273等。2、

时间配合问题

A/D芯片一般有三个信号要求控制:启动转换信号(START),转换结束信号(EOC),允许输出信号(OE)。二、A/D转换与微机接口技术原理模拟输入允许输出OE数据输出启动信号Start转换结束Eoc模拟输入允许输出OEA/D转换器与CPU的连接1.ADC的启动信号:ADC的转换启动方式有脉冲启动和电平启动之分。前者要求在转换期间不变,而后者在转换开始后就可以撤消。转换启动信号有单个信号启动和由多个信号组合起来的复合信号启动之分。2.ADC的输入信号:ADC的模拟信号输入有多通道和单通道之分。3.ADC的输出信号:(1)A/D转换器的分辨率:当ADC的分辨率高于数据总线的宽度时,需要两次读取。(2)A/D转换器的三态输出锁存器:决定是否可直接挂在CPU的数据总线上。4.ADC的转换结束信号:可用于查询方式、中断方式、DMA方式的申请信号。A/D转换器与CPU的连接1.ADC的启动信号:ADC的A/D转换器接口的主要操作(1)进行通道选择对有多个模拟量输入通道的系统。(2)发转换启动信号由外部控制启动A/D转换。(3)

取回“转换结束”状态信号当转换结束后,ADC产生转换结束信号。(4)读取转换的数据用查询、中断或其它方法读取数据。(5)发采样和保持控制信号一般对高速信号的A/D转换。A/D转换器接口的主要操作(1)进行通道选择分析与设计A/D转换器接口的方法①ADC的模拟量输入是否是多通道? 是,则需选择通道号,应提供通道选择线;不是,则不作处理。②ADC的分辨率是否大于系统数据总线宽度? 是,则要分两次传输,故需增加锁存器,并提供锁存器选通信号;不是,则不处理。③ADC芯片内部是否有三态输出锁存器? 无,则数据线不能与DB直接连接,故需增加三态锁存器,并提供锁存允许信号;有,则不处理。④ADC的启动方式是脉冲触发还是电平触发? 是脉冲,则提供脉冲信号;是电平,则提供电平信号,并保持到转换结束。分析与设计A/D转换器接口的方法①ADC的模拟量输入是否是分析与设计A/D转换器接口的方法⑤A/D转换的数据采用哪种传输方式? 有无条件传输、查询方式、中断方式和DMA多种方式选择。⑥A/D转换的数据进行什么样的处理? 有显示、打印、生成文件存盘、远距离传输等多种处理。⑦ADC接口电路采用什么元器件组成? 有普通IC芯片、可编程并行口芯片、GAL器件等多种选择。前面4项是由接口对象ADC决定的(可从芯片手册中查到),用户无法改变,只能按照它的要求在设计中给予满足。后面3项是可以改变的,设计者应根据设计目标灵活选用。分析与设计A/D转换器接口的方法⑤A/D转换的数据采用哪种三、A/D转换与微机接口电路1、

延时等待法接口电路

三、A/D转换与微机接口电路PROC_ADC PROCFAR ;这是一个数据采集子程序

AGAIN: OUTY1,AL ;启动ADC

CALLDELAY ;延时

INAL,Y1 ;取数

MOV[BX],AL ;存入数组

INCBX ;数组指针加1

LOOPAGAIN ;循环

RET PROC_ADC ENDPPROC_ADC PROCFAR ;这是一个数据采集子程2、查询法接口电路

第10章数模转换与模数转换接口及其应用课件查询方式的数据采集程序框架(模块)①接口芯片初始化(当采用可编程并行口芯片作ADC接口时);②选择通道号(当采用多通道A/D转换芯片时);③启动转换;④查询转换结束状态;⑤读取数据;⑥数据传输到存储器;⑦在线数据处理(显示、打印、存盘等);⑧采集未完,继续启动转换;⑨已完,退出。查询方式的数据采集程序框架(模块)①接口芯片初始化(当采用例

查询方式的ADC接口电路设计(1)要求 利用ADC0804采集100个数据,采集的数据以查询方式传输到内存BUFR区。接口电路采用普通IC芯片组成。例查询方式的ADC接口电路设计(1)要求(2)分析

ADC0804是单个模拟量输入,故不提供通道选择信号;ADC0804的分辨率为8位,并具有三态输出锁存器,故可与系统数据总线直接相连;ADC0804的启动方式为脉冲启动,故需提供一个正脉冲信号,进行转换启动。 数据传输方式为查询方式,故需将转换结束状态信号作为查询的对象。(2)分析 ADC0804是单个模拟量输入,故不提供通道(3)设计①硬件设计。 由以上分析可知,本接口电路只需提供转换启动信号和提供读取转换结束状态信号的通路。而数据线不作处理,直接连接。为此,要设计端口地址译码电路,产生CS,并由CS和WR共同组成启动信号。同时,还要设置一个三态门,将转换结束信号INTR(INTR=0,表示转换结束)引到数据线的某一位(D7)上,以便CPU读取状态。(3)设计①硬件设计。(3)设计(3)设计②软件设计由于是单通道,且采用普通IC芯片组成接口电路,故在程序中未出现通道选择和初始化模块。参考程序清单如下:

STARTPEQU310H;转换启动端口

STATEPEQU311H;状态端口

DATAPEQU310H;数据端口

SSTACKSEGMENTDB256DUP(0)

SSTACKENDSDATASEGMENTBUFRDB100(0)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKBEGIN:MOVSI,OFFSETBUFR;缓冲区指针

MOVCX,100;采样次数

②软件设计由于是单通道,且采用普通IC芯片组成接口电路,故②软件设计START:MOVDX,STARTP;启动转换

MOVAL,00H;(可以是其他值)

OUTDX,AL;使CS和WR同时有效WAIT1:MOVDX,STATEP;查转换结束

INAL,DXANDAL,80H;查D7=0(INTR=0?)

JNZWAIT1;未结束,等待

MOVDX,DATAP;已结束,读数据

INAL,DXMOV[SI],AL;数据传输到BUFR区

INCSI;缓冲区地址加1

DECCX;采样次数减1

JNZSTART;未完,继续启动

MOVAX,4C00H;已完,退出

INT21HCODEENDSENDBEGIN②软件设计START:MOVDX,STARTP;启动(4)讨论①A/D转换数据采集程序的基本结构总是循环程序结构。②ADC0804的转换启动信号是由系统的IOW信号与片选信号CS共同组成的。当系统完成对芯片的写操作时,也就产生了转换启动的脉冲信号。这个脉冲信号只与IOW及地址信号CS有关,而与写入的数据无关。这种写操作称为假写。(4)讨论①A/D转换数据采集程序的基本结构总是循环程序例

电平启动的ADC接口设计(1)要求采用AD570采集1KB数据,采集的数据以查询方式传输到内存缓冲区,并在屏幕上显示。(2)分析AD570的启动方式是电平启动,转换时间是25μs,故接口电路应提供一个启动电平信号,维持25μs时间,直到转换结束为止。另外,AD570芯片内部无三态锁存器,输出数据线不能与系统的数据总线直接连接,故采用82C55A并行接口芯片进行连接和缓冲。采集的数据要在屏幕上显示。一是要把采集到的用十六进制表示的数据转换成ASCII码,才能送到屏幕去显示;二是显示格式的选择,数据在屏幕上是采用一列式显示,还是满屏显示或分区显示。例电平启动的ADC接口设计(1)要求(3)设计①硬件设计。本接口电路要为AD570提供启动电平信号和输出数据线的缓冲电路。这些要求都可以由82C55A接口芯片实现。接口电路如图所示。82C55A的端口地址为303H(命令口)、302H(C端口)、301H(B端口)、300H(A端口)。(3)设计①硬件设计。②软件设计本例的流程图如图所示。它与上例查询方式的流程图不同之处有两点:一是采用了82C55A,故增加了82C55A的初始化程序段;一是要求显示数据,故增加了显示程序段。②软件设计本例的流程图如图所示。它与上例查询方式的流程图不参考程序清单如下:SSTACKSEGMENTDB256DUP(0)SSTACKENDSDATASEGMENTBUFRDB100(0)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKMAIN:MOVAX,DATA

MOVDS,AX

MOVAX,SSTACK

MOVSS,AX

MOVCX,100;采样次数→CX

MOVDI,OFFSETBUFR;缓冲区指针→SI参考程序清单如下:SSTACKSEGMENTMOVDX,303H;82C55A初始化

MOVAL,91H;工作方式命令字

OUTDX,ALMOVAL,0FH;置PC7=1,使B/C=1,启动信号无效

OUTDX,ALNOPNOPSTART:MOVDX,303H;启动转换

MOVAL,0EH;置PC7=0,使B/C=0,启动转换

OUTDX,ALCHECK:MOVDX,302H;查转换结束

INAL,DXANDAL,08H;PC3=0否,即DR=0否

JNZCHECK;未结束,继续转换MOVDX,303H;82C55A初始MOVDX,300H;已结束,读数据

INAL,DXMOV[DI],AL;存数据到BUFR区

MOVDX,303H;撤消启动信号

MOVAL,0FH;置PC7=1,使B/C=1,撤消启动信号

OUTDX,ALMOVAL,[DI];十六进制→ASCII码转换

ANDAL,0F0H;高4位码制转换

MOVCL,4SHRAL,CLCMPAL,9JAHEXADDAL,30JMPDISPLAYMOVDX,300H;已结束,读数据

HEX:ADDAL,37DISPLAY:MOVDL,AL;显示高4位

MOVAH,2HINT21HMOVAL,[DI]

MOVAL,0FH;低4位码制转换

CMPAL,9JAHEX1ANDAL,30JMPDISPLAY1HEX1:ADDAL,37DISPLAY1:MOVDL,AL;显示低4位

MOVAH,2HINT21HMOVDL,20H;显示1个空格

MOVAH,2HINT21HINCDI;缓存区地址加1

DECCX;采样次数减1

JNZSTART;未完,继续启动

MOV4X,4C00H;已完,返回DOS

INT21H

CODEENDS

ENDMAINHEX:ADDAL,37MOVAH,(4)讨论①AD570是电平启动,启动信号是由82C55A的PC7产生的。从程序中可以看到,从PC7置为低电平开始启动之后,一直保持低电平,直到转换完毕,读取数据,并存入BUFR区之后,才将PC7置高电平,撤消启动信号。②因为采集的数据是以十六进制形式存放在内存的,而显示器采用ASCII码显示,故在显示之前,要先进行十六进制到ASICII码的转换,然后再送到显示器。这种数制的转换,在要把数据进行显示、打印处理时,都会碰到。因为显示器、打印机和键盘这些外设都是采用ASICII码的。(4)讨论①AD570是电平启动,启动信号是由82C55A3、中断法接口电路

第10章数模转换与模数转换接口及其应用课件中断方式数据采集程序框架(模块)①接口芯片初始化(当采用可编程并行口芯片作ADC接口时);②可屏蔽中断初始化,包括中断向量修改、中断申请的屏蔽等;③选择通道号(当采用多通道A/D转换芯片时);④启动转换;⑤开中断,并等待中断;⑥转换结束信号申请中断;⑦进入中断服务程序,在服务程序中读取数据,并传输到存储器以及在线数据处理;⑧采集未完,继续启动转换;⑨已完,返回。中断方式数据采集程序框架(模块)①接口芯片初始化(当采用中断方式的ADC接口设计(1)要求采用ADC0809,从通道7采集100个数据,采集的数据以中断方式传输到内存缓冲区,并将转换结束信号EOC连到IRQ4上,请求中断。(2)分析要实现上述设计要求,至少有3个方面的问题需要考虑:被控对象ADC0809的特性、接口电路结构形式、中断处理。中断方式的ADC接口设计(1)要求①ADC0809外部特性①ADC0809外部特性ADC0809的内部逻辑ADC0809的内部逻辑ADC0809的时序ADC0809的时序(2)分析②接口电路结构形式。接口电路采用可编程并行接口芯片82C55A。③中断处理。本例题是利用系统的中断资源,故不需做中断系统的硬件连接和82C59A的初始化。只需做两件事:一是中断向量的修改(IRQ4的中断向量);二是对中断控制器82C59A的中断屏蔽寄存器IMR和正在服务寄存器ISR进行操作(在主程序中用命令OCW1屏蔽/开放中断请求,在服务程序中返回主程序之前,用OCW2结束中断)。(2)分析②接口电路结构形式。接口电路采用可编程并行接口(3)设计①硬件设计根据上述分析可知,本接口电路要提供ADC0809模拟量通道号选择信号、启动信号、读数据允许信号。这些信号都可由82C55A接口芯片实现。而EOC的中断请求直接连到系统总线的IRQ4上。82C55A的4个端口地址是300H(A口)、301H(B口)、302H(C口)、303H(命令口)。注:D2D1D0应接到PB口上输出。方向不同,不能共用A口。图错了。(3)设计①硬件设计②软件设计:程序流程图整个程序分主程序和中断服务程序两部分。②软件设计:程序流程图整个程序分主程序和中断服务程序两部分程序清单如下:

STACKSEGMENTPARA′STACK′DW256DUP(?)

STACKENDSDATASEGMENTPARA′DATA′OLD_OFFDW?OLD_SEGDW?BUFRDB100DUP(0)

PRTDW?DATAENDS程序清单如下:STACKSEGMENTPARA′STA主程序CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKADCPROCFARMOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AX主程序CODESEGMENT825C5A初始化MOVDX,303H;82C55A命令端口MOVAL,90H;82C55A的方式命令字OUTDX,ALMOVAL,0EH;置PC7=0,使START和ALE无效OUTDX,ALMOVAL,0CH;置PC6=0,使OE无效OUTDX,AL;825C5A初始化MOVDX,303H;82C55A修改中断向量

MOVAX,350CH;取IRQ4的中断向量,并保存

INT21HMOVOLD_OFF,BXMOVBX,ESMOVOLD-SEG,BXCLI;置新中断向量

MOVAX,250CHMOVDX,SEGA_DMOVDS,DXMOVDX,OFFSETA_DINT21H

MOVAX,DATA;恢复数据段

MOVDS,AXSTI;开放中断请求

INAL,21H;开放IRQ4

ANDAL,0EFH

OUT21H,AL修改中断向量MOVAX,350CH;取主程序主体MOVCX,100;设置采样次数和内存指针

MOVAX,OFFSETBUFRMOVPRT,AXMOVDX,301H;82C55A的B端口

MOVAL,07H;选通道号

OUTDX,ALBEGIN:MOVDX,303H;启动转换

MOVAL,0FH;产生START启动脉冲信号

OUTDX,ALNOPNOPMOVAL,0EHOUTDX,ALSTI;开中断

HLT;等待中断主程序主体MOVCX,100;设置DECCX;修改采样次数

JNZBEGIN;未完,继续启动CLI;已完,关中断

MOVAX,250CH;恢复IRQ4原中断向量

MOVDX,OLD-SEGMOVDS,DXMOVDX,OLD-OFFINT21HMOVAX,DATA;恢复数据段

MOVDS,AXSTI;屏蔽中断请求

INAL,21H;屏蔽IRQ4

ORAL,10H

OUT21H,AL;返回DOS

MOVAX,4C00H

INT21H

ADCENDPDECCX;修改采样次数中断服务程序A_DPROCFAR;寄存器进栈

PUSHAXPUSHDXPUSHDI;服务程序主体

CLI;关中断

MOVDX,303H;82C55A的命令端口

MOVAL,0DH;产生OE信号,打开三态锁存器

OUTDX,ALNOPNOPMOVAL,0CHOUTDX,ALMOVDX,300H;825C5A的A端口

INAL,DX;读数据中断服务程序A_DPROCFAR;寄存器进栈NOPMOVDI,PRT;存数据

MOV[DI],AL

INCDI

MOVPRT,DI;发中断结束命令

MOVAL,20H;主片82C59A中断结束

OUT20H,AL

;寄存器出栈

POPDIPOPDXPOPAXSTI;开中断;中断返回

IRETA_DENDPCODEENDSENDADCNOP(4)讨论①本例接口电路是采用的82C55A并行接口芯片,故主程序开始就有82C55A的初始化程序段。②多通道ADC的通道地址选择线有两种:一是采用系统的地址线,一是采用系统的数据线。本例是使用系统数据线的低3位D2D1D0,分别连到ADC0809的3根通道地址线选择线ADDC~ADDA上。(4)讨论①本例接口电路是采用的82C55A并行接口芯片第10章数模转换与模数转换接口及其应用课件;通道0-7转换100个数ADC_P DW?ADC_COUNT DW?BUFFER DB100DUP(?)主程序……CALLINIT ;初始化可编程芯片MOVADC_P,OFFSETBUFFERMOVADC_COUNT,100MOVAL,08H ;启动8253OUTC-PORT,AL……;通道0-7转换100个数;中断程序ADINT PROC CLI PUSHAX PUSHBX MOVBX,ADC_P INAL,A_PORT ;取数

MOV[BX],AL ;存数

INCADC_P ;指针加1

INCADC_COUNT ;计数器加1

CMPADC_COUNT,100 ;是否转换100个数

JNZLOP1 ;没有,转LOP1

MOVAL,0 ;有,停止8253工作

OUTC_PORT,ALLOP1: POPBX POPAX STI IRET ENDP第10章数模转换与模数转换接口及其应用课件10.4串行8位A/D转换器TLC0831一、TLC0831管脚功能

10.4串行8位A/D转换器TLC0831二、TLC0831的工作原理

第10章数模转换与模数转换接口及其应用课件三、TLC0831与8086CPU的接口

第10章数模转换与模数转换接口及其应用课件补充习题1下图示出了D/A转换器电路,假设:Y0地址为300H,Y1地址为301H,Y2地址为302H,数据为左对齐方式。请编写在输出端VO产生三角波的程序段。补充习题1下图示出了D/A转换器电路,假设:Y0地址为300解答

;三角波形的上斜坡

MOV AX,0FFFFH ;从0开始NEXT1:INC AX

MOV DX,300H

OUT DX,AL ;送数给D/A

MOV DX,301H

MOV AL,AH

OUT DX,AL

MOV DX,302H

OUT DX,AL ;送到第二级锁存器

CALL DELAY ;延时

CMP AX,0FFFH ;是否达到最高点

JNZ NEXT1解答;三角波形的下斜坡NEXT3:DEC AX

MOV DX,300H

OUT DX,AL ;送数给D/A

MOV DX,301H

MOV AL,AH

OUT DX,AL

MOV DX,302H

OUT DX,AL ;送到第二级锁存器

CALL DELAY ;延时

CMP AX,0 ;是否达到最低点

JNZ NEXT3 DEC AX JMP NEXT1 ;开始上斜坡

;三角波形的下斜坡;延时DELAY:MOV CX,0FFHDEL: LOOP DEL

RET;延时CPUPA0-7PC1PC6GNDA0-7B/CINDRDG8255AAD570A补充习题2用AD570采用程序查询方式,采集128个数据,存入地址为0100:0000的内存中。请写出采集数据的程序。硬件电路如下图示。设8255A采用0方式,其命令口地址为303H,数据口地址为300H,状态口地址为302H。CPUPA0-7A0-78255AAD570A补充习题2用A解答

程序如下

MOVDX,303H;8255A命令口

MOVAL,98H;工作方式字

OUTDX,AL

MOVAL,03H;先置PC1=1,准备发启动信号

OUTDX,AL

MOVAX,0100H;内存数据区的段址

MOVES,AX

MOV

BX,00H;偏移地址

MOVCX,7FH;采样次数AGN:MOVAL,02H;置PC1=0OUTDX,AL解答WAT:MOVDX,302H;查PC6=0?

INAL,DX

SHLAL,2

JCWAT

MOVDX,300H;8255A数据口

INAL,DX

MOVES:[BX],AL;存数于内存

MOVDX,303H;置PC1=1MOVAL,03H;撤消启动信号

OUTDX,AL

INCBX;内存地址加1

LOOPAGN;次数减1,没完继续

MOVAX,4C00H

IN21HWAT:MOVDX,302H;查PC6=0?补充习题3若对ADC0809的IN0~IN7这8个通道的模拟量各采样100个点,并转换成数字量,数据存储指针为WP,采用查询方式实现。译码电路的地址输出如下图所示。注意:图中是以采集IN0为例给出的译码地址。补充习题3若对ADC0809的IN0~IN7这8个通道的模拟电路图是:电路图是:

概述A/D和D/A转换器是把微型计算机的应用领域扩展到检测和过程控制的必要装置,是把计算机和生产过程、科学实验过程联系起来的重要桥梁。下图给出了A/D、D/A转换器在微机检测和控制系统中的应用实例框图。概述A/D和D/A转换器是把微型计算机的应第10章数模转换与模数转换接口及其应用课件10.1D/A转换器及其接口技术一、D/A转换器及其接口

D/A转换器的功能是把二进制数字量电信号转换为与其数值成正比的模拟量电信号。在D/A参数中一个最重要的参数就是分辨率,它是指输入数字量发生单位数码变化时,所对应输出模拟量(电压或电流)的变化量。10.1D/A转换器及其接口技术一、D/A转换器及其接口

分辨率是指输入数字量最低有效位为1时,对应输出可分辨的电压变化量ΔU与最大输出电压Um之比,即分辨率=1/(2-1)

n分辨率是指输入数字量最低有效位为1时,对应最小阶梯电压=参考电压*分辨率

=参考电压/(2n-1)最小阶梯电压=参考电压*分辨率第10章数模转换与模数转换接口及其应用课件第10章数模转换与模数转换接口及其应用课件

实现D/A转换器和微型计算机接口技术的关键是数据锁存问题。有些D/A转换器芯片本身带有锁存器,但也有些D/A从转换器芯片本身不带锁存器。此时一些并口芯片如8212,74LS273及可编程的并行I/O接口芯片8255A均可作为D/A转换的锁存器。第10章数模转换与模数转换接口及其应用课件第10章数模转换与模数转换接口及其应用课件数据CSWR输出8255数据输出WRADAD数据输出8255数据输出WRADAD二、并行8位D/A转换芯片AD558及其接口

1、AD558的内部结构框图二、并行8位D/A转换芯片AD558及其接口第10章数模转换与模数转换接口及其应用课件2、AD558与PC机的连接图

2、AD558与PC机的连接图CODE SEGMENT ASSUME CS:CODESTART: MOVCX,256

MOVAL,0

MOVDX,30CHLOOP1: OUTDX,AL ;输出AL内容

CALLDELAY ;延时

INCAL ;AL内容加1

LOOPLOOP1 ;循环256次

JMPSTART ;重新输出下一 ;个锯齿波CODEENDS

ENDSTARTCODE SEGMENTDAC0832逻辑结构框图DAC0832逻辑结构框图(1)双缓冲方式(LE1和LE2分别控制)(2)单缓冲方式(其中LE1和LE2有一个直通)(3)直通方式(LE1和LE2均为直通)注:在DAC实际连接中,要注意区分“模拟地”和“数字地”的连接,为了避免信号串扰,数字量部分只能连接到数字地,而模拟量部分只能连接到模拟地。DAC0832有三种工作方式:(1)双缓冲方式(LE1和LE2分别控制)DAC0832有三(3)设计①硬件设计根据上述分析,接口电路主要是提供并处理缓冲方式和写操作的5根信号线,故采用普通IC芯片就可以组成接口电路。图中,DAC0832工作在单缓冲方式,并且只对第1级锁存器的WR1进行了控制,而第2级锁存器的WR2固定接地,未进行控制。D7~D0IOWA9~A0AEN系统总线DI0~7WR1ILECSDAC0832译码器WR2XFERDGNDVREFRFBIO1IO2AGND+-AR+5VVoutDAC0832单缓冲方式连接+5V314H(3)设计①硬件设计D7~D0IOWA9~A0AEN②软件设计根据设计要求产生连续的锯齿波,可知本程序是一个循环结构,其程序流程图如图所示。②软件设计根据设计要求产生连续的锯齿波,可知本程序是一个循程序清单如下:SAWTOOTHPROCFARMOVAX,DATAMOVDS,AXMOVAL,00H;置AL=0LOP:MOVDX,314H;端口地址

OUTDX,AL;AL的值送DAC0832

MOVBL,AL;保存AL→BL

MOVAH,0BH;是否有键按下?

INT21HCMPAL,0FFHJESTOP;有,停止输出波形

MOVAL,BL;无,恢复AL的值

INCAL;AL加1

JMPLOP;继续循环输出波形STOP:MOVAX,4C00H;退出

INT21HSAWTOOTHENDP程序清单如下:SAWTOOTHPROCFAR输出三角波程序段如下:

MOVDX,314H;DAC0832的端口地址

MOVAL,0H;输出数据0TN1:OUTDX,AL

INCAL;输出数据加1

JNZTN1

MOVAL,0FFH;输出数据0FFHTN2:OUTDX,AL

DECAL;输出数据减1

JNZTN2

JMPTN1输出三角波程序段如下:(4)讨论①利用DAC产生锯齿波输出的方法是,将从0开始逐渐递增的数据送到DAC,直到FFH,再回到0。重复上述过程,就可得到周期性的锯齿波电压。实际上,从0到FFH,中间分为256个小台阶,但从宏观上看,是一个线性增长的电压直线。②DAC0832的3种缓冲方式,用在不同的场合。双缓冲方式用于需要多个不同模拟量同时输出的系统中;单缓冲与直通方式都用于单个模拟量输出的场合。单缓冲常用在采用普通IC芯片的DAC接口中,直通方式常用于采用可编程并行接口芯片的DAC接口中。(4)讨论①利用DAC产生锯齿波输出的方法是,将从0开始逐三、串行8位D/A转换器TLC5620第一级缓冲

第二级缓冲三、串行8位D/A转换器TLC5620第一级缓冲第二级缓数据写入方式

(LDAC更新DAC输出)

数据写入方式

(LOAD更新DAC输出)

数据写入方式(LDAC更新DAC输出)数据写入方式(LTLC5620与8255A的连接

TLC5620与8255A的连接

MOVCL,5 ;先把AX内容左移5位

SHLAX,CL MOVDX,AX ;DX为串行输出的数据,最高位为通道选择

MOVCX,11 ;循环11次DAC_PROC1: MOVAL,0 ;预置对DATA线的置位复位字

SHLDX,1 ;取串行输出位

ADCAL,0 ;把串行输出位送到置位复位字的第0位

OUT86H,AL ;把DATA线上串行输出位内容

MOVAL,00000010B ;发送CLK负脉冲

OUT86H,AL MOVAL,00000011B OUT86H,AL LOOPDAC_PROC1 ;循环

MOVAL,00000100B ;循环完毕,发LOAD负脉冲

OUT86H,AL

MOVAL,00000101B ;

OUT86H,AL

MOVAL,00000110B ;发LDAC负脉冲

OUT86H,AL

MOVAL,00000111B ;

OUT86H,AL MOVCL,5 ;先把AX内容左移5位主程序段: MOVAL,10010010B ;8255A初始化OUT86H,ALMOVAL,0FFH ;C口各位初始值全为1OUT84H,AL…… ;其它处理MOVCX,256 ;D/A通道B产生一锯齿波MOVAL,0 ;D/A初始数据为0MOVAH,00000010B ;选取通道B,最大输出电压为参考电压AGAIN:CALLDAC_PROC ;把AX里的内容送DACINCAL ;产生锯齿波的下一个数据CALLDELAY ;延迟LOOPAGAIN ;循环256次

……主程序段: MOVAL,10010010B ;8255A初四、12位D/A转换及接口四、12位D/A转换及接口例

DAC1210接口电路设计(1)要求通过DAC1210产生并输出50个方波,方波数据存放在内存缓冲区。(2)分析DAC1210的分辨率为12位,且内部有两个三态锁存器,用于分别对数据的高、低两个字节进行锁存,故数据线可与系统数据总线直接连接。但是,当它与8位微机系统连接时,数据要分两次传输。例DAC1210接口电路设计(1)要求8位输入锁存器4位输入锁存器12位DAC寄存器12位相乘型D/A转换器&&&LELELELSBMSBDI1115DI1016DI917DI818DI719DI620DI54DI45DI36DI27DI18DI09BYTE123/BYTE2CS1WR1

2XFER21WR2

2210VREF14IOUT213IOUT111RFB24Vcc3AGND24DGNDDAC1210内部结构8位输入4位输入12位DAC12位相乘型&&&LELELEL有两种数据对齐格式:

“右对齐”:从低位对齐(先送低,后送高)

“左对齐”:从高位对齐(先送高,后送低)特别注意:设置两个锁存器,分别锁存高字节和低字节。同时选通两个锁存器进行D/A转换。有两种数据对齐格式:12位DAC与CPU之间加两级锁存器(右对齐)PC扩展槽D0-7IOWANEA0-9BUF1D0-7Q0-7CBUF3D0-7Q0-7CBUF2D0-7Q0-7C12位DACD0-7D/AI01

D8-11I02译码器Y0Y1图10-512位DAC与CPU之间加两级锁存器12位DAC与CPU之间加两级锁存器(右对齐)PC扩展槽BU(3)设计①硬件设计接口电路如图所示。图中,DAC1210的12根数据线直接与系统的数据线相连,但系统数据线只有8位,故将DAC1210的低4位数据线连到了系统数据线的高4位上。这种连接方法称为“左对齐”方式。DAC1210的3个端口地址为316H(y0)、317H(y1)和318H(y2)。

(3)设计①硬件设计②软件设计根据设计要求产生连续50个方波输出,可知本例程序也是一个循环结构,其流程如图所示。②软件设计根据设计要求产生连续50个方波输出,可知本例程序程序清单如下:SSTACKSEGMENTDW256DUP(?)

SSTACKENDSDATASEGMENTBUFRDW50DUP(0000,0FFFH)

DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKSQUARE:MOVAX,DATAMOVDS,AXMOVAX,SSTACKMOVSS,AXMOVSI,OFFSETBUFRMOVCX,100程序清单如下:SSTACKSEGMENT

SEND:MOVBX,WORDPTR[SI]

MOVCL,4SHLBX,CL;使BX中12位数向左对齐

MOVDX,316H;DAC1210的第1个字节锁存器端口

MOVAL,BH;写入高8位

OUTDX,ALINCDX;DAC1210的第2个字节锁存器端口

MOVAL,BL;写入低4位

OUTDX,ALINCDX;DAC1210的转换器端口

OUTDX,AL;写入任意数据(假写)启动转换

CALLDELAY;延时使方波保持一定的宽度SEND:MOVBX,WORDPTR[SI]INCSI;缓冲区地址加2

INCSI

DECCX;循环次数减1

JNZSEND;循环次数未到,继续

MOVAX,AC00H;已到,退出

INT21HDELAYPROCNEAR;延时子程序

MOVBX,0FFFFHLOP:DECBXJNZLOPRETDELAYENDPCODEENDSENDSQUAREINCSI;缓冲区地址加210.2A/D转换器及其接口技术

分辨率指A/D转换器对输入模拟信号的分辨能力。通常用数字输出最低位(LSB)所对应的模拟输入的电平值表示。如A/D转换器的输出为12位二进制数,最大输入模拟信号为10V,则其分辨率为

分辨率=10/(2N

-1)≈10/2N≈2.44mV

10.2A/D转换器及其接口技术10.2A/D转换器及其接口技术

一、A/D转换原理常用的A/D有并行A/D、逐次逼近A/D、双积分A/D。10.2A/D转换器及其接口技术一、A/D转换原理1.计数斜波式A/D转换器1.计数斜波式A/D转换器DA8255比较器模拟输入DA8255比较器模拟输入2.逐次逼近式A/D转换器10000000D71000000D7D6100000D7D6D5D4D3D2D1D0DHPC02.逐次逼近式A/D转换器1000Ui=163mV的逐次比较过程Ui=163mV的逐次比较过程第10章数模转换与模数转换接口及其应用课件

3.双积分型A/D转换器

计数器3.双积分型A/D转换器计数器充电时间T1放电T2充电时间V0=Vi*T1/τ放电时间V0-VR*T2/τ=0T2=(T1/VR

)*Vi在实际测量中T1,VR固定充电时间T1放电T2充电时间V0=V

4.并行比较型A/D转换器第10章数模转换与模数转换接口及其应用课件类型逐位比较型双积分型并行比较型速度中慢快分辨率8-14位10-20位8-12位

温馨提示

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

评论

0/150

提交评论