用dac0832产生正弦波的设计

摘要:DAC转换器是一种将数字量转换成模拟量的器件,本论文简要介绍模数
转换器DAC0832的工作原理和芯片结构,并利用模数转换器DAC0832输出正弦波
进一步分析输出波形的模拟失真度。
关键词:模数转换器DAC0832,正弦数据区,模拟失真度,FFT变换。
引言:
1.简要模数转换器DAC0832的介绍
DAC转换器是一种将数字量转换成模拟量的器件,其特点是接收、保持和转换
的是数字信息,不存在随温度和时间的漂移问题,因此电路的抗干扰性能较好。
DAC08328位分辨率的D/A转换集成芯片,它具有价格低廉、接口简单及转
换控制容易等特点。它由软件打包8输入锁存器、8DAC寄存器8DIA转换电路
及转换控制电路组成,能和CPU数据总线直接相连,属中速转换器,大约在paas系统1us
内将一个数字量转换成模拟量输出。
1.1DAC0832的结构如下:
D0D78位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数
据会出错)
ILE:数据锁存允许控制信号输入线,高电平有效;
CS:片选信号输入线(选通数据锁存器),低电平有效;
WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE
CSWR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据
线变换,LE1的负跳变时将输入数据锁存;
XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns
有效;
WR2DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1XFER
的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而
变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
Vcc:电源输入端,844vvVcc的范围为+5V+15V
VREF:基准电压输入线,VREF的范围为-10V+10V
AGND:模拟信号地
DGND:数字信号地
1.2DAC0832的引脚图和内部结构
1.3DAC0832的三种工作方式
1.直通方式
直通方式就是使DAC0832内部的两个寄存器(输入寄存器和DAC寄存器)
处于不锁存状态,数据一旦到达输入端DI7DI0,就直接送入D/A转换器,被转
换成模拟量。当ILE为高电平,CSWR1WR2XFER端都接数字地,这时
锁存信号LE1LE2均为高
电平,输入寄存器和DAC寄存器均处于不锁存状态,即直通方式。2.单缓冲方式
单缓冲方式就是使两个寄存器中的一个处于缓冲方式,另一个处于锁存方式,
数据只通过一级缓冲器送入D/A转换器。通常的做法是将和XFER均接地,使
DAC寄存器处于直通方式,而把ILE接高电平,接端口地址译码信号,WR1
CPU系统总线的IOW信号,使输入寄存器处于锁存方式。单缓冲方式只需执行
一次写操作即可完成D/A转换。一般不需要多个模拟量同时输出时,可采用单
缓冲方式。
3.单缓冲方式
单缓冲方式就是使两个寄存器均处于锁存方式,数据要经过两级锁存(即两级
缓冲)后再送入D/A转换器,这就是说,要执行两次写操作才能完成一次D/A
换。只要将ILE16gan接高电平,WR1WR2CPUIOWme0407,CSXFER分别接两
个不同的I/O地址译码信号即可。
图中的Rfb是内部电阻,是为外部运算放大器提供的反馈电阻,用以提供适当
的输出电压,Vref端是由外电路为芯片提供的参考电源,电压范围在-10V
+10V。另外,DAC0832为电流输出型DAC,使用时需外接运算放大器,芯片
的电源电压最好工作在+15V
2利用DAC0832产生正弦波
2.1设计出原理图
2.2编写程序和必要说明
1CODESEGMENT
ASSUMECS:CODE
DAPORTEQU0070H
CONTPORTEQU00DFH
DATAPORTEQU00DEH
DATAEQU0500H
START:JMPDACONTORLDACONTORL:CALLFORMAT
CALLLEDDISP
MOVDX,DAPORT
SS2:MOVAL,80H;初始值
MOVBX,0H
DACON1:OUTDX,AL
MOVCX,0008H
INCBX
CMPBX,32;比较一个周期是否结束
JZSS2
DACON2:LOOPDACON2
MOVAL,CS:[BX+OFFSETSINDATA];正弦取值
JMPDACON1
LEDDISP:MOVAL,90H
MOVDX,CONTPORT
OUTDX,AL
MOVBYTEPTRDS:[0600H],00H
LED1:CMPBYTEPTRDS:[0600H],07H
JALED2
MOVBL,DS:[0600H]
MOVBH,0H
MOVAL,CS:[BX+DATA]
MOVDX,DATAPORT
OUTDX,AL
ADDBYTEPTRDS:[0600H],01H
JNZLED1
asmkLED2:RET
FORMAT:MOVBX,0
MOVWORDPTRDS:[BX+0500H],4006H
ADDBX,2
MOVWORDPTRDS:[BX+0500H],4040H
ADDBX,2
MOVWORDPTRDS:[BX+0500H],4F5BH
ADDBX,2
MOVWORDPTRDS:[BX+0500H],3F7FH
ADDBX,2
RET
SINDATA:DB80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh;正弦波数据数据区
DB0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h
DB80h,66h,4eh,38h,25h,15h,09h,04h
DB00h,04h,09h,15h,25h,38h,4eh,66h
CODEENDS
ENDSTART
2)说明上面程序中的正弦波数据区的数据共有32个,通过两个公式算出。当

本文发布于:2024-09-23 05:26:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/119970.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   输入   寄存器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议