[信息与通信]DAC和ADC.ppt

上传人:sccc 文档编号:4860187 上传时间:2023-05-20 格式:PPT 页数:133 大小:2.53MB
返回 下载 相关 举报
[信息与通信]DAC和ADC.ppt_第1页
第1页 / 共133页
[信息与通信]DAC和ADC.ppt_第2页
第2页 / 共133页
[信息与通信]DAC和ADC.ppt_第3页
第3页 / 共133页
[信息与通信]DAC和ADC.ppt_第4页
第4页 / 共133页
[信息与通信]DAC和ADC.ppt_第5页
第5页 / 共133页
点击查看更多>>
资源描述

《[信息与通信]DAC和ADC.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]DAC和ADC.ppt(133页珍藏版)》请在三一办公上搜索。

1、第 10章,第10章 模拟接口,教学重点 DAC 0832及其与主机的连接 ADC 574、0809及其与主机的连接,模拟量与数字量,模拟量连续变化的物理量,数字量时间和数值上都离散的量,概念:模拟输入输出系统,传感器将各种现场的物理量测量出来并转换成电信号(模拟电压或电流),放大器把传感器输出的信号放大到ADC所需的量程范围,低通滤波器用于降低噪声、滤去高频干扰,以增加信噪比,多路开关把多个现场信号分时地接通到A/D转换器,采样保持器周期性地采样连续信号,并在A/D转换期间保持不变,10.1 D/A转换器的接口方法,模拟量,数字量,数字量 按权相加 模拟量,一、D/A转换的基本原理,D/A(

2、Digit to Analog)转换器的作用是将二进制的数字量转换为相应的模拟量。,V0,Rf,Vi,R,V0=-,Rf,R,Vi,若输入端有n个支路,则输入和输出的关系可表示为:,V0=-,Rf,n,I=1,R,Vi,1,V0,Rf,Vref,32R,V0=-,n,I=1,2i,Si,1,运算放大器的输入可以是权电阻网络,如图所示。,2R,4R,8R,16R,64R,128R,256R,S1,S3,S2,S4,S5,S6,S7,S8,Vref,其中Vref为基准电压,所有开关,Si断开时,,V00。,所有开关,Si闭合时,,V0。,256,255,Vref,D/A转换器的原理图(1),T型电

3、阻网络,D/A转换器的原理图(2),D/A转换器的原理图(3),VaVREFVbVREF/2VcVREF/4VdVREF/8,I0Vd/2RVREF/(82R)I1Vd/2RVREF/(42R)I2Vd/2RVREF/(22R)I3Vd/2RVREF/(12R),D/A转换器的原理图(4),Iout1I0I1I2I3VREF/2R(1/81/41/21)RfbRVoutIout1RfbVREF(20212223)/24,Vout(D/2n)VREF,实际的D/A转换电路的原理框图,运算放大器,电流开关,电阻网络,数据锁存器,数据缓冲器,N位数字量输入,电压输出,通常D/A转换器的输出电压范围有

4、05V、0 10V、0 25V、0 5V、0 10V几种。对于非标准的电压范围,可以在输出端再加运算放大器来调整。,D/V,D/I,数字量输入,数字量输入,VOUT,IOUT,D/A转换器输出的两种形式,电压输出型,电流输出型,相当于一个电压源,相当于一个电流源,二、D/A转换器及其连接特性,D/A转换器的主要参数,分辨率(resolution):DAC对模拟量的分辨能力,它是最低有效位(LSB)对应的模拟值,通常以二进制位数来表示。精度(accuracy):DAC转换的精确程度 绝对精度(absolute):实际输出与理想输出之差。通常由增益误差,零点误差、线性误差、噪声等综合引起。(LSB

5、),相对精度(relative):满量程值校准后,任一数字输入的模拟输出与它理论值之差。1.0(1.0VFS)。备注:精度为n位指:最大可能误差为VE=VFS 精度:构成DAC各部件的精度及稳定性 分辨率:取决于DAC位数 转换时间(建立时间)电流型较快:n百us几us 电压型较慢:(运放)线性度:线性变化程度。还有温度系数、电源敏感系数等。,D/A转换器的连接特性 输入缓冲能力:三态输入缓冲/锁存器 输入数据宽度:单次、分次输入 输入码制:模拟量类型:电流(运放电压)、电压 模拟量极性:单极性、双极性,二、DAC0832芯片,DAC0832是典型的8位电流输出型通用DAC芯片,DAC0832

6、的内部结构,1.DAC0832的数字接口,8位数字输入端DI0DI7(DI0为最低位)输入寄存器(第1级锁存)的控制端ILE、CS*、WR1*DAC寄存器(第2级锁存)的控制端XFER*、WR2*,Iout1、Iout2电流输出端Rfb反馈电阻引出端(电阻在芯片内)VREF参考电压输入端10V10VAGND模拟信号地VCC电源电压输入端5V15VDGND数字信号地,三、D/A转换器与微处理器的接口方法,CPU对DAC的数据传送是一种无条件传送。主要任务:解决CPU与DAC之间的数据缓冲问题。,1.接口的任务,2.接口电路结构形式,采用中小规模逻辑芯片构成接口与CPU连接。利用通用并行I/O接口

7、芯片与CPU连接。采用GAL器件。,REF(-),REF(-),),REF(,OUT,V,2n,V,V,V,+,-,=,+,N,VREF(+):限定模拟电压的最大值VREF(-):限定模拟电压的最小值。(单极性、双极性)VREF(+)VREF(-):量程模拟电压V 和数字量N之间的关系为:,OUT,单极性:,80H对应的输出电压:VOUT=(5-0)*128/256+0=2.5V能分辨的最小电压为 5v/256=20 mv,双极性:,则80H对应的输出电压:VOUT=(5+5)*128/256-5=0能分辨的最小电压为 10v/256=40 mv,输出模拟量的极性:,直通锁存器的工作方式,两级

8、缓冲寄存器都是直通锁存器LE1,直通(输出等于输入)LE0,锁存(输出保持不变),DAC0832的工作方式:直通方式,LE1LE21输入的数字数据直接进入D/A转换器,DAC0832的工作方式:单缓冲方式,LE11,或者LE21两个寄存器之一始终处于直通状态另一个寄存器处于受控状态(缓冲状态),DAC0832的工作方式:双缓冲方式,两个寄存器都处于受控(缓冲)状态能够对一个数据进行D/A转换的同时;输入另一个数据,单极性电压输出,VoutIout1Rfb(D/28)VREF,单极性电压输出:例子,设 VREF5VDFFH255时,最大输出电压:Vmax(255/256)5V4.98VD00H时

9、,最小输出电压:Vmin(0/256)5V0VD01H时,一个最低有效位(LSB)电压:VLSB(1/256)5V0.02V,Vout(D/2n)VREF,双极性电压输出:电路,双极性电压输出:公式,取 R2R32R1得 Vout2(2Vout1VREF)因 Vout1(D/28)VREF故 Vout2(D27)/27)VREF,双极性电压输出:例子,设 VREF5VDFFH255时,最大输出电压:Vmax(255128)/1285V4.96VD00H时,最小输出电压:Vmin(0128)/1285V5VD81H129时,一个最低有效位电压:VLSB(129128/1285V0.04V,Vou

10、t(D27)/27)VREF,3.输出精度的调整,4.地线的连接,DAC芯片与主机的连接,DAC芯片相当于一个“输出设备”,至少需要一级锁存器作为接口电路考虑到有些DAC芯片的数据位数大于主机数据总线宽度,所以分成两种情况:1.主机位数等于或大于DAC芯片位数2.主机位数小于DAC芯片位数,1.主机位数大于或等于DAC芯片的连接,mov al,bufmov dx,portdout dx,al,DAC0832单缓冲方式,2.主机位数小于DAC芯片的连接,数字数据需要多次输出接口电路也需要多个(级)锁存器保存多次输出的数据并需要同时将完整的数字量提供给DAC转换器,两级锁存电路,简化的两级锁存电路

11、,mov dx,port1mov al,blout dx,almov dx,port2mov al,bhout dx,al,10.2 D/A转换器接口电路设计,主要考虑:输入缓冲能力 分辨率,IOR,CPU,1,+5V,AEN,IOW,A09,译码电路,DB18,I0GND,1,D0,D07,Y0,Y1,LM710,74LS273,DAC0808,一、8位片内无缓存的D/A芯片的使用 应用:利用DAC0808制作数字电压表,UO,R,VREF(+),U1,Y0:318HY1:319H,UO,AL,AL,74LS125,74LS33,74LS32,C,9,4,3,二、片内有三态输入缓冲器的8位D

12、/A接口设计,1.要求通过D/A转换器DAC0832产生任意波形,如矩形波、梯形波、三角波、正弦波以及锯齿波等。,2.分析(1)连接特性(P262图10.2)(2)DAC0832的工作特性(三种工作方式)直通式单缓冲式双缓冲式3.设计(P261程序),DAC0832的内部结构(P262图10.2),DATA,BUS,CS1,CS2,WR1,WR2,XFER,数据1输入到,1输入寄存器锁存,2输入寄存器锁存,数据2输入到,DAC输入寄存器锁存,开始转换,图10.3DAC0832时序图,应用:控制DAC0832输出三角波,DI07,ILE,CS,WR1,WR2,XFER,IO1IO2,CPU,82

13、55A,PA07,DAC0832,PB4,PB0,1,0,0,0,0,VOUT,PB1,PB2,PB3,P263线路图,(1)硬件设计,RFB,程序,MOV DX,303HMOV AL,1000 0000BOUT DX,ALMOV DX,301HMOV AL,0001 0000BOUT DX,AL MOV DX,300H MOV AL,0H L1:OUT DX,AL,INC AL JNZ L1;AL!=00H MOV AL,0FFHL2:OUT DX,AL INC AL JNZ L2 JMP L1,(2)软件编程,2.锯齿波发生器MOVDX,0FFF0HMOVAL,00HL1:OUTDX,AL

14、INCALJMPL1,3.方波发生器MOVDX,0FFF0HL1:MOVAL,00HOUTDX,ALCALLDELAYMOVAL,0FFHOUTDX,ALCALLDELAYJMPL1,设DAC的输入寄存器的地址为FFF0H,AEN,IOW,A09,D07,D07 Q07,BUF1,D07 Q07,BUF2,D07,D811,IO1IO2,译码电路,Y0,Y1,三、12位片内无缓存的D/A芯片的使用,C,C,C,D/A,FFH,06H,DAC芯片的应用,mov dx,portdmov al,0repeat:out dx,alinc aljmp repeat,输出正向锯齿波,10.3 A/D转换器

15、接口基本原理与方法,模拟量,数字量,模拟量转换成数字量,通常经历采样、量化和编码3个步骤。,按采样定理对模拟信号进行等时间间隔采样,将得到的一系列时域上的样值去代替u=f(t),即用u0、u1、un代替u=f(t)。这些样值在时间上是离散的值,但在幅度上仍然是连续模拟量。,1采样,在幅值上再用离散值来表示。方法是用一个量化因子Q去度量;u0、u1、,便得到整量化的数字量。u0=2.4Q 2Q 010u1=4.0Q 4Q 100u2=5.2Q 5Q 101u3=5.8Q 5Q 101,2.量化,3.编码 将整量化后的数字量进行编码,以便微机读入和识别;编码仅是对数字量的一种处理方法。例如:Q=0

16、.5V/格,设用三位(二进编码)u0=2.4Q 2Q,(010),一、A/D转换的基本原理,存在多种A/D转换技术,各有特点,分别应用于不同的场合4种常用的转换技术计数器式逐次逼近式双积分式并行式,分类:按模拟量:分为时间/数字、电压/数字、机械变量/数字三种;按原理:分为直接和间接两种;(逐次逼近型、双积分式等)按输入方式:分为并行、串行、串并行三种;按速度:分为低速300us、中速20300us、高速20us、次超高速0.333.3us、超高速330ns;按分辨率:分为4位、6位、8位、10位、14位、16位等;按复杂程度:分为单一功能和多功能;,A/D转换器的连接特性模拟信号输入线(多通

17、道时须进行通道选择);数字量输出线:根数表示ADC分辨率;转换启动和结束信号。,A/D转换器与CPU的接口,连接要点 ADC位数与CPU的DB位数若ADC位数高于CPU位数,则CPU分次读a)左对齐:最高位在最左边,缺位在右以0补齐b)右对齐:最低位在最右边,缺位在左以0补齐 ADC芯片是否带三态数据输出锁存器,它可分为直接挂和外加三态输出锁存。ADC的启动信号电平启动:(AD570)整个转换过程中维持不变脉冲启动:(AD574)需一定脉冲宽即可,A/D转换器的外部特性,(1)模拟信号输入线,(2)数字量输出线,(3)转换启动线(输入),(4)转换结束线(输出),P267表10.1,二、A/D

18、转换器与微处理器的接口方法,A/D转换器与CPU的连接需考虑的问题:(1)A/D转换器的分辨率(2)A/D转换器的输出锁存器(3)A/D转换器的启动信号,2.A/D转换器接口的主要操作,进行通道选择以代码形式从数据线(或地址线)上发出 发转换启动信号 取回“转换结束”状态信号 读取转换数据 发采样/保持(S/H)控制信号,3.A/D转换器数据的传送,查询方式 中断方式 DMA方式 设置RAM,4.A/D转换器接口电路的结构形式,(1)采用中小规模逻辑电路(2)采用通用的可编程并行接口芯片(3)采用GAL器件,10.4 查询方式的A/D转换器接口电路设计,主要考虑因素:输出锁存 分辨率 启动信号

19、 数据传送方式 接口电路形式,12/8,cs,A0,R/C,REFIN,REFOUT,10VIN,BIPOFF,20VIN,AGND,STS,MSD,LSD,:,+15V,-15V,DC,-15v,+15v,100K,100K,100,100,010v,020v,AD574,12/8,cs,A0,R/C,REFIN,REFOUT,10VIN,BIPOFF,20VIN,AGND,STS,MSD,LSD,:,+15V,-15V,DC,100,100,5v,AD574,R2,R2,R1,10v,(a)单极性输入,(b)双极性输入,R2,模拟输入,一、12位片内带有三态输出锁存器的A/D接口设计,要求

20、 进行12位转换,转换结果分两次输出,以左对齐方式存放在首地址为400H的内存区。共采集64个数据。ADC与CPU之间采用查询方式交换数据。采用AD574作A/D转换器。2.分析(见P270-271)3.设计,AEN,IOW,IOR,A09,D0D7,DB114,DB30,CS,STS,A0,R/C,CE,12/8,译码电路,&,&,D7,A0,Y0,Y1,Y2,AD574,310H,311H,312H,D0D7,PC扩展槽,Vcc,VEE,10VIN,20VIN,REFIN,REFOUT,BIPOFF,DG,AG,(1)硬件连接,+15V,-15V,74LS125,(2)软件编程,CE,CS

21、,R/C,A0,STS,DB0-11(高阻),有效,300ns,200ns,200ns,300ns,300ns,0ns,150ns,300ns,0ns,200ns,转换25s,启动转换,读转换数据,图10.11 AD574时序图,MOV CX,40H MOV SI,400HSTART:MOV DX,312H MOV AL,0H OUT DX,AL MOV DX,310H L:IN AL,DX AND AL,1000 0000B JNZ L;D7=1,MOV DX,311HIN AL,DXAND AL,0F0HMOV SI,ALINC SIMOV DX,312HIN AL,DXMOV SI,AL

22、INC SIDEC CXJNZ STARTMOV AH,4CHINT 21H,应用二:利用ADC1210(12位无缓存)设计接口电路,查询方式采集数据。右对齐格式存放。,D0,CC,D7,D8,D11,SC,A0,A7,Y0,Y7,LS244(一),A0,A7,Y0,Y7,LS244(二),AEN,D0,D7,RD,A09,1,1,1,译码电路,CPU,IN,A,G,G,Y1,Y2,ADC1210,332H,331H,330H,74LS244,Y0,Y7,A0,A7,G,MOV DX,332H IN AL,DX MOV DX,330HL:IN AL,DX ROL AL,1 JC L;D7=1,

23、MOV DX,330H IN AL,DX AND AL,0FH MOV BH,AL MOV DX,331H IN AL,DX MOV BL,AL HLT,CF,三、用电平启动转换的A/D转换器接口设计,1.要求:8位数据采集系统中,采用AD570作A/D转换。采集256个数据,用查询方式送到内存。,2.分析,B/C,DR,D07,空白,空白,空白,数据,数据,开始转换,开始转换,第二次启动,转换结束,结束,转换时间,转换时间,此处DR不变低即无数据输出,A,2s,25s,25s,1.5s,25s,图10.13 AD570的时序图,转换启动信号,转换结束信号,3.设计,(1)硬件连接,分析:AD

24、570转换芯片的数据无三态锁存器,不能直接与CPU数据总线相连,故选用8255A并行芯片作为AD570与CPU的接口电路。8255A的A口作数据口,用于读取AD570的数据,用C口的PC0提供转换启动信号PC7接收转换结束信号。,CPU,PA07,PC0,PC7,GND,A07,B/C,DR,DG,IN,8255A,AD570,A,(2)软件编程,MOV DX,303HMOV AL,98HOUT DX,ALMOV AL,01HOUT DX,ALMOV AL,0040HMOV ES,AXMOV BX,00HMOV CX,0FFH,AGAIN:MOV AL,00H OUT DX,ALWATT1:M

25、OV DX,302H IN AL,DX SHL AL,1 JC WATT1 MOV DX,300H IN AL,DX MOV ES:BX,AL MOV DX,303H,MOV AL,01HOUT DX,ALINC BXLOOP AGAINMOV AH,4CHINT 21H,10.5 中断方式进行数据采集,一、单板机系统的中断方式数据采集系统设计(P276)1.要求:单通道模拟信号采集512个8位数据(ADC0804),采集到的数据以中断方式(8259A)读入内存,并送到D/A转换器(DAC0832),AEN,A09,D07,地址译码电路,DB07,IN,ADC0804,INTR,TP86,IN

26、TR,A0,D07,IR0,IR7,A1,80H,DB07,WR1 WR2,CS,XFER,ILE,D/A,IO2,IO1,DAC0832,-,+,A,Rfb,+5v,图10.15 单板机系统中方式A/D接口,A,2.分析与设计,8259A,启动转换信号,转换结束信号,3.程序分析,中断向量装入,关中断,8259初始化,转换启动,开中断,等待中断,关中断,采样次数到?,返回监控,N,Y,从ADC0804读数,向DAC0832写数,存数,发中断结束命令,中断返回,中断服务程序,主程序,初始化程序,图10.16 程序流程图,:,:,:,;中断向量装入 START:MOV AX,CODE MOV C

27、S,AX MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX,MOV AX,00HMOV ES,AXMOV BX,200HMOV ES:BX,OFFSET READ_INTPUSH CSPOP AXMOV ES:BX+2,AXMOV DI,OFFSET BUFMOV CX,512,CLIMOV AL,00010011B;ICW1MOV DX,0FFDCH;引脚A0=0 OUT DX,ALMOV AL,1000 0000B;ICW2MOV DX,0FFDEH;引脚A0=1OUT DX,ALMOV DX,00000001B;ICW4OUT DX,AL,;825

28、9A初始化,;开放IR0中断请求,MOV DX,0FFDEHIN AL,DXAND AL,0FEHOUT DX,AL,;写OCW1(允许IR0请求中断),AGAIN:MOV AX,00H MOV DX,0FFD4H OUT DX,AL STI HLT CLI DEC CX JNZ AGAIN,;启动转换,;启动转换(CS、WR同时有效),;开中断,;等待中断请求,;关中断,;次数未到,继续启动转换,;次数减1,;屏蔽IR0中断请求,MOV DX,0FFDEHIN AL,DXOR AL,01HOUT DX,ALMOV AX,0FF00HPUSH AXMOV AX,0000HPUSH AXRET,

29、;8259A端口(A0=1),;次数已到,屏蔽IR0,;返回监控,;中断服务程序,READ_INT PROC PUSH AX PUSH DX PUSH DI MOV DX,0FFD4H IN AL,DX NOP NOP MOV DI,AL MOV DX,0FFD6 OUT DX,AL INC DI,;从ADC0804读入数据,;读入的数据存入内存,;向DAC0832输出数据,;内存加1,MOV AL,0110 0000B;OCW2(指定结束IRQ0)MOV DX,0FFDCH;8259A端口(A0=0)OUT DX,AL IRET;中断返回 POP DI POP DX POP AX,READ_

30、INT ENDP CODE ENDS END START,ADC0809芯片,具有A/D转换的基本功能CMOS工艺制作8位逐次逼近式ADC转换时间为100 s包含扩展部件多路开关三态锁存缓冲器,ADC0809的内部结构图,1.ADC0809的模拟输入,提供一个8通道的多路开关和寻址逻辑IN0IN7:8个模拟电压输入端ADDA、ADDB、ADDC:3个地址输入线ALE:地址锁存允许信号ALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D转换,2.ADC0809的转换时序,3.ADC0809的数字输出,ADC0809内部锁存转换后的数字量具有三态数字量

31、输出端D0D7配合输出允许信号OE当输出允许信号OE为高电平有效时,将三态锁存缓冲器的数字量从D0D7输出,4.ADC0809的转换公式,单极性转换示例,基准电压VREF(+)5V,VREF()0V输入模拟电压Vin1.5VN(1.50)(50)25676.8774DH,双极性转换示例,基准电压VREF(+)5V,VREF()5V输入模拟电压Vin1.5VN(1.55)(55)25689.6905AH,ADC芯片与主机的连接,ADC芯片相当于“输入设备”,需要接口电路提供数据缓冲器主机需要控制转换的启动主机还需要及时获知转换是否结束,并进行数据输入等处理,1.数据输出线的连接,与主机的连接可分

32、成两种方式直接相连:用于输出带有三态锁存器的ADC芯片通过三态锁存器相连:适用于不带三态锁存器的ADC芯片,也适用带有三态锁存缓冲器的芯片ADC芯片的数字输出位数大于系统数据总线位数,需把数据分多次读取,2.A/D转换的启动(1),启动信号一般有两种形式脉冲信号启动转换电平信号启动转换,转换启动,转换结束,2.A/D转换的启动(2),主机产生启动信号有两种方法编程启动软件上,执行一个输出指令硬件上,利用输出指令产生ADC启动脉冲,或产生一个启动有效电平定时启动启动信号来自定时器输出,3.转换结束信号的处理,不同的处理方式对应程序设计方法不同 查询方式把结束信号作为状态信号 中断方式把结束信号作

33、为中断请求信号 延时方式不使用转换结束信号 DMA方式把结束信号作为DMA请求信号,二、PC机系统的中断方式数据采集系统设计 1.要求(P279)PC机以中断方式(8259A的IRQ2引入)进行8通道模拟信号采集(AD0809),共采集1K个数据,采集的数据在屏幕上显示,同时存放存放在内存的BUF区。,端口地址分配为:30CH作转换启动的控制口和转换结束的状态口;30DH作中断申请允许端口;30EH作通道选择和读数据端口。,2.分析 接口电路结构形式,采用GAL20V8作接口电路。利用GAL器件对信号的转换功能,来协调CPU与ADC0809两者之间信号线的不兼容性。把CPU送来的控制线和地址线

34、,作为GAL的输入信号,在GAL器件内部按一定的逻辑关系进行组合,生成一组新的功能信号输出,作A/D的接口信号,送到ADC 0809,并需考虑这些输出信号的I/O地址。,关键问题:找到GAL的输出与输入的关系。,START=IOWAEN A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,D7=IORAEN EOC A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,IRQ=IOWAEN D7 EOC A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,ALE=IOWAEN A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,OE=IORAEN A9 A8 A7

35、 A6 A5 A4 A3 A2 A1 A0,GAL20V8输出的控制信号,中断处理,因利用系统的中断资源,故不需作中断系统的硬件设计和8259A的初始化。只需将ADC0809的转换结束信号EOC连接到系统总线的IRQ2上,并在程序中作两件事,一是中断向量的修改,二是对中断控制器8259A的中断屏蔽寄存器IMR和正在寄存器ISR进行操作。,中断向量的修改步骤:用DOS系统功能调用的35H号功能,取出IRQ2的原中断向量,并保存;用25H号功能,置入新中断向量(用户的中断程序入口地址);在程序结束,退出前,用25H号功能恢复原中断向量。,(2)对8259A两个寄存器IMR和ISR的操作,实际上是分

36、别在主程序中用命令OCW1,屏蔽/开放中断请求,以及在服务程序中,返回主程序之前,用OCW2结束中断。,数据显示两点:一是要把采集到的十六进制的数据转换成ASCII码,才能送到屏幕显示是显示格式,数据在屏幕上是采用一列显示,还是全屏显示或分区显示。,3.设计,1)硬件连接,D0-D7,IRQ2,AEN,IOW,IOR,A9,A8,A7,A6,A5,A4,A3,A2,A1,A0,A6,IOR,I0,I1,F1,F0,F7,I13,ADDA-ADDC,D0-D7,ALE,START,OE,CLK,REF(-),REF(+),EOC,GND,VCC,IN0,IN1,IN2,IN3,IN4,IN5,I

37、N6,IN7,+5V,模拟量输入,D7,GAL20V8,ADC0809,5.000V,500KHz,PC插槽,PC机中断方式A/D接口电路,2)软件编程,分主程序和中断服务程序两部分。参考程序见教材P282-286,选择通道号中断向量修改开放IRQ2中断等待中断判断采集次数关中断恢复中断向量屏蔽IRQ2中断请求,读数据十六进制转换成ASCII码数据送屏幕显示发中断结束命令,主程序,中断服务程序,法1 数据总线选择ADC0809输入通道,读EOC端口:300H,,写通道、启动:308H,,读出转换数据端口:310H,D0,D2D1,D7.,1,Y0,Y1,Y2,E3,CBA,E2,E1,AEN,

38、A7A6,A5A4A3,74LS138,VA,EOC,ALESTART,OE,CBA,ADC0809C,IN0IN1IN2IN3IN4IN5IN6IN7,D0,D7,D2D1,100KHz,CLK,A9A8,0,0,用数据总线选择模拟输入通道的采集程序:,ADSART:MOV CX,8MOV BX,0START:MOV DX,308H;启动地址MOV AL,03H;选择IN3通道OUT DX,AL;启动转换MOV DX,300H;查询地址WAIT:IN AL,DX;输入EOC状态TEST AL,01H;“转换结束”?JZ WAIT;未结束,查询等待MOV DX,310H;输入地址IN AL,D

39、X;读结果LOOP START,法2 地址总线选择ADC0809输入通道,读EOC端口:300H,,写通道、启动:30BH,,读出转换数据端口:310H,用数据总线选择模拟输入通道的采集程序:,ADSTART:MOV CX,8 MOV BX,0 START:MOV DX,30BH;IN3启动地址 OUT DX,AL;启动转换,AL可为任意值 MOV DX,300H;查询地址 WAIT:IN AL,DX;输入EOC状态 TEST AL,01H;“转换结束”?JZ WAIT;未结束,查询等待 MOV DX,310H;输入地址 IN AL,DX;读结果 ADD BL,AL;求和 ADC BH,0 C

40、ALL DELAY;延时10msLOOP STARTMOV CL,3SHR BX,CL;取平均值MOV ADBUF,BL,ADC0809与CPU 数据传输工作过程,1.CPU用OUT指令送出通道选择数据(D2D1 D0),并由IOW和IO地址译码产生有效信号锁存通道号,同时启动A/D,对选中的通道模拟信号开始转换,之后CPU 等待转换结束或是执行其它程序段。CPU 可以采用三种不同方式了解转换结束已知A/D 转换时间情况下可在程序中插入等待延时采用查询方式在程序中,循环读取EOC 信号状态采用中断方式直接将EOC 信号接8259中断请求端2)A/D 转换结束后发EOC 有效信号(在中断方式下将

41、启动中断请求)3)若采用查询方式,则CPU 就可以读取A/D 的输出数据。若采用中断方式,则CPU 响应中断并在中断处理程序中,用IN 指令读取数据线上的数据。IOR与IO地址译码有效信号将选通A/D 输出锁存器。,A/D接口注意:1 要发启动信号。有电平启动和脉冲启动之分,如AD570是低电平启动,AD574为脉冲启动。对于电平启动的ADC,其启动电平要在整个转换过程中维持不变,直到转换结束为止,若在转换结束之前撤销启动电平,就会中止转换过程,得不到正确的转换结果。对于脉冲方式启动的ADC,只要在转换开始后,即可撤除启动信号。2 A/D转换器的输出锁存器3 A/D转换器的分辨率。4 数据格式

42、:左对齐和右对齐。,ADC芯片的应用,例1 编程启动、转换结束中断处理例1 编程启动、转换结束查询处理,中断方式,主程序,;数据段adtemp db 0;给定一个临时变量;代码段;设置中断向量等工作sti;开中断mov dx,220hout dx,al;启动A/D转换;其他工作,例12.2,中断服务程序,adintprocsti;开中断push ax;保护寄存器push dxpush dsmov ax,data;设置数据段DSmov ds,axmov dx,220hin al,dx;读A/D转换的数字量mov adtemp,al;送入缓冲区,例12.2,中断服务程序,mov al,20h;发送

43、EOI命令out 20h,alpop ds;恢复寄存器pop dxpop axiret;中断返回adintendp,例12.2,查询方式,8通道模拟输入(05V),启动转换,;数据段counterequ 8bufdb counter dup(0);数据缓冲区;代码段mov bx,offset bufmov cx,countermov dx,220h;从IN0开始转换start1:out dx,al;启动A/D转换push dx,例12.3,查询读取,mov dx,238h;查询是否转换结束start2:in al,dx;读入状态信息test al,80h;D71,转换结束否?jz start2;没有结束,继续查询pop dx;转换结束in al,dx;读取数据mov bx,al;存入缓冲区inc bxinc dxloop start1;转向下一个模拟通道,例12.3,第10章教学要求,1.了解模拟输入输出系统及各部件功能2.理解D/A转换和A/D转换原理3.掌握DAC0832和ADC08094.理解DAC和ADC芯片与主机连接问题5.掌握ADC芯片的应用习题10(第299-300页)12.3 12.4 12.7 12.9 12.14,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号