• 沒有找到結果。

9.4.1 8 位并行 D/A 转换器 DAC0832 接口技术 1.DAC0832 的结构原理

(1)DAC0832 的特性。美国国家半导体公司的 DAC0832 芯片是具有两级输入数据寄存 器的 8 位单片 D/A 转换器,它能直接与单片机 89C52 相连接,采用二次缓冲方式,可以在输 出的同时,采集下一个数据,从而提高转换速度,能够在多个转换器同时工作时,实现多通道 D/A 的同步转换输出。

主要的特性参数如下:

分辨率为 8 位。

只需在满量程下调整其线性度。

可与所有的单片机或微处理器直接接口。

电流稳定时间为 1μs。

可双缓冲、单缓冲或直通数据输入。

功耗低,约为 200mW。

逻辑电平输入与 TTL 兼容。

单电源供电(+5V~+15V)。

(2)DAC0832 的引脚及逻辑结构。DAC0832 的引脚如图 9-17(a)所示。其逻辑结构如 图 9-17(b)所示,由 8 位锁存器、8 位 DAC 寄存器和 8 位 D/A 转换器构成。

图 9-17 DAC0832 结构 DAC0832 各引脚的功能说明如下:

D0~D7:数字量数据输入线。

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

CS :输入寄存器选择信号,低电平有效。

WR1 :输入寄存器的“写”选通信号,低电平有效。

WR2 :DAC 寄存器的“写”选通信号,低电平有效。

XFER :数据传送信号,低电平有效。

UREF:基准电压输入线。

RFB:反馈信号输入线,芯片内已有反馈电阻。

IOUT1和 IOUT2:电流输出线。IOUT1与 IOUT2的和为常数,DAC 寄存器的内容线性变化。

一般在单极性输出时,IOUT2接地。

UCC:工作电源。

DGND:数字地。AGND:模拟信号地。

D/A 转换芯片输入是数字量,输出为模拟量,模拟信号很容易受到电源和数字信号等干扰 而引起波动。为提高输出的稳定性和减小误差,模拟信号部分必须采用高精度基难电源 VREF

和独立的地线,一般把数字地和模拟地分开。模拟地是模拟信号及基准电源的参考地,其余信 号的参考地,包括工作电源地、数据、地址、控制等数字逻辑地都是数字地。

2.DAC0832 与单片机的接口

(1)单缓冲器方式接口。若应用系统中只有一路 D/A 转换或虽然是多路转换,但并不要 求同步输出时,则采用单缓冲器方式接口,如图 9-18 所示。

图 9-18 DAC0832 单缓冲方式接口

将 ILE 接+5V,寄存器选择信号 CS 及数据传送信号 XFER 都与地址选择线相连(图中为 P2.7),两级寄存器的写信号都由 89C52 的 WR 端控制。当地址线选通 DAC0832 后,只要输 出控制信号,DAC0832 就能一步完成数字量的输入锁存和 D/A 转换输出。由于 DAC0832 具 有数字量的输入锁存功能,故数字量可以直接从 89C52 的 P0 口送入。

C 语言程序清单:

#include<absacc.h> //头文件声明及端口地址定义

#define DAC0832 XBYTE[0x7FFF]

//在需要模拟量输出时

DAC0832=data1; //data1 为输出模拟量的数字值

汇编语言程序清单:

MOV DPTR,#7FFFH ;地址只需 P2.7 为 0,其余为地址无关位,此处取 1

MOV A,#DATA1 ;待输出模拟量的数字值送 A

MOVX @DPTR,A

(2)双缓冲器同步方式接口。对于多路 D/A 转换接口,要求同步进行 D/A 转换输出时,

必须采用双缓冲器同步方式接法。DAC0832 采用这种接法时,数字量的输入锁存和 D/A 转换 输出是分两步完成的,即 CPU 的数据总线分时地向各路 D/A 转换器输入要转换的数字量并锁 存在各自的输入寄存器中,然后 CPU 对所有的 D/A 转换器发出控制信号,使各个 D/A 转换器 输入寄存器中的数据同时打入 DAC 寄存器,实现同步转换输出。

图 9-19 是一个二路同步输出的 D/A 转换接口电路。89C52 的 P2.5 和 P2.6 分别选择两路 D/A 转换器的输入寄存器,控制输入锁存;P2.7 连到两路 D/A 转换器的 XFER 端控制同步转换输出;

WR 与所有的 WR1 、 WR2 端相连,在执行MOVX 指令时,89C52 自动输出 WR 信号。

图 9-19 DAC0832 双缓冲方式接口 C 语言程序清单:

#include<absacc.h>

#define DAC0832_1 XBYTE[0xDFFF] //第一片 0832 输入寄存器端口地址

#define DAC0832_2 XBYTE[0xBFFF] //第二片 0832 输入寄存器端口地址

#define DAC_ALL XBYTE[0x7FFF] //两路 D/A 转换器同步输出地址 //在需要模拟量同步输出时

DAC0832_1=data1; //data1 为第一片 0832 输出模拟量的数字值 DAC0832_2=data2; //data2 为第二片 0832 输出模拟量的数字值

DAC_ALL=0; //此处 0 没有意义,目的是使 XFER 同时有效

(3)DAC0832 应用——阶梯波的产生。阶梯波是在一定的时间内每隔一段时间输出的幅 值递增一个恒定值。如图 9-20 所示,每隔 1ms 输出增长一个定值,经 10 ms 后循环。用 DAC0832 的单缓冲器方式就可以实现这样的波形。

具体的程序如下:

#include<absacc.h>

#define DAC0832 XBYTE[0x7FFF]

图 9-20 阶梯波波形 void main()

{

unsigned char i;

while(1)

for(i=0;i<10;i++) {

DAC0832=i*n; //n 是为了使波形有一定高度,取值 1~25

delay(1); //延时 1ms

} }

9.4.2 串行输入 D/A 转换器 TLC5615 接口技术

目前数/模转换器从接口上可分为两大类:并行接口数/模转换器和串行接口数/模转换器。

并行接口转换器的引脚多,体积大,占用单片机的口线多;而串行数/模转换器的体积小,占 用单片机的口线少。为减小线路板的面积,减少占用单片机的口线,越来越多地采用串行数/

模转换器,例如 TI 公司的 TLC5615。

1.TLC5615 的结构原理

TLC5615 是具有 3 线串行接口的数/模转换器。其输出为电压型,最大输出电压是基准电 压值的两倍。带有上电复位功能,上电时把 DAC 寄存器复位至全 0。TLC5615 的性价比较高,

市场售价比较低。

(1)TLC5615 的特点。

10 位 CMOS 电压输出。

5V 单电源工作。

与微处理器 3 线串行接口(SPI)。

最大输出电压是基准电压的 2 倍。

输出电压具有和基准电压相同的极性。

建立时间 12.5μs。

内部上电复位。

低功耗,最高为 l.75 mW。

引脚与 MAX515 兼容。

(2)功能方框图。TLC5615 的功能方框图如图 9-21 所示。

图 9-21 TLC5615 功能方框图

(3)引脚排列及功能。TLC5615 的引脚排列见图 9-22。

图 9-22 TLC5615 引脚 引脚功能说明:

DIN:串行数据输入。

SCLK:串行时钟输入。

CS :芯片选择,低电平有效。

DOUT:用于菊花链(daisy chaining)的串行数据输出。

AGND:模拟地。

REFIN:基准电压输入。

OUT:DAC 模拟电压输出。

UDD。正电源(4.5~5.5V)。

(4)TLC5615 的输入/输出关系。图 9-23 所示的 D/A 输入/输出关系如表 9-5 所列。

图 9-23 TLC5615 与 89C52 接口电路

表 9-5 D/A 转换关系表

数字量输入 模拟量输出

1111 1111 11(00) 2VREFIN×1023/1024

1000 0000 01(00) 2VREFIN×513/1024 1000 0000 00(00) 2VREFIN×512/1024 0111 1111 11(00) 2VREFIN×511/1024

sbit CS=P3^0;

sbit SCLK=P3^1;

sbit DIN=P3^2;

void DAC(unsigned int adata) {

DIN=adata&(1<<i); //按位将数据送入 TLC5616

SCLK=1; //时钟高电平

}

SCLK=0; //时钟低电平

CS=1; //片选高电平,输入的 12 位数据有效

}

相關文件