首页 理论教育D/A转换器接口-单片机基础及应用

D/A转换器接口-单片机基础及应用

【摘要】:因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,RFB即为运算放大器的反馈电阻。DAC0832的内部结构框图如图8-39所示,电阻解码网络包含在图中的8位D/A转换器中。2.DAC0832单缓冲连接方式D/A转换器与单片机的接口是数字量输出接口,与并行I/O输出接口一样,必须通过数据缓冲(锁存)器“挂”到数据总线上。所以D/A转换器接口的重点是缓冲器问题。

测控系统中的一些控制对象需要模拟信号进行驱动,例如电动机、变频压缩机、音响、电视机等,于是就把单片机输出的数字量转换为模拟量,以满足模拟控制的需要,于是在模拟输出通道中就要有D/A转换器,D/A转换器也常写为DAC(Digital to Analog Converter)。

1.D/A转换芯片

D/A转换芯片很多,现以DAC0832为例进行说明,它是美国国家半导体公司DAC0830系列中的一个芯片。

DAC0832为8位D/A转换芯片,单一+5V电源供电,基准电压的幅度范围为±10V,电流建立时间为1μs,采用CMOS工艺,低功耗(20mW),芯片为20引脚双列直插式封装。引脚排列如图8-38所示,各引脚名称及其功能说明如下:

DI7~DI0:转换数据输入。

:片选信号(输入),低电平有效。

ILE:数据锁存允许信号(输入),高电平有效。

:第一写信号(输入),低电平有效。该信号与ILE信号共同控制输入寄存器是数据直通方式还是数据锁存方式。当ILE=1且=0时,为输入寄存器直通方式;当ILE=1且=1时,为输入寄存器锁存方式。

图8-38 DAC0832引脚排列图

:数据传送控制信号(输入),低电平有效。

WR2:第二写信号(输入),低电平有效。与信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式;当=0且=0时,为DAC直通方式;当=1且=0时,为DAC寄存器锁存方式。

IOUT1:电流输出1。当数据为全1时,输出电流最大;当数据为全0时,输出电流最小。

IOUT2:电流输出2。

RFB:反馈电阻端,即运算放大器的反馈电阻端,电阻(15kΩ)已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,RFB即为运算放大器的反馈电阻。

VREF:基准电压,是外加高精度电压源,与芯片内的电阻网络相连接,该电压可正可负,范围为-10~+10V。基准电压决定D/A转换器的输出电压范围,例如VREF接+10V,则输出电压范围是0~-10V。

DGND:数字地。

AGND:模拟地。

DAC0832的D/A转换采用T型电阻解码网络,转换电路为R-2R倒T型电阻网络,网络中的电阻阻值只有R和2R两种,容易实现集成化。其转换过程是先将各位数码按权的大小转换为相应的模拟分量,然后再以叠加方法把各分量相加,其和即为转换结果。DAC0832的内部结构框图如图8-39所示,电阻解码网络包含在图中的8位D/A转换器中。

图8-39 DAC0832内部结构框图

由图8-39可知,输入通道由输入寄存器和DAC寄存器构成两级数据输入锁存,由3个“与”门电路组成控制逻辑,产生信号,分别对两个输入寄存器进行控制。当LE1时,数据进入寄存器被锁存;当时,锁存器的输出跟随输入。这样在使用时就可根据需要,对数据输入采用两级锁存(双锁存)形式、单级锁存(另一级直通)形式或直通输入(两级直通)形式。

两级输入锁存,可使D/A转换器在转换前一个数据的同时,将下一个待转换数据预先送到输入寄存器中,以提高转换速度。此外,在使用多个D/A转换器分时输入数据时,两级缓冲可以保证同时输出模拟电压。

2.DAC0832单缓冲连接方式

D/A转换器与单片机的接口是数字量输出接口,与并行I/O输出接口一样,必须通过数据缓冲(锁存)器“挂”到数据总线上。下面从数据转换的角度做一些说明。

D/A转换有一个过程,所需要的时间称为建立时间,不同D/A转换芯片建立时间的长短不同,从几纳秒到几微秒不等。转换时被转换数据由单片机通过输出指令送出,送出数据在数据总线上的存在时间比较短,例如8051只有1个机器周期左右。为了在两者之间进行时间协调,在单片机与D/A转换器之间必须加数据缓冲(锁存)器,先把单片机送出的数据放在缓冲器中保存,供转换器使用。所以D/A转换器接口的重点是缓冲器问题。处于简化接口的原因,许多D/A转换器芯片自带缓冲器。

DAC0832自带了两级缓冲器,所以DAC0832与8051的接口十分简单,并且有单缓冲和双缓冲两种连接方式。

所谓单缓冲连接方式,就是使DAC0832的两个输入寄存器中有一个(多为DAC寄存器)处于直通状态,另一个处于受控的锁存状态。在实际应用中,若只有一路模拟量输出,或虽是多路模拟量输出但并不要求输出同步,就应当采用单缓冲方式,其连接如图8-40所示。

为使DAC寄存器处于直通方式,应使。因此,可以把这两个信号端固定接地,或如图8-40所示把相连,把相连。

图8-40 DAC0832单缓冲方式连接图

为使输入寄存器处于受控锁存状态,应把接8051的,ILE接高电平,把接高位地址线或地址译码输出,以便对输入寄存器进行选择。

【例8-4】在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电子束等。试利用DAC0832来实现锯齿波的生成。

【解】可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接如图8-41所示。

图8-41中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。假定输入寄存器地址为5000H。

图8-41 DAC0832产生锯齿波电路图

编写程序如下:

图8-42 D/A转换产生的锯齿波

由这个例题可见,在单缓冲方式下完成一次D/A转换只需3条基本指令,即地址指向受控的寄存器、转换量装入累加器A和启动D/A转换。执行上述锯齿波程序,在运算放大器的输出端就能得到锯齿波(图8-42)。

对锯齿波的产生作如下几点说明:(www.chuimin.cn)

1)程序每循环一次,R0加1,因此,锯齿波的上升边是由256个小阶梯构成的。但由于阶梯很小,从宏观上来看就如图8-42中所画的线性增长的锯齿波。

2)可通过循环程序段的机器周期数,计算出锯齿波的周期,也可根据需要,通过延时的办法来改变波形的周期。若延迟时间较短,可用NOP指令来实现(本程序就是如此);当需要延迟时间较长时,可以使用一个延时子程序。延迟时间不同,波形周期不同,锯齿波的斜率就不同。

3)通过A加1可以得到正向锯齿波;若要得到负向锯齿波,改为A减1即可实现。

4)程序中A的变化范围是0~255,因此,得到的锯齿波是满幅度的。若要求得到非满幅度的锯齿波,可通过计算求得数字量的初值和终值,然后在程序中通过置初值判终值的办法即可实现。

3.DAC0832双缓冲连接方式

所谓双缓冲连接方式,就是把DAC0832的输入寄存器和DAC寄存器都接成受控锁存方式。在多路D/A转换中,如果要求同步输出,就应当采用双缓冲方式连接,如图8-43所示。

图8-43 DAC0832的双缓冲方式连接图

为了实现对寄存器的控制,应当给两个寄存器各分配一个地址,以便能单独进行操作。图8-43中是使用地址译码输出分别接实现的。由8051的提供选通信号,这样就完成了两个寄存器都可控的双缓冲接口方式。

由于两个寄存器各占据一个地址,因此,在程序中需要使用两条传送指令才能完成一个数字量的模拟转换。假定输入寄存器地址为0EH,DAC寄存器地址为0FH,则完成一次D/A转换的程序段如下:

程序段中的最后一条指令,表面上来看是把A中的数据送入DAC寄存器,实际上这种数据传送并没有真正进行,该指令只是起到打开DAC寄存器使输入寄存器中数据通过的作用,数据通过后就去进行D/A转换。

双缓冲方式的最典型应用,是在多路D/A转换系统中通过双缓冲方式实现多路模拟信号的同步输出。例如,X-Y绘图仪由X、Y两个方向的步进电机驱动,其中一个电机控制绘笔沿X轴方向运动,另一个电机控制绘笔沿Y轴方向运动。因此,对XY绘图仪的控制就有两点基本要求:一是需要两路D/A转换器分别给X通道和Y通道提供驱动信号,驱动绘笔沿X-Y轴作平面运动;二是两路模拟信号要保证同步输出,以使绘制出的曲线光滑。否则,绘制出的曲线就会呈台阶状,如图8-44所示。

在使用单片机控制绘图仪时,要使用两片DAC0832并采用双缓冲方式连接,如图8-45所示。电路中以译码法产生地址,两片DAC0832共占据3个单元地址,其中两个输入寄存器各占一个地址,而两个DAC寄存器则合用一个地址。

图8-44 单片机控制下的X-Y绘图仪输出图

图8-45 控制X-Y绘图仪的双片DAC0832接口图

编程时,先用一条传送指令把X坐标数据送到X向D/A转换器的输入寄存器;再用一条传送指令把Y坐标数据送到Y向D/A转换器的输入寄存器;最后再用一条传送指令打开两个转换器的DAC寄存器,进行数据转换,即可实现X、Y两个方向坐标的同步输出。

假定X方向DAC0832输入寄存器的地址为F0H,Y方向DAC0832输入寄存器的地址为F1H,两个DAC寄存器公用地址为F2H。X坐标数据存于Data单元中,Y坐标数据存于Data+1单元中,则绘图仪的驱动程序为

双缓冲方式的另一个特点是,可以通过输入寄存器快速修改DAC寄存器的内容,供特殊需要时使用。

习题8

1.填空题

(1)扩展并行I/O 口的编址方式有____________和____________。

(2)通过并行总线扩展I/O口时,要求输入接口具有________功能;输出接口具有________功能。

(3)MCS-51单片机在外扩ROM、RAM和I/O口时,P0口提供________总线和地址总线的________位,P2口提供地址总线的________位。

(4)外扩程序存储器时用到的控制总线有____________、___________和____________,外扩数据存储器时用到的控制总线有_____________、___________和_____________。

(5)存储芯片27128的存储容量是________字节,共有地址总线________根,数据总线________根。

(6)LED数码管按其内部电路结构可分为________结构和________结构。

(7)在单片机应用系统中,LED数码管显示电路可分为________显示方式和________显示方式。

(8)按键去抖的方法有____________和____________。

2.简答题

(1)说出线选法和译码法的优、缺点及应用场合。

(2)说出LED静态显示和动态显示的优、缺点及应用场合。

(3)MCS-51单片机如何使得内、外程序存储器和数据存储器正常工作。

3.应用设计题

(1)试用8051单片机的P0口扩展一个并行输出接口和一个并行输入接口,要求扩展的输入接口用74LS273,输出接口用74LS244,输入/输出接口地址均为0BFFFH,从74LS273输入的数据取反后由74LS244输出。画出硬件电路图并编写应用程序。

(2)试用8051单片机扩展1片程序存储器2732(容量为4K×8位)和1片数据存储器6264(容量为8K×8位),要求程序存储器的地址和内部程序存储器的地址衔接。画出硬件电路图,写出各芯片的地址范围,编写把6264某一连续的100个单元内容低4位置1的程序。

(3)试用8051单片机扩展两片6264(8KB×8位)的存储芯片、一个4×4的矩阵键盘和4位LED显示器,画出硬件电路图,写出其地址和每个键的键值,编写典型的应用程序。

(4)试用8051单片机与一片ADC0809设计一个数据采集系统,要求ADC0809的8个输入通道的地址为7FF8H~7FFFH,每个通道一次连续采集5个数据,每隔1min轮流采集一次8个通道的数据。要求采集20min的数据,把每个通道采样值分别存入片外RAM的2000H、2100H、2200H、2300H、2400H、2500H、2600H、2700H单元开始存储区中,画出硬件电路图并编写应用程序。

(5)试设计8051单片机和DAC0832数模转换芯片的接口电路,并编程实现从DAC0832输出一个等边三角形的电压波形,要求三角波的最大幅值为4.0V(假设单片机晶振为12MHz)。

(6)试用8051单片机扩展1片程序存储器2764(容量为8K×8位)、1片数据存储器6264(容量为8K×8位)和1片8255,8255上接一个4×8的矩阵键盘和6位LED显示器,要求程序存储器的地址和内部程序存储器的地址衔接。画出硬件电路图,写出各芯片的地址范围、键值,编写其初始化和各部分的典型应用程序。