1.单缓冲方式连接
所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个(多位DAC寄存器)处于直通方式,而另一个处于受控锁存方式。
单缓冲方式连接 如图9.3所示。
为使DAC寄存器处于直通方式,应使WR2 =0和XFER=0。为此可把这两个信号固定接地,或如电路中把WR2与WR1相连,把XFER与CS相连。
为使输入寄存器处于受控锁存方式,应把WR1接80C51的WR,ILE接高电平。此外还应把CS接高位地址线或地址译码输出,以便于对输入寄存器进行选择。
图9.3 DAC0832单缓冲方式接口
2.单缓冲方式应用举例
【例9.1】锯齿波电压发生器
在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电子束等。对此可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接图如图9.4所示。
图9.4 用DAC0832产生锯齿波电路
图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。假定输入寄存器地址为7FFFH,产生锯齿波的程序清单如下:
MOV A, #00H ;取下限值
MOV DPTR,#7FFFH ;指向0832口地址
MM: MOVX @DPTR,A ;输出
INC A ;延时
NOP
NOP
NOP
SJMP MM ;反复
执行上述程序就可得到如图9.5所示的锯齿波。
图9.5 D/A 转换产生的锯齿波
几点说明:
(1)程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波。
(2)可通过循环程序段的机器周期数,计算出锯齿波的周期。并可根据需要,通过延时的方法来改变波形周期。若要改变锯齿波的频率,可在AJMP MM指令前加入延迟程序即可。延时较短时可用NOP指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序。延迟时间不同,波形周期不同,锯齿波的斜率就不同。
(3)通过A加1,可得到正向的锯齿波,反之A减1可得到负向的锯齿波。
(4) 程序中A的变化范围是0~255,因此得到的锯齿波是满幅度的。如要求得到非满幅锯齿波,可通过计算求的数字量的处置和终值,然后在程序中通过置初值和终值的方法实现。