用dac0832产生正弦波的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:DAC 转换器是一种将数字量转换成模拟量的器件,本论文简要介绍模数
转换器DAC0832 的工作原理和芯片结构,并利用模数转换器DAC0832 输出正弦波
进一步分析输出波形的模拟失真度。
关键词:模数转换器DAC0832 ,正弦数据区,模拟失真度,FFT 变换。
引言:
1 . 简要模数转换器DAC083
2 的介绍
DAC 转换器是一种将数字量转换成模拟量的器件,其特点是接收、保持和转换
的是数字信息,不存在随温度和时间的漂移问题,因此电路的抗干扰性能较好。
DAC0832 是8 位分辨率的D/A 转换集成芯片,它具有价格低廉、接口简单及转
换控制容易等特点。它由8 位输入锁存器、8 位DAC 寄存器、8 位DIA 转换电路
及转换控制电路组成,能和CPU 数据总线直接相连,属中速转换器,大约在1u s
内将一个数字量转换成模拟量输出。
1.1 DAC0832 的结构如下:
D0 ~D7 :8 位数据输入线,TTL 电平,有效时间应大于
90ns( 否则锁存器的数
据会出错) ;
ILE :数据锁存允许控制信号输入线,高电平有效;
CS :片选信号输入线(选通数据锁存器),低电平有效;
WR1 :数据锁存器写选通输入线,负脉冲(脉宽应大于500ns )有效。由ILE 、
CS 、WR1 的逻辑组合产生LE1 ,当LE1 为高电平时,数据锁存器状态随输入数据
线变换,LE1 的负跳变时将输入数据锁存;
XFER :数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns )
有效;
WR2 :DAC 寄存器选通输入线,负脉冲(脉宽应大于500ns )有效。由WR1 、X FER
的逻辑组合产生LE2 ,当LE2 为高电平时,DAC 寄存器的输出随寄存器的输入而
变化,LE2 的负跳变时将数据锁存器的内容打入DAC 寄存器并开始D/A 转换。
IOUT1 :电流输出端 1 ,其值随DAC 寄存器的内容线性变化;IOUT2 :电流输出端2 ,其值与IOUT1 值之和为一常数;
Rfb :反馈信号输入线,改变Rfb 端外接电阻值可调整转换满量程精度;
Vcc :电源输入端,Vcc 的范围为+5V ~+15V ;
VREF :基准电压输入线,VREF 的范围为-10V ~+10V ;AGND :模拟信号地
DGND :数字信号地
1.2 DAC0832 的引脚图和内部结构
1.3 DAC0832 的三种工作方式
1 .直通方式
直通方式就是使DAC0832 内部的两个寄存器(输入寄存器和DAC 寄存器)
处于不锁存状态,数据一旦到达输入端DI7 ~DI0, 就直接送入D/A 转换器,被转
换成模拟量。当ILE 为高电平,CS 和WR 1 ﹑WR 2 和XFER 端都接数字地,这时
锁存信号LE 1 ﹑LE 2 均为高
电平,输入寄存器和DAC 寄存器均处于不锁存状态,即直通方式。
2 .单缓冲方式
单缓冲方式就是使两个寄存器中的一个处于缓冲方式,另一个处于锁存方式,
数据只通过一级缓冲器送入D/A 转换器。通常的做法是将和XFER 均接地,使
DAC 寄存器处于直通方式,而把ILE 接高电平,接端口地址译码信号,WR 1 接
CPU 系统总线的IOW 信号,使输入寄存器处于锁存方式。单缓冲方式只需执行
一次写操作即可完成D/A 转换。一般不需要多个模拟量同时输出时,可采用单
缓冲方式。
3 .单缓冲方式
单缓冲方式就是使两个寄存器均处于锁存方式,数据要经过两级锁存(即两级
缓冲)后再送入D/A 转换器,这就是说,要执行两次写操作才能完成一次D/A 转
换。只要将ILE 接高电平,WR 1 和WR 2 接CPU 的IOW ,CS 和XFER 分别接两
个不同的I/O 地址译码信号即可。
图中的Rfb 是内部电阻,是为外部运算放大器提供的反馈电阻,用以提供适当
的输出电压,Vref 端是由外电路为芯片提供的参考电源,电压范围在-10V ~
+10V 。另外,DAC0832 为电流输出型DAC ,使用时需外接运算放大器,芯片
的电源电压最好工作在+15V 。
2 利用DAC0832 产生正弦波
2.1 设计出原理图
2.2 编写程序和必要说明
1 )CODE SEGMENT
ASSUME CS:CODE
DAPORT EQU 0070H
CONTPORT EQU 00DFH
DATAPORT EQU 00DEH
DATA EQU 0500H
START: JMP DACONTORLDACONTORL:CALL FORMAT CALL LEDDISP
MOV DX,DAPORT
SS2 : MOV AL, 8 0H ;初始值
MOV BX , 0H
DACON1: OUT DX,AL
MOV CX, 0008 H ;
INC BX
CMP BX,32 ; 比较一个周期是否结束
JZ SS2
DACON2: LOOP DACON2
MOV AL,CS:[BX+OFFSET SINDATA] ; 正弦取值
JMP DACON1
LEDDISP:MOV AL,90H
MOV DX,CONTPORT