资源描述:
《用dac0832产生正弦波的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、摘要:DAC转换器是一种将数字量转换成模拟量的器件,本论文简要介绍模数转换器DAC0832的工作原理和芯片结构,并利用模数转换器DAC0832输出正弦波进一步分析输出波形的模拟失真度。关键词:模数转换器DAC0832,正弦数据区,模拟失真度,FFT变换。引言:1.简要模数转换器DAC0832的介绍DAC转换器是一种将数字量转换成模拟量的器件,其特点是接收、保持和转换的是数字信息,不存在随温度和时间的漂移问题,因此电路的抗干扰性能较好。DAC0832是8位分辨率的D/A转换集成芯片,它具有价格低廉、接口简单及转换控制容
2、易等特点。它由8位输入锁存器、8位DAC寄存器、8位DIA转换电路及转换控制电路组成,能和CPU数据总线直接相连,属中速转换器,大约在1us内将一个数字量转换成模拟量输出。1.1DAC0832的结构如下:D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平
3、时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输
4、入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的范围为+5V~+15V;VREF:基准电压输入线,VREF的范围为-10V~+10V;AGND:模拟信号地DGND:数字信号地1.2DAC0832的引脚图和内部结构1.3DAC0832的三种工作方式1.直通方式直通方式就是使DAC0832内部的两个寄存器(输入寄存器和DAC寄存器)处于不锁存状态,数据一旦到达输入端DI7~DI0,就直接送入D/A转换器,被转换成模拟量。当ILE为高电平,CS和WR1﹑WR2和XFER端都接数字地,这时锁存信
5、号LE1﹑LE2均为高电平,输入寄存器和DAC寄存器均处于不锁存状态,即直通方式。2.单缓冲方式单缓冲方式就是使两个寄存器中的一个处于缓冲方式,另一个处于锁存方式,数据只通过一级缓冲器送入D/A转换器。通常的做法是将和XFER均接地,使DAC寄存器处于直通方式,而把ILE接高电平,接端口地址译码信号,WR1接CPU系统总线的IOW信号,使输入寄存器处于锁存方式。单缓冲方式只需执行一次写操作即可完成D/A转换。一般不需要多个模拟量同时输出时,可采用单缓冲方式。3.单缓冲方式单缓冲方式就是使两个寄存器均处于锁存方式,数据
6、要经过两级锁存(即两级缓冲)后再送入D/A转换器,这就是说,要执行两次写操作才能完成一次D/A转换。只要将ILE接高电平,WR1和WR2接CPU的IOW,CS和XFER分别接两个不同的I/O地址译码信号即可。图中的Rfb是内部电阻,是为外部运算放大器提供的反馈电阻,用以提供适当的输出电压,Vref端是由外电路为芯片提供的参考电源,电压范围在-10V~+10V。另外,DAC0832为电流输出型DAC,使用时需外接运算放大器,芯片的电源电压最好工作在+15V。2利用DAC0832产生正弦波2.1设计出原理图2.2编写程序
7、和必要说明1)CODESEGMENTASSUMECS:CODEDAPORTEQU0070HCONTPORTEQU00DFHDATAPORTEQU00DEHDATAEQU0500HSTART:JMPDACONTORLDACONTORL:CALLFORMATCALLLEDDISPMOVDX,DAPORTSS2:MOVAL,80H;初始值MOVBX,0HDACON1:OUTDX,ALMOVCX,0008H;INCBXCMPBX,32;比较一个周期是否结束JZSS2DACON2:LOOPDACON2MOVAL,CS:[BX+
8、OFFSETSINDATA];正弦取值JMPDACON1LEDDISP:MOVAL,90HMOVDX,CONTPORTOUTDX,ALMOVBYTEPTRDS:[0600H],00HLED1:CMPBYTEPTRDS:[0600H],07HJALED2MOVBL,DS:[0600H]MOVBH,0HMOVAL,CS:[BX+DATA]MOVDX