DA数模转换器DOC文档格式.docx
《DA数模转换器DOC文档格式.docx》由会员分享,可在线阅读,更多相关《DA数模转换器DOC文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
![DA数模转换器DOC文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/15/7c72d2c9-00aa-4ba2-b016-1c3b9326d276/7c72d2c9-00aa-4ba2-b016-1c3b9326d2761.gif)
6硬件的制作与调试11
6.1锯齿波11
6.2正弦波12
6.3实验结果14
7总结16
参考文献18
附录1:
总体电路设计原理图19
附录2:
元器件清单20
1课程的目的
随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测等领域中,为提高系统的性能指标,对信号的处理已广泛采用了数字计算机技术。
由于实际处理对象往往都是一些模拟量(如温度、压力、位移、图素等),要使计算机或数字仪表能够识别、处理这些信号,必须首先将这些模拟信号转换成数字信号,而后经过分析、处理,最后再将这些数字量的结果转换成模拟量,以便驱动执行机构。
因此,在模拟信号和数字信号之间就需要一种能起桥梁作用的电路——数模转换器[1]。
本次课程的目的:
1.了解数模转换的原理,学习数模转换芯片的使用方法,熟悉D/A芯片接口设计方法,掌握利用数模转换芯片产生锯齿波或正弦波的方法。
2.在数据段中存放好对应能够产生锯齿波或正弦波的数字量,正弦波要求20个值。
3.编写程序将数据段中的数字量送到DA0832的输出端产生锯齿波或正弦波
2课程设计的任务与要求
用DAC0832设计一个D/A转换接口电路,采用单缓冲工作方式,产生锯齿波和正弦波。
实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。
在程序调试过程中,有意识地了解并掌握实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。
实验前仔细阅读理解教材相关章节的相关内容,实验时必须携带教材及实验讲义。
掌握课程设计的相关知识、概念清晰,程序设计合理、能够正确运行。
编程产生以下波形(从Ub输出,用示波器观察)
锯齿波。
(产生锯齿波只须将输出到DAC0832的数据由0循环递增。
)
正弦波。
(产生正弦波可根据正弦函数建一个正弦数字量表,取值范围为一个周期,表中数据个数在16个以上。
3设计方案与论证
3.1方案一
用分立元件组成的函数信号发生器通常是但函数信号发生器[3],且频率不高,工作不是很稳定,而且不易调试,虽然结构简单,制作容易,但是输出的信号频率线性度差、频率稳定度底、频率分辨率低、频率变化时间比较长,相位的噪声大以及人机界面不友好等缺点。
3.2方案二
用模拟电路搭建的函数信号发生器[7][9],可以利用晶体管、运放IC的等通用器件制作,应用专门的函数信号发生器IC,如8038等,他们的功能较少,而且精度不高,频率上限不高,调节方式也不够灵活,频率和占空比也不能独立调节,二者相互影响。
3.3方案三
利用专用直接数字合成DDS芯片的函数信号发生器[6][8],能产生任意波形并能达到很高的频率、频率切换速度快、切换相位连续、输出信号相位噪音低、可编程、全数字化、易于集成、体积小、重量轻、等优点,但是成本较高,从成本上考虑,不适合选择这么昂贵的芯片。
3.4方案四
基于单片机的函数信号发生器采用单片机编程的方法来实现[5][9]。
该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。
此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。
3.5方案五
利用DAC0832芯片[4],利用debug输出命令(O290,数据)输出数据给DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系,示波器观察输出图形。
与以上的方案相比,其器材相对容易得到,方便找到,利于调试。
又能达到学习的目的,所以我选择此方案。
4设计原理及功能说明
4.1转换器产生各种波形的原理
D/A转换器产生各种波形的原理:
利用D/A转换器输出的模拟量与输入数字量成正
比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等。
数模转换器,又称D/A转换器,简称DAC,它是一种将二进制数字量形式的离散信号转换成以标准量(或参考量)为基准的模拟量的器件。
最常见的数模转换器是将并行二进制的数字量转换为直流电压或直流电流,其电路抗干扰性较好,常用作过程控制计算机系统的输出通道,与执行器相连,实现对生产过程的自动控制。
数模转换器电路还用在利用反馈技术的模数转换器设计中。
图4-1D
/
A转换原理图
4.2功能说明
4.2.lDAC0832内部结构
DAC0832内部由三部分的电路组成[2]。
“8位输入寄存器”、“8位DAC寄存器”、“8位D/A转换电路”由8位T型电阻网络和电子开关组成。
DAC0832的主要技术指标[2]
输入:
8位数字量。
内有锁存器,数字量输入端可直接与CPU的数据段总线相连。
输入方式:
双缓冲、单缓冲和直接输入三种方式。
输入逻辑:
与TTL兼容。
输出:
模拟量电流IOUT1和IOUT2。
电流建立时间:
1μs
线性误差:
0.2%FSR(Fullscalerange),即芯片的线性误差为满量程的0.2%。
非线性误差:
0.4%FSR。
功耗:
20mW。
工作电压:
单一+5~+15V电源。
参考电压:
-10~+10V。
4.2.2DAC0832脚功能
DAC0832共有20条引脚,双列直插式封装。
引脚连接和命名如图4-2所示。
1.数字量输入线DI7~DI0(8条);
2.控制线(5条);
3.输出线(3条);
4.电源线(4条)
4-2.DAC0832引脚连接和命名
4-3.DAC结构框图及引脚排列
该D/A转换器为20引脚双列直插式封装,各引脚含义如下[3]:
(1)DI7~DI0——转换数据输入端。
(2)CS——片选信号(输入),低电平有效。
(3)ILE——数据锁存允许信号(输入),高电平有效。
(4)WR1——第一信号(输入),低电平有效。
该信号与ILE信号共同控制输入寄存器是数据直通方式还是数据锁存方式:
当ILE=1和WR1=0时,为输入寄存器直通方式;
当ILE=1和WR1=1时,为输入寄存器锁存方式。
(5)WR2——第2写信号(输入),低电平有效.该信号与信号XFER合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:
当WR2=0和XFER=0时,为DAC寄存器直通方式;
当WR2=1和XFER=0时,为DAC寄存器锁存方式。
(6)XFER——数据传送控制信号(输入),低电平有效。
(7)Iout1——电流输出“1”。
当数据为全“1”时,输出电流最大;
为全“0”时输出电流最小。
(8)Iout2——电流输出“2”。
DAC转换器的特性之一是:
Iout1+Iout2=常数。
(9)Rfb——反馈电阻端,即运算放大器的反馈电阻端,电阻(15KΩ)已固化在芯片中。
因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb即为运算放大器的反馈电阻,运算放大器的接法如图8.3所示。
(10)Vref——基准电压,是外加高精度电压源,与芯片内的电阻网络相连接,该电压可正可负,范围为-10V~+10V.
(11)DGND——数字地
(12)AGND——模拟地
4.2.3DAC0832工作方式
DAC0832利用WR1、WR2、ILE、XFER控制信号可以构成三种不同的工作方式[3]。
1)直通方式——WR1=WR2=0时,数据可以从输入端经两个寄存器直接进入D/A转换器。
2)单缓冲方式——两个寄存器之一始终处于直通,即WR1=0或WR2=0,另一个寄存器处于受控状态。
3)双缓冲方式——两个寄存器均处于受控状态。
这种工作方式适合于多模拟信号同时输出的应用场合。
2.工作方式
外部五个控制信号:
ILE,CS,WR1,WR2,XFER连接方式的不同,可工作于多种方式:
直通方式,单缓冲方式,双缓冲方式。
5单元电路的设计(计算与说明)
5.1实验原理图
5-1实验原理图
电路中DA0832采用单缓冲方式,具有单、双极性输出端(图示中分别为Ua、Ub)。
8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:
(UREF表示参考电压,N表示数数据),这里的PC机参考电压为+5V电源。
6硬件的制作与调试
6.1锯齿波
流程图:
图6-1锯齿波流程图
锯齿波实现代码:
codesegment
assumecs:
code
start:
movcl,0
movdx,290h
lll:
moval,cl
movdx,290h;
从D/A输出一数据
outdx,al
incal;
al加1
movcl,al
movah,1;
判断是否有键按下
int16h
jelll;
若无则转LLL
movah,4ch;
返回DOS
int21h
codeends
endstart
程序每循环一次,cl加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的线性增长锯齿波。
通过cl加1,可得到正向的锯齿波,反之cl减1可得到负向的锯齿波。
程序中cl的变化范围是0~255,因此得到的锯齿波是满幅度的。
如要求得到非满幅锯齿波,可通过计算求的数字量的初值和终值,然后在程序中通过置初值和终值的方法实现。
6.2正弦波
6-2正弦波流程图
正弦波实现代码:
datasegment
sindb80h,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;
正弦波数据
dataends
code,ds:
data
movax,data
movds,ax
ll:
movsi,offsetsin;
置正弦波数据的偏移地址为SI
movbh,32;
一组输出32个数据
moval,[si];
将数据输出到D/A转换器
movah,1
jneexit
movcx,50
delay:
loopdelay;
延时
incsi;
取下一个数据
decbh
jnzlll;
若未取完32个数据则转lll
jmpll
exit:
movah,4ch;
退出