用dac0832产生正弦波的设计_第1页
用dac0832产生正弦波的设计_第2页
用dac0832产生正弦波的设计_第3页
用dac0832产生正弦波的设计_第4页
用dac0832产生正弦波的设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上摘要 : DAC 转换器是一种将数字量转换成模拟量的器件,本论文简要介绍模数转换器 DAC0832 的工作原理和芯片结构,并利用模数转换器 DAC0832 输出正弦 波进一步分析输出波形的模拟失真度。关键词 : 模数转换器 DAC0832 ,正弦数据区,模拟失真度, FFT 变换。引言:1 . 简要模数转换器 DAC0832 的介绍DAC 转换器是一种将数字量转换成模拟量的器件,其特点是接收、保持和转 换的是数字信息,不存在随温度和时间的漂移问题,因此电路的抗干扰性能较好。DAC0832 是 8 位分辨率的 D/A 转换集成芯片,它具有价格低廉、接口简单及 转换控制容

2、易等特点。它由 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 为高

3、电平时,数据锁存器状态随输入数据线变换, LE1 的负跳变时将输入数据锁存;XFER :数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于 500ns )有效;WR2 : DAC 寄存器选通输入线,负脉冲(脉宽应大于 500ns )有效。由 WR1 、 X FER的逻辑组合产生 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.2 DAC0832 的引脚图和内部结构1.3 DAC0832 的三种工作方式1 直通方式直通方式就是使 DAC0832 内部的两个寄存器(输入寄存器和 DAC 寄存器)处于不锁存状态,数据一旦到达输入端 DI7 DI0, 就直接送入 D/A 转换器,被转换成模拟量。当 ILE 为高电平, CS 和 WR 1 WR 2 和 XFER 端都接数字地,这时锁存信号 L

5、E 1 LE 2 均为高电平,输入寄存器和 DAC 寄存器均处于不锁存状态,即直通方式。2 单缓冲方式单缓冲方式就是使两个寄存器中的一个处于缓冲方式,另一个处于锁存方式,数据只通过一级缓冲器送入 D/A 转换器。通常的做法是将和 XFER 均接地,使DAC 寄存器处于直通方式,而把 ILE 接高电平,接端口地址译码信号, WR 1 接CPU 系统总线的 IOW 信号,使输入寄存器处于锁存方式。单缓冲方式只需执行一次写操作即可完成 D/A 转换。一般不需要多个模拟量同时输出时,可采用单缓冲方式。3 单缓冲方式单缓冲方式就是使两个寄存器均处于锁存方式,数据要经过两级锁存(即两 级缓冲)后再送入 D

6、/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 SEGME

7、NTASSUME CS:CODEDAPORT EQU 0070HCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA EQU 0500HSTART: JMP DACONTORLDACONTORL:CALL FORMATCALL LEDDISPMOV DX,DAPORTSS2 : MOV AL, 8 0H ;初始值MOV BX , 0HDACON1: OUT DX,ALMOV CX, 0008 H ;INC BXCMP BX,32 ; 比较一个周期是否结束JZ SS2DACON2: LOOP DACON2MOV AL,CS:BX+OFFSET SINDATA ; 正弦

8、取值JMP DACON1LEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:0600H,00 HLED1: CMP BYTE PTR DS:0600H,07HJA LED2MOV BL,DS:0600HMOV BH,0HMOV AL,CS:BX+DATAMOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:0600H,01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:BX+0500H,4006HADD BX,2MOV WORD PTR DS:BX+05

9、00H,4040HADD BX,2MOV WORD PTR DS:BX+0500H,4F5BHADD BX,2MOV WORD PTR DS:BX+0500H,3F7FHADD BX,2RETSINDATA: DB 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh ; 正弦波数据数据区DB 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96hDB 80h,66h,4eh,38h,25h,15h,09h,04hDB 00h,04h,09h,15h,25h,38h,4eh,66hCODE ENDSEND START2 )说明上面程序中的正弦波数据区

10、的数据共有 32 个,通过两个公式算出。当0<=x<=8*pi/16 时,通过 128+127*sin(x) 计算数据,当 24*pi/16<=x<=2*pi 时 ,通过 127* 【 1+sin(x) 】来计算数据, pi/2 到 3*pi/2 区间的数据可对称写出。3 计算模拟失真度3.1 模拟失真度的定义模拟失真度一般由基波剔除法和频谱分析法来计算,本论文采用频谱分析法 来计算。基本方法就是通过傅里叶变换,产生出信号的频谱图,根据频谱含量 Cn ,计算出失真度。基于 FFT 的失真度仪,采用频域分析方法,通过计算傅立叶系数, C1 、 C2 Cn ,最后得到失真度

11、基于 F FT的 失真度仪,采用频域分析方法,通过计算傅立叶系数, C1 、 C2 Cn ,最后得到失真度3.2 用 MATLAB 软件绘出实际频谱的程序如下 :x=0,0.975,1.913,2.778,3.535,4.157,4.619,4.904,5,4.904,4.619,4.157,3.535,2.778,1.913,0.975,0,-0.975,-1.913,-2.778,-3.535,-4.157,-4.619,-4.904,-5,-4.904,-4.619,-4.157,-3.535,-2.778,-1.913,-0.975,0n=0:31;Xk=fft(x);magXk=abs(x(1:17);k1=0:1:16;w1=2*pi/32*k1;subplot(212);stem(w1,magXk);title('samples of DTFT magnit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论