DAC0832内部有输入寄存器和DAC寄存器,其5个控制端为ILE、、、、,能实现三种工作方式:直通方式、单缓冲方式和双缓冲方式。
1)直通方式:两个寄存器的有关控制信号都预先置为有效,两个寄存器都开通。只要数字量送到数据输入端,就立即进入D-A转换器进行转换输出。
2)单缓冲方式:指只有一个寄存器受到控制。这时将另一个寄存器的有关控制信号预置为有效,使之开通;或者将两个寄存器的控制信号连在一起,两个寄存器合为一个使用。若应用系统中只有一路D-A转换或虽然是多路转换,但并不要求同步输出,则采用单缓冲方式接口。如图6-35所示,两级寄存器的写信号都由单片机的端控制。当地址线选择好DAC0832后,只要输出控制信号,DAC0832就能一步完成数字量的输入锁存和D-A输出。
3)双缓冲方式:指两个寄存器分别受到控制,如图6-36所示。当ILE、、信号均有效时,8位数字量被写入输入寄存器,此时并不进行D-A转换。当WR2和XFER信号均有效时,原存在输入寄存器中的数据被写入DAC寄存器,并进行D/A转换。在一次转换完成后到下次转换开始之前,由于寄存器的锁存作用,数据保持不变,因此D/A转换的输出也保持不变。对于多路D-A转换接口,要求同步进行D-A转换输出时,必须采用双缓冲同步方式。
图6-35 单缓冲方式
图6-36 双缓冲方式
DAC0832采用双缓冲时,数字量的输入锁存和D-A转换输出是分两步完成的,即CPU的数据总线分时地向各路D-A转换器输入要转换的数字量并锁存在各自的输入寄存器中,然后CPU对所有的D-A转换器发出控制信号,使各个D-A转换器输入寄存器的数据打入DAC寄存器,实现同步转换输出。与单缓冲线路不同的是,仅将和分别独立由单片机控制即可。
2 接口电路设计
下面以单片机和D-A转换器DAC0832的接口电路为例介绍单片机与D-A的接口技术。如图6-37所示为单片机与DAC0832的接口电路原理图,晶振频率为6MHz。
图6-37 MCS-51和DAC0832的接口电路原理图
从图6-37可知,DAC0832的地址是7FFFH。(图中μA741的第6脚接示波器)
MCS-51和DAC 0832的接口程序设计如下:
(1)程序1(产生锯齿波)
ORG 0000H
JUCHI:MOV A,#00;第一个数据
MOV DPTR,#7FFFH;DA作为一个外RAM单元,地址为7FFFH
JUCHI1:MOVX @DPTR,A;输出数据到DA
INC A;数据更新,+1(www.xing528.com)
SJMP JUCHI1;循环
END;结束
(2)程序2(产生半圆波)
ORG 0000H
BANYUAN:MOV R2,#00;数据序号起始为0
MOV R1,#40;数据长度40个
BANY1:MOV DPTR,#TAB2;数据表首地址给DPTR
MOV A,R2
MOVC A,@A+DPTR;查表取数
MOV DPTR,#7FFFH;DA作为一个外RAM单元,地址为7FFFH
MOVX @DPTR,A;输出数据到DA
INC R2;数据序号更新,+1
DJNZ R1,BANY1;40个数未取完,循环取数
SJMP BANYUAN;复位,重新开始
TAB2:DB 0,40,56,67,77,85,91,97,102,107,111;要送出到DA的数据表
DB 114,117,120,122,124,125,127,127,128
DB 128,127,127,125,124,122,120,117,114
DB 111,107,102,97,91,85,77,67,56,40,0
END
程序1、程序2通过单片机和D-A接口电路分别产生锯齿波、半圆波。半圆波是根据事先计算好的半圆十六进制数据,用查表法依次查出再通过单片机和D-A接口电路产生。可见,用这种方法可产生其他波形。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。