AD与DA转换器接口课件_第1页
AD与DA转换器接口课件_第2页
AD与DA转换器接口课件_第3页
AD与DA转换器接口课件_第4页
AD与DA转换器接口课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

A/D与D/A转换器接口D/A转换器的接口方法10/1

微型汁算机在实时控制、在线动态测量和对物理过程进行监控,以及图像、语音处理领域的应用中,都要与一些连续变化的模拟量(温度、压力、流量、位移、速度、光亮度、声音等模拟量)打交道,但数字计算机本身只能识别和处理数字量,因此,必须经过转换器,把模拟量转换器成数字量,或将数字量转换成模拟量,才能实现CPU与被控对象之间的信息交换。显然,模拟接口电路的作用,在于把微处理器系统的离散的数字信号与模拟设备中连续变化的模拟信号电压、电流之间建立起适配关系,以便汁算机执行控制与测量任务。从硬件角度来看,模拟接口就是处理器与A/D、D/A转换器之间的连接电路。本章将详细讨论这种接口原理、设计方法及如何进行驱动程序的设计。HOMED/A转换器的接口方法10/1一、D/A转换器及其连接特性

1.D/A转换器的主要参数

①分辨率:指D/A转换器能够转换的二进制数的位数。位数多分辨率也就高,

②转换时间:指数字量从输入到完成转换、输出达到最终值并稳定为止所需的时间。

③精度:指D/A转换器实际输出电压与理论值之间的误差。

④性度:指数字量变化时,D/A转换器输出的模拟量按比例关系变化的程度。HOMEBACKD/A转换器的接口方法10/12.D/A转换器的连接特性

①输入缓冲能力。DAC是否带有三态输入缓冲器或锁存器来保存输入数字量,这对不能长时间在数据总线保持数据的微机系统中使用D/A转换器,十分重要。

②输入数据的宽度(即分辨率)。DAC有8位。10位。14位。16位。

③输入码制。DAC能接收不同码制的数字量输出

④输出模拟量的类型。DAC的输出可以是电流也可以是电压,输出电流的叫电流型DAC,输出电压的叫电压型DAC。

⑤输出模拟量的极性。DAC的模拟量输出有单极性输出也有双极性输出。对—些需要正负电压控制的设备,就要使用双极性DAC,或在输出电路中采取措施,使输出电压有极性变化。HOMEBACKD/A转换器的接口方法10/1二、D/A转换器与微处理器的接口方法:

1.接口的任务

CPU向DAC传送数据时,也不必查询DAC的状态是否准备好,只要两次传送数据之间的间隔不小于DAC的转换时间,都能得到正确的结果。但是,如果D/A转换器不带三态输入锁存缓冲器时,CPU就不能把数据直接通过数据总线送到D/A转换器,而需要在CPU的数据总线与D/A转换器的数据输入线之间加三态锁存缓冲器。所以D/A转换器接口的主要任务是要解决CPU与DAC之间的数据缓冲问题。例如,DAC0832外部有5个控制信号,它们都是用来控制两级锁存器的。HOMEBACKD/A转换器的接口方法10/12。接口电路结构形式

D/A转换器的种类繁多,型号各异,速度与精度差别甚大,它们与微型计算机连接时的接口电路结构形式一·般有3种:

①采用中小规模逻辑芯片构成接口电路与CPU连接;

②利用通用并行I/0接口芯片与CPU连接;

③采用GAL器件。在实际使用中,经常利用并行I/O接口芯片与CPU相连,这样,在时序配合和驱动能力上都容易和CPU一致,使设计简化和调试方便,并增加系统的可靠性。下面举例说明如何进行D/A转换器接口硬件设计和软件编程。HOMEBACKD/A转换器接口的电路设计10/2一、片内无三态输入缓冲器的8位D/A转换器接口设计

1.要求利用DAC0808构成自流数字电压表。端口地址分配为:数据锁存的端口(Y1)--318H,比较器比较结果端口(Y0)——319H。

2.分析首先,由于DAC0808片内无三态数据输入锁存器,因此在接口电路设计中—定要外加三态锁存器或I/0并行接口芯片才能与CPU相接。其次,利用DAC构成数字电压表的实质是将数字量转换成电压去和被测电压进行比较,而得到被测电压的数字量。

3.设计

①硬件连接。图10.1为DAC0808与CPU之间加锁存器的连接图。图中DAC0808的数据输入端通过锁存器74kS273与PC微机插槽数据总线相连,锁存器的锁存信号CP由IOW与地址译码电路的输出Yl经或非门741S33产生。HOMEBACKD/A转换器接口的电路设计10/2②软件编程。实现直流电压表功能的程序段为:

MOVAX,020H ;开辟存储单元

MOVES,AX MOVBX,00H MOVCX,080H ;CH等于新试探值初值;CL等于试探值增量初值NEXT:MOVAH,CH ;AH等于试探后保留值(老试探值) MOVAL,AH ;取老试探值

ADDAL,CL ;形成新试探值

MOVCH,AL ;CH←新试探值

MOVDX,318H ;新试探值送至74Lq273,进行转换

OUTDX,AL MOVDX,319H ;读人比较结果

INAL,DX ;即检查比较结果D0 ANDAL,01H JNZOK ;若结果为“1”,则保留

MOVCH,AH ;若结果为“O”,则去掉OK:SHRCL,1 ;改变试探增量

INCNEXT ;比较次数到了吗?(N=8)不到,则继续

MOVAL,CH ;次数已到,则送数据到存储单元

MOVES:[BX],AL HLT ;暂停

程序执行完毕,在内存200H单元,保存着被测的直流电压值。HOMEBACKD/A转换器接口的电路设计10/2二、片内有三态输入缓冲器的8位D/A转换器接口设计1.要求通过D/A转换器DAC0832产生任意波形,如矩形波、三角波、梯形波、正弦波以及锯齿波等。2.分析

①连接特性。DAC0832是分辨率为8位的乘法型DAC,芯片内部带有两级缓冲寄存器,它的内部结构和外部引脚如图10.2所示。

DAC0832的时序关系如图10.3所示。图中表示,两个数据分别用CS1和CS2锁存到两个DAC0832的输入寄存器中,最后用XFER信号的上升沿将它们同时锁存到各自的DAC寄存器,进行D/A转换。HOMEBACKD/A转换器接口的电路设计10/2

②DAC0832的工作方式。DAC0832芯片在以上几个信号不同组合的控制下,可实现单缓冲、双缓冲和直通3种工作方式。直通就是不进行缓冲,CPU送来的数字量直接送到DAC转换器,条件是除ILE端加高电平以外,将所有的控制信号都接低电平。单缓冲是只进行一级缓冲,具体可用第—组或第二组控制信号对第—·级或第二级缓冲器进行控制。双缓冲是进行两级缓冲,用两组控制信号分别进行控制。3.设计

①硬件设计。采用8255A作为DAC与CPU之间的接口芯片,并把8255A的A口作为数据输出,通过它把数据传送到DAC0832,而B口的PBo—PB45根线作为控制信号来控制DAC0832的工作方式及转换操作,如图10.4所示。HOMEBACKD/A转换器接口的电路设计10/2②软件编程。 ;8255A初始化

MOVDX,303H ;8255A的命令口

MOVAL,10000000B ;8255A的方式字

OUTDX,AL

;指派B口控制DAC的转换

MOVDX,300H ;8255A的B口地址

MOVAL,00010000B ;置DAC0832为直通工作方式

OUTDX,AL

;生成三角波的循环

MOVDX,300H ;8255A的A口地址

MOVAL,0H ;输出数据从0开始

L1: OUTDX,AL INCAL ;输出数据加1 JNZL1 ;AL是否加满?未满,继续

MOVAL,0FFH ;已满,AL置全“1”L2: OUTDX,AL DECAL ;输出数据减1 JNZ12 ;从是否减到0?不为0,继续

JMPL1 ;为0,AL加1HOMEBACKD/A转换器接口的电路设计10/2三、片内无三态输入缓冲器的12位D/A转换器接口设计

1.要求

对片内无输入缓冲器的12位D/A转换器设计接口,要求转换的数据按“右对齐”格式传送。

2.分析首先,由于转换器的分辨率(12位)比CPU的数据总线位数(8位)宽,CPU必须分两次送出,先送低字节,后送高字节(称右对齐)。所以在DAC的分辨率大于系统数据总线位数时要采用两级锁存器。其次,因片内无两级输入缓冲器,故接口电路中要在数据总线与DAC数据输入端之间加两级锁存器,如图10.5所示。HOMEBACKD/A转换器接口的电路设计10/2四、片内有三态输入缓冲器的12位D/A转换器接口设计

1.要求对片内有输入缓冲器的12位D/A转换器设计接口,要求按“左对齐“的格式传送数据。

2.分析由于DACl210片内有两级锁存器,所以接口电路中,在DAC的数据输入线与系统数据总线之间就不必外加锁存器,而直接相连,但由于DACl210的分辨率位数大于系统数据总线的位数,因此,数据的传送还是要分两次。

DACl210的内部结构如图10.6所示。HOMEBACKD/A转换器接口的电路设计10/23.设计

(1)硬件连接图10.7表示了DACl210与CPU的连接DACl210输人数据线的高8位DI11~DI4连到数据总线的D7—Do,低4位DI,—Dio接到数据总线的D7—D4,以实现左对齐格式。HOMEBACKD/A转换器接口的电路设计10/2(2)高低字节数据缓存过程这一缓存过程可用下列程序段完成。

MOVDX,340H ;高8位端口地址

MOVAL,DATAH ;高8位数据

OUTDX,AL ;送高8位

INCDX ;低4位端口地址

MOVAL,DATAL ;低4位数据

OUTDX,AL ;送低4位

MOVDX,342H ;12位锁存器地址

OUTDX,AL ;送12位数据HOMEBACKA/D转换器接口基本原理与方法10/3一、A/D转换器及其连接特性

1.MD转换器的主要参数

(1)分辨率:是指A/D转换器能够转换成二进制数的位数。例如:1个10位A/D转换器,去转换一个满量程为5V的电压,则它能分辨的最小电压为5000mV/102≈5mV。这表明,A/D转换器的数字量输出位数越多,其分辨率就越高。

(2)转换时间指从输入启动转换信号开始到转换结束,得到稳定的数字输出量为止的时间。其他参数与D/A转换器类似。HOMEBACKA/D转换器接口基本原理与方法10/3一、A/D转换器及其连接特性

2.MD转换器的外部特性

(1)模拟信号输人线----来自被转换的对象,有单通道输入与多通道输入之分。

(2)数字量输出线----是ADC将数字量送给CPU的数据线。数据线的根数表示ADC的分辨率。

(3)转换启动线(输入)----它是由系统控制器发出的一种控制信号,此信号一到,A/D转换就开始,启动转换信号不到,A/D转换器不会自动开始转换,并且是发1次启动信号只能转换1次,采集1个数据。

(4)转换结束线(输出)----转换完毕后由ADC发出A/D转换结束信号,它是一种状态信号。HOMEBACKA/D转换器接口基本原理与方法10/3一、A/D转换器及其连接特性

2.MD转换器的外部特性

表10.1几种A/D转换芯片的引脚对照

芯片转换启动转换结束

ADC0816(0809)

STARTEOCAD570(571)B/C=0DRADC0804WRCSINTRADC7570STARTBUSY=1ADC1131JCONVCMDSTATUS下降边

ADC1210SCCCAD574EC(R/C=0)。CS

STS=0HOMEBACKA/D转换器接口基本原理与方法10/3二、A/D转换器与微处理器的接口方法

1.MD转换器与CPO的连接

(1)AID转换器的分辨率

ADC的分辨率位数与CPU的数据总线的位数是否一致?若不一致,并且是分辨率高于数据总线的宽度,则CPU读数据时,需要两次读取,而且,读取的数据在存储区存放的格式,有左对齐与右对齐之分。

(2)A/D转换器的输出锁存器在ADC芯片内有无三态数据输出锁存器?若有,则ADC的数据线可直接挂在CPU的数据总线上;若无,则须在ADC的输出数据线与CPU的数据总线之间,外加三态锁存器,才能连接。

(3)A/D转换器的启动信号对于采用电平启动的ADC,其启动电子要在整个转换过程中维持不变,直到转换结束为止。HOMEBACKA/D转换器接口基本原理与方法10/32.MD转换器接口的主要操作

①进行通道选择。

②发转换启动信号

③取回“转换结束”状态信号。

④读取转换的数据。

⑤发采样/保持(S/H)控制信号。3.A/D转换器数据的传送对于查询方式,只需一个程序,程序中包括选择通道,发转换启动信号,查转换结束信号,若转换结束,就开始读数据,最后是把数据存入内存。对于中断方式,需要两个程序,一个主程序和一个服务程序。在主程序中,选择通道,发转换启动信号,开中断,然后,CPU就可以干别的事或等待中断请求。HOMEBACKA/D转换器接口基本原理与方法10/33.A/D转换器数据的传送对于DMA方式,其数据采集的操作与查询和中断方式基本相同,只是对所采集的数据如何传送到内存的方法有所不同。对于超高速数据采集系统,A/D转换器速度非常快,采用DMA方式传送也跟不上转换的速度,故在A/D转换器板上设置RAM,把采集的数据先就近存放在RAM中,然后,再从板上的RAM取出数据送到内存。4.MD转换器接口电路的结构形式A/D转换器与CPU的接口方式有如下3种:

(1)采用中小规模逻辑电路这种接口电路在与CPU的时序配合上,调试时可能有些麻烦,适应于控制信号较少的简单接口设计。

HOMEBACKA/D转换器接口基本原理与方法10/3(2)采用通用的可编程并行接口芯片例如采用8255A作ADC的接口,这种接口电路设计方便,加上是可编程,使用灵活。

(3)采用GAL器件采用GAL器件,可以实现A/D转换器接口电路中的全部功能,包括提供控制信号,接收状态信号和进行I/0端口地址译码。这种接口电路不仅可实现复杂的控制逻辑,可靠性高,而且可以加密,这是通用并行接口芯片无法做到的。要说明一点,这些A/D转换器并不是只适合于例中的某种传送方式或电路结构形式,它们还可以有其他的传送方式和电路结构形式。HOMEBACK查询方式的A/D转换器接口电路设计10/4一、12位片内带有3-态输出锁存器的A/D转换器接口设计

1.要求进行12位转换,转换结果分两次输出,以左对齐方式存放在首址为4001-1的内存区。共采集64个数据。ADC与CPU之间采用查询方式交换数据,为此,采用AD574A作为A/D转换器。

2.分析

AD574A是具有三态输出锁存器的A/D转换器,它可以作12位转换,也可作8位转换。转换速度较快,为25us,内部含有与微型计算机连接的逻辑控制电路,它是目前国内外使用较多的器件之一。AD574A外部引脚如图10.8所示。

AD574A的内部逻辑结构如图10,9所示。HOME

BACK查询方式的A/D转换器接口电路设计10/4CE:片允许信号,高电平允许工作。简单应用中可固定接高电平。CS:片选中,低电平有效。R/C:双功能引脚,作为读数据或启动转换的控制信号。R/C=1,用于读数据;R/C=0,用于启动转换。12/8:数字量输出位数控制,12/8=1,1次输出12位数据;12/8=0,1次输出8位数据。A0:双功能引脚,用于分辨率和字节选择。在转换启动时,若Ao=O,则AD574A作12位转换器用;若Ao=1,则AD574A作8位转换器用。在读数据时,若Ao=O,则读高字节;若Ao=1,则读低字节。STS:状态线,表示转换器状态,在转换期间,STS为高;当转换结束时,STS变低。可利用它的负跳边反向后去申请中断。HOMEBACK查询方式的A/D转换器接口电路设计10/4

以上信号线中,CS、CE和R/C三个信号组合起来实现启动转换和读数据。当CS=0、CE=1和R/C=O时,启动A/D进行转换,可见AD574A是边沿启动转换;当CS=O、CE=l和R/C=1时,读取数据。这5个控制信号的电平状态与AD574A所产生的操作对应关系如表10.2所示。

表10.2AD574A的控制信号的作用CECSR/C12/8A0AD574A的功能操作

0××××不允许转换

×1×××未接通芯片

100×0启动1次12位转换(作12位转换器)

100×1启动1次8位转换(作8位转换器)

101高电平(+5V)

×一次输出12位

101低电平(数字地)0输出高位字节

101低电平(数字地)1输出低位字节HOMEBACK查询方式的A/D转换器接口电路设计10/43.设计

(1)硬件连接

AD574A与CPU的连接如图10。10所示。图中I/O端口地址译码有三个端口地址:Yo=310H,为状态口;Y1=311H,为数据口(低4位);Y2=312H,为转换启动控制121/数据口(高8位)。这样安排,实际上也就考虑了A0的控制作用。例如转换启动端口设置为312H,其中包含Ao=0,以实现12位转换。读数据端口设置了两个,一个是312H,包含Ao=0,读高字节;一个是311H,包含Ao=1,读低字节。

(2)软件编程软件编程与AD574A各控制信号之间的逻辑关系及工作时序有关。图10.11描述了各信号之间的时序关系。HOMEBACK查询方式的A/D转换器接口电路设计10/4根据题目的要求和信号的时序关系,其数据采集的程序段如下:

MOVCX.40H ;采集次数

MOVSI,400H ;存放数据内存首址START:MOVDX.312H :12位转换(Ao;O) MOV从,0H ;写入的数据可以取任意值

OUTDX,AL ;转换启动(CS,及R/C均置O,

CE置1) MOVDX,310H ;读状态,Y0=O,打开三态门L: INAL,DX ANDAL,80H ;检查D7=STS=0? JNZL ;不为0,转换未结束,则等待

MOVDX,311H;为0,转换已结束,先读低4位

INAL,DXA0=1) HOMEBACK查询方式的A/D转换器接口电路设计10/4 ANDAL,0FOH ;屏蔽低4位

MOV[SI],AL ;送内存

INCSI ;内存地址加l MOVDX,312H ;再读高8位(A0=0) INAL,DX MOV[SI],AL ;送内存

INCSI ;内存地址+1 DECCX ;采集次数减l JNZSTART ;未完,继续

MOVAX,4C00H ;已完,程序退出

INT21HHOMEBACK查询方式的A/D转换器接口电路设计10/4二、12位片内不带三态输出锁存器的A/D转换器接口设计

1.要求某数据采集系统,采用ADCl210作12位转换,转换的数据按右对齐格式存放。CPU与接口之间用查询方式交换数据。

2.分析与设计

ADCl210是无三态输出锁存功能的A/D转换器,因此,它的数据线不能与系统数据总线直接连接,必须通过两个具有三态锁存能力的74LS244接到CPU的数据总线上。整个接口电路如图10。12所示。图中I/O端口地址由译码电路产生,其分配是:两个数据口Y0(330H)和Y1(331H),一个转换启动的控制口Y2(332H)以及一个状态口Y0(330H)。HOMEBACK查询方式的A/D转换器接口电路设计10/43.编程

MOVDX,332H ;启动转换信号的端口

INAL,DX ;置SC=0,启动转换

MOVDX,330H ;状态口L: INAL,DX ;查CC=0? ROLAL,1 ;若CC≠0,转换未结束,则等待

JCL ;若CC=0,则转换结束

MOVDX,330H ;74LS24.4(二)的端口,读取高4位数

INAL,DX ANDAL,OFH ;屏蔽前面高4位,取高字节的低4位

MOVBH,AL ;保存高字节

MOVDX,331H ;74LS244(一)的端口,读取低8位数

INAL,DX MOVBL,AI, ;保存低字节

HLTHOMEBACK查询方式的A/D转换器接口电路设计10/4三、用电平启动转换的A/D转换器接口设计

1.要求在8位数据采集系统中,采用AD570作A/D转换。采集256个数据,用查询方式送到内存。

2.分析

AD570是一个用电平启动的8位逐次逼近A/D转换芯片。其转换启动信号是D庀(BLANK/CONV),低电平有效,该信号变低电平时开始转换,经25us转换才结束。在此期间,转换启动信号要一直保持为低电平。若提前变高,则转换中止,无结果输出。转换结束信号是DR(DATAREADY),转换过程中为高电平,转换完毕变低。当它出现低电平,表示转换结束,可以读取数据。其时序关系如图10.13所示。HOMEBACK查询方式的A/D转换器接口电路设计10/43.设计

(1)硬件连接

AD570转换芯片的数据输出无三态锁存器,不能直接与CPU数据总线相连,为此,电路中采用8255A并行接口芯片作为AD570与CPU的接口电路,如图10.14所示。图中,用8255A的A口作数据口,渎取AD570的数据。用C口的PC0提供转换启动信号;用P巳接收转换结束信号。

8255AAD570CPUPA0~7PC0PC7GNDA0~7B/CDRDGINA图10.14AD570与CPU接口HOMEBACK查询方式的A/D转换器接口电路设计10/4(2)软件编程

MOVDX,303H ;8255A命令口

MOVAL,98H ;工作方式字

OUTDX,AL MOVAL,01H ;置PC0=1,使B/C=1准备发启动信号

OUTDX,AL MOVAX,0040H ;内存数据区段址

MOVES,AX MOVBX,00H ;偏移地址

MOVCX,0FFH ;采样次数AGAIN:MOVAL,00H ;再置PC0=0,即置B/C=O OUTDX,AL ;启动转换并维持低电平WAIT1:MOVDX,302H ;查PC7=0,即查转换结束DR=0? INAL,DX

HOMEBACK查询方式的A/D转换器接口电路设计10/4

SHLAL,1 JCWAIT1 ;未结束,等待;否则,读数

MOVDX,300H ;从A口读数

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

MOVDX,303H ;置PC0=1,使启动信号B/C

变高电平

MOVAL,01H ;撤销启动信号

OUTDX,AL INCBX ;内存加1LOOPAGAIN ;次数减1,未完,继续

MOVAX,4C00H INT21HHOMEBACK中断方式的A/D转换器接口设计10/5一、单板机系统的中断方式数据采集系统设计

1.要求以TP86单板机为控制器,对单通道模拟信号采集512个8位数据,采集到的数据以中断方式读人内存,并送到D/A转换器。

2.分析与设计

(1)ADC0804特性分析

ADC0804是—个单通道模拟量输入,8位分辨率的MD转换器。输出有三态锁存,可直接与系统数据总线相连。

ADC0804的转换启动信号由田CS·WR两个信号组合产生,当这两个信号同时为低电平时,启动转换。转换结束信号为INTR,低电平有效,当转换结束时,INTR为低电平,它反向后可以作中断请求。HOMEBACK中断方式的A/D转换器接口设计10/5(2)中断控制的分析本例题是属于用户自行设计和配置中断系统的应用情况。为此,先设定82559A的使用条件。

8259A在单板机系统中是单片使用,设中断类型号高5位为80H,边沿触发,指定中断结束方式。中断请求是ADC0804的引脚INTR,它反向后接到8259A的中断输入线IR0上,这意味着ADC0804的中断级别在TP86单板机系统中优先级最高。地址总线的A1接到8259A的引脚Ao上,8259A的两个端口地为0FFDCH(Ao=O)和0FFDEH(A0=1)。根据以上分析,没计了TP86中断方式的A/D转换器接口电路,如图10.15所示。HOMEBACK中断方式的A/D转换器接口设计10/53.程序设计其程序流程图如图10.16所示。程序如下:

STACKSEGMENTPARASTACK‘STACK’DB200DUP(0)STACKENDSDATASEGMENTBUFRDB512DUP(0)

ADCEQU0FFD4H ;ADC端口

PIC0EQU0FFDCH ;8259A的偶地址端口

PIC1EQU0FFDEH ;8259A的奇地址端口

DACEQU0FFD6H ;DAC端口DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK

;中断向量装入HOMEBACK中断方式的A/D转换器接口设计10/5START: MOVAX,CODE MOVCS,AX MOVAX,DATA MOVDS,AX MOVAX,STACK MOVSS,AX MOVAX,00H MOVES,Ax ;设置00H段基址指向中断向量表的存储区

MOVBX,200H ;中断号*4→BX MOVES:[BX],OFFSETREAD_INT ;装入中断向量的偏移值

PUSHCS POPAX ;取主程序的段址作为服务程序的段址

MOVES:[BX+2],AX ;装人中断向量的段值

MOVDI,OFFSETBUFR ;设置数据区首址

MOVCX,512 ;采样次数 ;8259A初始化

CLI;关中断

MOVAL,13H ;写ICW:(边沿触发,单片,需要ICWa)

HOMEBACK中断方式的A/D转换器接口设计10/5MOVDX,PICO;8259A端口(A0=0) OUTDX,AL MOVAL,80H ;写ILW2(中断号高5位) MOVDX,PIC1 ;8259A端口(A0=1) OUTDX,AL MOVAL,01H ;写ICW4(非缓冲,正常结束,16位机) OUTDX,AL ;8259A端口(A0=1)

;开放IR0中断请求

MOVDX,PIC1 ;8259A端口(A0=1) INAL,DX ;写OCW1(允许IR0请求中断) ANDAL,OFEH OUTDX,AL

;启动转换AGAIN:MOVAX,00H ;写入的数据可以取任意值

MOVDX,ADC ;启动转换(Cs、WR同时有效) OUTDX,AL STI开中断

HOMEBACK中断方式的A/D转换器接口设计10/5 HLT ;等待中断请求

CLI ;关中断

DECCX ;次数减1 JNZAGAIN ;次数未到,继续启动转换 ;屏蔽IR0中断请求

MOVDX,PIC1 ;8259A端口(Ao=1) INAL,DX ;次数已到,屏蔽11%

ORAL,01H OUTDX,AL MOVAXOFF00H ;返回监控

PUSHAX MOVAX,0000H PUSHAX RET

;中断服务程序READ_INTPROCFAR PUSHAX ;寄存器进栈

PUSHDXHOMEBACK中断方式的A/D转换器接口设计10/5PUSHDIMOVDX,ADCINAL,DX ;从ADC0804读人数据

NOPNOPMOV[DI],AL ;读人的数据存入内存

MOVDX,DAC ;向DAC0832OUTDX,AL ;输出数据

INCDI ;内存加1MOVAL,60H ;写OCW2(指定IR0中断结束)MOVDX,PIC0 ;8259A端口(A0=0)OUTDX,ALIRET ;中断返回

POPDI ;寄存器出栈

POPDXPOPAXREADINTENDPCODEENDSENDSTARTHOMEBACK中断方式的A/D转换器接口设计10/5二、PC机系统的中断方式数据采集系统设计

1.要求以PC机为控制器,采用中断方式,进行8通道数据采集,采集1K字节。采集的数据在屏幕上显示。为此,采用ADC0809作A/D转换器,并利用系统的mQ2引入ADC外部中断。接口中,端口地址分配为:30CH作转换启动的控制口和转换结束的状态口;30DH作中断申请允许端口;30EH作通道选择和读数据端口。

2.分析

(1)ADC0809外部特性从图10.17和图10.18可以看出,ADC0809有8个模拟量输人端(IN0-IN7),相应设置3根模拟量通道地址线(ADDA—ADDc)用以编码来选择8个模拟量输入通道。并且还设置1根地址锁存允许信号ALE,高电子有效。HOMEBACK中断方式的A/D转换器接口设计10/5(2)接口电路结构形式本例采用GAL20V8作接口电路。其设计思想是利用GAL器件对信号的转换功能,来协调CPU与ADC0809两者之间信号线的不兼容性。(3)中断处理由于本例题是利用系统的中断资源,只需将ADC0890的转换结束信号EOC连到系统总线的IRQ2上,并在程序中作两件事,一是中断向量的修改;二是对中断控制器8259A的中断屏蔽寄存器IMR和正在服务寄存器ISR进行操作。(4)数据显示数据显示有两点:一是要把采集到的用十六进制表示的数据转换成ASCII码,才能送到屏幕去显示;二是显示格式,数据在屏幕上是采用一列显示,还是满屏显示或分区显示。HOMEBACK中断方式的A/D转换器接口设计10/53.设计

(1)硬件连接

图10.20所示,对ADC0809的控制信号和中断申请信号由GAL20V8产生,通道地址由数据线的低3位Do·D2编码产生,ADC0809的输出数据线直接连到系统的数据总线上,整个接口电路包括端口地址译码只用了一个GAL20V8芯片。

(2)软件编程

STACKSEGMENTPARA‘STACK’DW200DUP(?)STACKENDSDATASEGMENTPARAPUBLIC‘DATA’ INTOA—OFFOW?,定义存储单元

INTOASEGDW? BUFRDB1024DUP(O);定义内存区

N=$_BUFR采样次数

HOMEBACK中断方式的A/D转换器接口设计10/5

STA_EOCEQU30CH ;ADC启动转换/读转换结束端口

ALE_OEEQU30EH ;ADC道锁存/读数据端口

INTENEQU30DH ;允许中断申请端口INPUT_MESDB‘PLEASEINPUTCHANNELNO.(0—7)','$'

;定义输人提示信息ERROR_MESDB‘CHANNELNo.ISINCORRECT:'(DH,OAH

;定义错误提示信息

BD'PLEASEINPUTCHANNELNo.AGAIN':'S'PORT DB(?) ;定义变量PORTDATAENDSCODESEGMENTASSUMEDS:DATA,ES:DATA;CS:CODE,SS:STACKADCPROCFARSTART:MOVAX,DS ;标准序

PUSHAX MOVAX,00 PUSHAX MOVAX,DATA ;给DS、ES测试值

MOVDS,AXHOMEBACK中断方式的A/D转换器接口设计10/5 MOVES,AX

;提示输入通道号

MOVAH,09H MOVDX,SEGINPUT_MES PUSIDS MOVDS,DX MOVDX,OFFSETINPU_ME5 INT21H POPDS

;输入通道号

INPUT:MOVAH,08H INT21H CMPAL,’O’ ;检查错误通道号

JBERROR ;有错,重新输入

CMPAL,,7,

JAERROR SUBAL,30H MOVPORT,AL ;无错,保存通道号→PORT JMPINIT

;显示出错信息HOMEBACK中断方式的A/D转换器接口设计10/5ERRORMOVAH,09H MOVDX,SEGERROR_MFS PUSHDS MOVDS,DX MOVDX,OFFSETERROR_MES INT21H POPDS JMPINTPUT ;有错,重新输入 ;修改中断向量

INIT:MOVAX,350AH ;获取原中断IRQ,(OAH号)的向量

INT21H MOVINTOA_OFF,BX ;保存原中断向量

MOVBX,ES MOVINTOA_SEG,BX CLI ;关中断

MOVAX,250AH ;修改原中断向量

MOVDX,SECNEW_INT ;DS:DX指向新中断向量

PUSHDS MOVDS,DX MOVDX,OFFSETNEW_INT INT21HHOME

BACK中断方式的A/D转换器接口设计10/5 POPDS INAl,,21H ;开放8259A的IRQ2 ANDAL,0FBH OUT21H,Al. ;写入OCW1 MOVCX,N ;采集次数→CX MOVDI,OFFSETBUFR ;内存首址

MOVAL,PORT ;发通道号

MOVDX,ALE_OE OUTDX,AL MOVAL,00H ;允许EOC申请中断(D7=O) MOVDX,INTEN OUTDX,ALBEGIN:MOVAL,00H ;启动ADC转换

MOVDX,SFA_EOC OUTDX,AL STI ;开中断

HLT ;等待中断

CLI ;关中断

DECCX ;次数减1 JNZBEA;IN ;末完,继续HOME

BACK中断方式的A/D转换器接口设计10/5

;恢复原中断向量

MOVAX,250AH ;已完,恢复原中断向量

MOVDX,INTOASEG ;DS:DX指向原中断向量

PUSHDS MOVDS,DX MOVDXINTOA_OFF INT21H POPDS INAL,21H ;屏蔽8259A的IRQ2 ORAL,04H OUT21H,AL ;写入OCW1 MOVAL,80H ;禁止EOC申请中断(D7=1) MOVDX,INTE OUTDX,AL RET ;程序退出,返回DOSADCENDPNEW——INTPROCFAR ;中断服务程序(新) PUSHAX PUSHDX PUSHDIHOMEBACK中断方式的A/D转换器接口设计10/5 CLI ;关中断

MOVDX,ALE_OE INAL,DX ;从ADC0809数据口读数

NOP MOV[D1],AL ;保存数据 ;十六进制一ASCH转换及显示

ANDAL,0F0H ;显示高位数据

MOVCL,4 SHRAL,CL CMPAL,9 JAHEX ADDAL,30 JNIPNEXTHEX:ADDAL,37HNEXT:MOVDL,AL MOVAH,2 INT21H MOVAL,[DI] ANDAL,0FH ;显示低位数据

CMPAL,9HOMEBACK中断方式的A/D转换器接口设计10/5 JAHEXT1 ADDAL,30 JMPNEXT1HEX1:ADDAL,37NEXT1:MOVDL,AL MOVAH,2 INT21H MOVDL,20H ;显示空格

MOVAH,2 INT21H INCDI ;内存地址加1 MOVAL,62H ;发中断结束命令

OUT20H,AL ;写入OCW2 STI ;开中断

POPDI POPDX POPAX IRET ;中断返回NEW_INTENDPCODEENDSENDSTARTHOMEBACK微型计算机系统的A/D.D/A通道10/8一、模拟通道的电路组成包括CPU、模拟量输入接口、A/D转换器(ADC)、采样/保持器(S/H)和多路模拟开关(AMUX)。同样,一个完整的控制系统,除了功放与执行元件之外,其余部分称为D/A通道。它包括CPU、模拟量输出接口、D/A转换02(DAC)、多路模拟开关(AMUX)和输出保持器(缓冲器)。1.多通道模拟开关由于计算机在某一时刻只能接收处理一路模拟量输入,为了从多个模拟量中选取其中一个进行输入,通常采用模拟多路开关来实现信号的分时切换。

2.采样/保持器由于A/D转换器完成一次转换需要——定时间,对于高速变化的信号源,在转换期间,其值可能已发生了变化,引起转换误差,因此,为了“冻结”时变信号的瞬时值,在A/D通道中采用采样/保持器。HOMEBACK微型计算机系统的A/D.D/A通道10/8二、模拟通道的结构形式

1.A/D通道的结构形式

(1)单通道

①不带采样/保持器的单通道。用于直流或低频模拟信号的

MD转换。

②带采样/保持器的单通道。用于高速模拟信号的A/D转换。

(2)多通道

①每个通道都带有采样/保持器和A/D转换

温馨提示

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

评论

0/150

提交评论