1、 概 述10.1 DA转换器及其接口技术 分辨率是指输入数字量最低有效位为 1 时,对应输出可分辨的电压变化量U与最大输出电压Um之比,即分辨率分辨率=1/(21)n最小阶梯电压参考电压最小阶梯电压参考电压*分辨率分辨率 =参考电压参考电压/(2n1)实现D/A转换器和微型计算机接口技术的关键是数据锁存问题。有些D/A转换器芯片本身带有锁存器,但也有些D/A从转换器芯片本身不带锁存器。此时一些并口芯片如8212,74LS273及可编程的并行I/O接口芯片8255A均可作为D/A转换的锁存器。数据CSWR输出8255数据输出WRADAD2、AD558与PC机的连接图 CODESEGMENTASS
2、UME CS:CODESTART:MOV CX,256MOV AL,0MOV DX,30CHLOOP1:OUT DX,AL;输出AL内容CALL DELAY;延时INC AL;AL内容加1LOOP LOOP1;循环256次JMP START;重新输出下一;个锯齿波CODE ENDSEND STARTDAC0832逻辑结构框图逻辑结构框图DAC0832有三种工作方式:(3)设计 D7D0IOWA9A0AEN系统总线DI07WR1ILECSDAC0832译码器WR2XFERDGNDVREFRFBIO1IO2AGND+-AR+5VVout DAC0832单缓冲方式连接+5V314H 软件设计程序清单
3、如下:(4)讨论第一级缓冲 第二级缓冲 数据写入方式数据写入方式(LDAC更新更新DAC输出输出)数据写入方式数据写入方式(LOAD更新更新DAC输出输出)DATACLKLOADLDACREFAREFBREFCREFDDACADACBDACCDACDPC0PC1PC2PC3TLC56208255ATLC5620与与8255A的连接的连接 MOV CL,5;先把;先把AX内容左移内容左移5位位SHL AX,CLMOV DX,AX;DX为串行输出的数据为串行输出的数据,最高位为通道选择最高位为通道选择MOV CX,11;循环;循环11次次DAC_PROC1:MOV AL,0;预置对;预置对DATA
4、线的置位复位字线的置位复位字SHL DX,1;取串行输出位;取串行输出位ADC AL,0;把串行输出位送到置位复位字的第;把串行输出位送到置位复位字的第0位位OUT 86H,AL;把;把DATA线上串行输出位内容线上串行输出位内容MOV AL,00000010B;发送;发送CLK负脉冲负脉冲OUT 86H,ALMOV AL,00000011BOUT 86H,ALLOOP DAC_PROC1;循环;循环MOV AL,00000100B;循环完毕,发循环完毕,发LOAD负脉冲负脉冲OUT 86H,ALMOV AL,00000101B;OUT 86H,ALMOV AL,00000110B;发发LDA
5、C负脉冲负脉冲OUT 86H,ALMOV AL,00000111B;OUT 86H,AL主程序段:例 DAC1210接口电路设计8位输入锁存器4位输入锁存器12位DAC寄存器12位相乘型D/A转换器&LELELELSBMSBDI11 15DI10 16DI9 17DI8 18DI7 19DI6 20DI5 4DI4 5DI3 6DI2 7DI1 8DI0 9BYTE1 23/BYTE2CS 1 WR1 2XFER 21WR2 2210 VREF14 IOUT213 IOUT111 RFB24 Vcc3 AGND24 DGNDDAC1210内部结构12位DAC与CPU之间加两级锁存器(右对齐)P
6、C扩展槽D0-7IOWANEA0-9BUF1D0-7 Q0-7CBUF3D0-7 Q0-7CBUF2D0-7 Q0-7C 12位DACD0-7 D/A I01 D8-11 I02译码器Y0Y1图10-5 12位DAC与CPU之间加两级锁存器(3)设计 软件设计程序清单如下:10.2 AD转换器及其接口技术 分辨率指分辨率指A/D转换器对输入模拟信号的分辨能力。通转换器对输入模拟信号的分辨能力。通常用数字输出最低位(常用数字输出最低位(LSB)所对应的模拟输入的电平值)所对应的模拟输入的电平值表示。如表示。如A/D转换器的输出为转换器的输出为 12 位二进制数,最大输入位二进制数,最大输入模拟信
7、号为模拟信号为 10V,则其分辨率为,则其分辨率为分辨率分辨率10/(2N 1)10/2N 2.44mV10.2 AD转换器及其接口技术 1.计数斜波式计数斜波式A/D转换器转换器 DA8255比较器模拟输入 2.逐次逼近式逐次逼近式A/D转换器转换器 1 0 0 0 0 0 0 0D7 1 0 0 0 0 0 0D7 D6 1 0 0 0 0 0D7 D6 D5D4 D3 D2 D1 D0DHPC0Ui=163mV的逐次比较过程 3.双积分型双积分型A/D转换器转换器 计数器充电时间充电时间T1 放电放电T2充电时间V0Vi*T1/放电时间V0VR*T2/=0T2=(T1/VR)*Vi在实际
8、测量中在实际测量中T1,VR固定固定 4.并行比较型并行比较型A/D转换器转换器并行比较型并行比较型模拟输入允许输出OE数据输出启动信号Start转换结束EocA/D转换器与CPU的连接1.ADC的启动信号:ADC的转换启动方式有脉冲启动和电平启动之分。前者要求在转换期间不变,而后者在转换开始后就可以撤消。转换启动信号有单个信号启动和由多个信号组合起来的复合信号启动之分。2.ADC的输入信号:ADC的模拟信号输入有多通道和单通道之分。3.ADC的输出信号:(1)A/D转换器的分辨率:当ADC的分辨率高于数据总线的宽度时,需要两次读取。(2)A/D转换器的三态输出锁存器:决定是否可直接挂在CPU
9、的数据总线上。4.ADC的转换结束信号:可用于查询方式、中断方式、DMA方式的申请信号。A/D转换器接口的主要操作分析与设计A/D转换器接口的方法分析与设计A/D转换器接口的方法查询方式的数据采集程序框架(模块)例 查询方式的ADC接口电路设计(2)分析(3)设计(3)设计 软件设计 软件设计(4)讨论例 电平启动的ADC接口设计(3)设计 软件设计参考程序清单如下:(4)讨论IN AL,ADCIN AL,ADCIN AL,ADC中断方式数据采集程序框架(模块)中断方式的ADC接口设计 ADC0809外部特性ADC0809的内部逻辑ADC0809的时序(2)分析(3)设计 软件设计:程序流程图
10、程序清单如下:主程序825C5A初始化修改中断向量主程序主体中断服务程序 A_DPROCFAR(4)讨论A AD DC C0 08 80 09 9IN0IN1IN2IN3IN4IN5IN6IN7OEEOCD-1|D-8ADDAADDBADDCALESTART8 82 25 55 5A APA7|PA0PC0PC1PC2PC3PC4PC58253通道08253通道0OUTA GATEACLKAFclk=1MHz fout=2KHz8259IR0;通道;通道0-7转换转换100个数个数ADC_P DW?ADC_COUNT DW?BUFFERDB 100DUP(?)主程序主程序CALL INIT;初
11、始化可编程芯片;初始化可编程芯片MOV ADC_P,OFFSET BUFFERMOV ADC_COUNT,100MOV AL,08H;启动启动8253OUT C-PORT,AL;中断程序;中断程序ADINT PROCCLIPUSH AXPUSH BXMOV BX,ADC_PIN AL,A_PORT;取数取数MOV BX,AL;存数;存数INC ADC_P;指针加指针加1INC ADC_COUNT;计数器加;计数器加1CMP ADC_COUNT,100;是否转换;是否转换100个数个数JNZ LOP1;没有,转;没有,转LOP1MOV AL,0;有,停止;有,停止8253工作工作OUT C_PO
12、RT,ALLOP1:POP BXPOP AXSTIIRETENDP三、三、TLC0831与与8086CPU的接口的接口 D0CLKCSPC0PC4PC5TLC08318255A补充习题补充习题1 1解答解答 ;三角波形的上斜坡;三角波形的上斜坡 MOVMOVAX,0FFFFHAX,0FFFFH;从;从0 0开始开始NEXT1NEXT1:INCINCAXAX MOV MOVDX,300HDX,300H OUT OUTDX,ALDX,AL;送数给;送数给D/AD/A MOV MOVDX,301HDX,301H MOV MOVAL,AHAL,AH OUT OUTDX,ALDX,AL MOV MOVD
13、X,302HDX,302H OUT OUTDX,ALDX,AL;送到第二级锁存器;送到第二级锁存器 CALLCALLDELAYDELAY;延时;延时 CMPCMPAX,0FFFHAX,0FFFH;是否达到最高点;是否达到最高点 JNZJNZNEXT1 NEXT1;三角波形的下斜坡;三角波形的下斜坡NEXT3NEXT3:DECDECAXAX MOV MOVDXDX,300H300H OUT OUTDXDX,ALAL;送数给;送数给D/AD/A MOV MOVDXDX,301H301H MOV MOVALAL,AHAH OUT OUTDXDX,ALAL MOV MOVDXDX,302H302H O
14、UT OUTDXDX,ALAL;送到第二级锁存器;送到第二级锁存器 CALLCALLDELAY DELAY;延时;延时 CMPCMPAXAX,0 0;是否达到最低点;是否达到最低点 JNZJNZNEXT3NEXT3 DEC DECAXAX JMP JMPNEXT1NEXT1;开始上斜坡;开始上斜坡 ;延时;延时DELAYDELAY:MOVMOVCXCX,0FFH0FFHDELDEL:LOOPLOOPDELDEL RET RET CPUCPUPAPA0-7PCPC1PCPC6GNDGNDA A0-7B/C INB/C INDRDRDGDG8255A8255AAD570AD570A A补充习题补充
15、习题2 2解答解答 程序如下程序如下 MOV DXMOV DX,303H 303H ;8255A8255A命令口命令口 MOV ALMOV AL,98H 98H ;工作方式字;工作方式字 OUT DXOUT DX,ALAL MOV AL MOV AL,03H 03H ;先置;先置PCPC1 1=1=1,准备发启动信号,准备发启动信号 OUT DXOUT DX,ALAL MOV AX MOV AX,0100H 0100H ;内存数据区的段址;内存数据区的段址 MOV ESMOV ES,AXAX MOV MOVBXBX,00H 00H ;偏移地址;偏移地址 MOV CXMOV CX,7FH 7FH
16、 ;采样次数;采样次数AGNAGN:MOV ALMOV AL,02H 02H ;置;置PCPC1 1=0=0 OUT DX OUT DX,ALALWATWAT:MOV DXMOV DX,302H 302H ;查;查PCPC6 6=0=0?IN ALIN AL,DXDX SHL AL SHL AL,2 2 JC WAT JC WAT MOV DX MOV DX,300H 300H ;8255A8255A数据口数据口 IN ALIN AL,DXDX MOV ES MOV ES:BXBX,AL AL ;存数于内存;存数于内存 MOV DXMOV DX,303H 303H ;置;置PCPC1 1=1=1 MOV AL MOV AL,03H 03H ;撤消启动信号;撤消启动信号 OUT DXOUT DX,ALAL INC BX INC BX ;内存地址加;内存地址加1 1 LOOP AGN LOOP AGN ;次数减;次数减1 1,没完继续,没完继续 MOV AXMOV AX,4C00H4C00H IN 21H IN 21H补充习题补充习题3 3电路图是:电路图是: