第13章模拟量输入/输出通道第13章模拟量输入/输出通道本章重点:掌握A/D和D/A转换器接口的工作原理、性能参数和常用接口芯片的功能和应用。本章难点:在实际应用中正确地连接A/D和D/A转换器接口芯片,并编写正确的应用程序。在一个实际的系统中需用传感器把各种物理参数(如压力和温度等)测量出来,并转换为电信号,再经过A/D转换器,传送给微型计算机;微型计算机加工处理后,通过D/A转换器去控制各种参数量。把模拟量转换成数字量的器件,称为模数转换器,简称为A/D(AnologtoDigit)。把数字量转换成模拟量的器件称为数模转换器,简称为D/A(DigittoAnolog)。一般的A/D转换过程是通过采样、保持、量化和编码4个步骤完成的,这些步骤往往是合并进行的。13.1概述为了实现数字量到模拟量的转换,必须将每位代码按其权值的大小转换成相应的模拟量,然后将各模拟分量相加,其总和就是与数字量对应的模拟量,这就是D/A转换的基本原理。D/A转换器主要由电阻网络、电子开关、基准电压及运算放大器组成。13.2数/模(D/A)转换器接口13.2.1D/A转换原理1.分辨率2.转换精度3.线性度4.温度灵敏度5.建立时间13.2.3DAC0832原理及应用1.主要性能指标1)8位,单极性,数据线与TTL兼容;2)二级数据锁存(第一级为输入锁存);3)20脚双列直插式封装13.2.2D/A转换器性能参数2.引脚功能DAC0832有20个引脚,按双列直插式排列。引脚图如图所示,具体功能如下:DI7~DI08位数字量输入端。ILE允许输入锁存信号,高电平有效。13.2.3DAC0832原理及应用输入寄存器选择信号,低电平有效,它和ILE信号一起来决定是否起作用;CS1WR输入寄存器的写选通信号,必须和、ILE同时有效;1WR1WRCS13.2.3DAC0832原理及应用传送控制信号,用来控制是否起作用。写信号2,在传送控制信号有效的情况下,用它将输入寄存器的数字传送到DAC寄存器,同时D/A转换器开始转换。XFER2WR2WR13.2.3DAC0832原理及应用Vcc芯片逻辑电源,范围为+5~+15V。AGND模拟量地。DGND数字量地。IOUT1模拟电流输出1,当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0。13.2.3DAC0832原理及应用IOUT2模拟电流输出2,IOUT2为一个常数和IOUT1的差。Rfb反馈电阻引出端。反馈电阻被制作在芯片内,用做外接运算放大器的反馈电阻,它与内部的R-2R电阻相匹配。VREF参考电压输入端,它的范围为-10~+10V。13.2.3DAC0832原理及应用3.数/模转换器的应用DAC0832内部有两个寄存器,可以工作在直通方式、单缓冲方式及双缓冲方式。如果工作在直通方式,则没有锁存功能:如果工作在缓冲方式,则有一级或二级锁存能力。13.2.3DAC0832原理及应用3.数/模转换器的应用1)单缓冲方式DAC0832工作在单缓冲方式下的一种连接电路如图13-15所示。在实际应用中,经常需要用到一个有规律变化的电压去控制某个过程。可以利用D/A转换器产生各种波形,如方波、三角波、锯齿波以及它们的复合波形和不规则波形等。13.2.3DAC0832原理及应用1)单缓冲方式编程改变0832输入的数字量,在VOUT产生方波、三角波、锯齿波。设DAC的输入寄存器的地址为FFF0H。①锯齿波MOVDX,0FFFOHMOVAL,00HL1:OUTDX,ALINCALJMPL11)单缓冲方式②三角波MOVDX,0FFF0HMOVAL,00HL1:OUTDX,ALINCALJNZL1MOVAL,0FFHL2:OUTDX,ALDECALJNZL2JMPL1③方波MOVDX,0FFF0HL1:MOVAL,00HOUTDX,ALCALLDELAYMOVAL,0FFHOUTDX,ALCALLDELAYJMPL1其中,DELAY为一个延时子程序,根据所需的方波周期设置延时时间。1)单缓冲方式DAC0832工作于双缓冲方式的连接电路图如图所示。CPU执行第一条输出指令,将数据输入输入寄存器,第二条输出指令,将输入寄存器的数据输入DAC寄存器。这两条输出指令所用的地址是不同的。2)双缓冲方式计数器对时钟脉冲加1计数,产生从0开始的数字量,经D/A转换器转换成模拟电压V0,V0和待转换电压Vi进行比较,若ViVo则Vc=l,继续计数:若Vi≤Vo则输出Vc=0,停止计数,计数器输出的数字量与输入模拟电压Vi相等效的数字量。13.3模/数(A/D)转换器接口1分辨率(位数)2转换时间3量程4绝对精度5相对精度13.3.1A/D转换器的性能参数ADC0809是CMOS工艺制作的8通道的8位逐次逼近式ADC,其输出具有三态锁存和缓冲能力,易于和微处理器相连。结构图如图所示,各引脚功能如下:13.3.2ADC0809芯片IN0~IN7:8路模拟量输入端。ADDC,ADDB,ADDA:地址输入端,用以选择8个模拟量之一。ALE:地址锁存允许信号。START:启动A/D转换控制信号输入端。其上升沿使内部逐次逼近寄存器复位,下降沿启动A/D转换。CLOCK:时钟脉冲输入端。频率范围为10~1280kHz。DB7~DB0:8位数字量输出端。EOC:转换结束信号。输出、高电平有效。OE:输出允许信号。VREF(+)、VREF(-):基准电源正负端。VCC:电源电压,十5V。GND:地线。1.A/D转换器与系统连接时需考虑的问题(1)数据输出线的连接(2)模拟输入电压的连接(3)A/D转换的启动信号(4)转换结束信号的处理方式当A/D转换结束,ADC输出一个转换结束信号数据。CPU可有多种方法读取转换结果:①查询方式;②中断方式;③延时方式;④DMA方式;⑤时钟的提供;⑥参考电压的接法。13.3.3模/数转换器应用2.ADC0809芯片和系统的连接举例设某系统对8路模拟量分时进行数据采集,选用ADC0809芯片进行A/D转换,转换结果采用查询方式传送,所以除了一个传送转换结果的输入端口外,还需要传送8个模拟量的选择信号和A/D转换的状态信息。因此,可以采用8255A作为ADC0809和CPU的连接接口,将A口设为方式0的输入方式,用于传送转换结果,B口不用,用C口的PC2~PC0输出8路模拟量的选择信号,PC3输出ADC0809的控制信号,而ADC0809的状态可由PC7输入,所以,将C口也设为方式0,低4位为输出方式,高4位为输入方式。13.3.3模/数转换器应用现假设8255A的端口A、B、C及控制口地址分别为2F0H,2F1H,2F2H和2F3H,A/D转换结果的存储区首地址设为400H。采样顺序从IN0~IN7。程序如下:MOVDX,2F3H;2F3H是8255的控制口MOVAL,10011000B;置A组,B组为方式0,A口和C口高4位OUTDX,AL;输入,C口低4位输出MOVSI,400H;存放数据首地址MOVCX,08HMOVBH,00HLOPl:ORBH,08HMOVAL,BHMOVDX,2F2H;8255C口地址OUTDX,AL;启动A/D转换ANDBH,0F7HH;PC3置0MOVAL,BHOUTDX,AL;产生START和ALE的下降沿LOP2:INAL,DX;读入C口TESTAL,80H;测试K7JZLOP2;为0,继续查询MOVDX,2F0H;8255A口地址INAL,DX;读入A/D转换结果MOV[SI],AL;存储数据INCSIINCBHLOOPLOPl;8路没完,继续HLT本章完谢谢大家