单缓冲方式的接口与应用
- 格式:doc
- 大小:101.00 KB
- 文档页数:2
DAC0832原理及直通、单缓冲、双缓冲三种工作方式
1)分辨率
分辨率它反映了输出模拟电压的最小变化值。
定义为输出满刻度电压与2n 的比值,其中n为DAC的位数。
分辨率与输入数字量的位数有确定的关系。
对于5V的满量程,采用8位的DAC 时,分辨率为5V/256=19.5mV;当采用10位的DAC时,分辨率则为5V/1024=4.88mV。
显然,位数越多分辨率就越高。
2)建立时间
建立时间是描述DAC转换速度快慢的参数。
定义为从输入数字量变化到输出达到终值误差±1/2 LSB(最低有效位)所需的时间。
3)接口形式
接口形式是DAC输入/输出特性之一。
包括输入数字量的形式:十六进制或BCD,输入是否带有锁存器等。
DAC0832是使用非常普遍的8位D/A转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口。
DAC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。
属于该系列的芯片还有DAC0830、DAC0831,它们可以相互代换。
根据数据的输入过程,单片机与DAC0832有三种联接方式,二级缓冲器连接方式、单级缓冲器连接方式和直通连接方式。
dac0832 工作方式有几种
DAC0832 是8 分辨率的D/A 转换集成芯片。
与微处理器完全兼容。
这个DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A 转换器由8 位输入锁存器、8 位DAC 寄存器、8 位D/A 转换电路及转换控制电路构成。
DAC0832 功能实现
DAC0832 进行D/A 转换,可以采用两种方法对数据进行锁存。
第一种方法是使输入寄存器工作在锁存状态,而DAC 寄存器工作在直通状态。
具体地说,就是使和都为低电平,DAC 寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE 处于高电平、处于低电平,这样,当端来一个负脉冲时,就可以完成1 次转换。
第二种方法是使输入寄存器工作在直通状态,而DAC 寄存器工作在锁存状态。
就是使和为低电平,ILE 为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当WR2 和XFER 端输入1 个负脉冲时,使得DAC 寄存器工作在锁存状态,提供锁存数据进行转换。
单缓冲方式的接口与应用时间:2010-02-28 23:03:07 来源:电子发烧友作者:1.单缓冲方式连接所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个(多位DAC寄存器)处于直通方式,而另一个处于受控锁存方式。
单缓冲方式连接如图9.3所示。
为使DAC寄存器处于直通方式,应使WR2 =0和XFER=0。
为此可把这两个信号固定接地,或如电路中把WR2与WR1相连,把XFER与CS相连。
为使输入寄存器处于受控锁存方式,应把WR1接80C51的WR,ILE接高电平。
此外还应把CS接高位地址线或地址译码输出,以便于对输入寄存器进行选择。
图9.3 DAC0832单缓冲方式接口2.单缓冲方式应用举例【例9.1】锯齿波电压发生器在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电子束等。
对此可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接图如图9.4所示。
图9.4 用DAC0832产生锯齿波电路图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。
假定输入寄存器地址为7FFFH,产生锯齿波的程序清单如下:MOV A,#00H ;取下限值MOV DPTR,#7FFFH ;指向0832口地址MM:MOVX @DPTR,A ;输出INC A ;延时NOPNOPNOPSJMP MM ;反复执行上述程序就可得到如图9.5所示的锯齿波。
图9.5 D/A 转换产生的锯齿波几点说明:(1)程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波。
(2)可通过循环程序段的机器周期数,计算出锯齿波的周期。
并可根据需要,通过延时的方法来改变波形周期。
若要改变锯齿波的频率,可在AJMP MM指令前加入延迟程序即可。
延时较短时可用NOP 指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序。
DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图:D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
dac0832应用电路图dac0832应用电路图:DAC0832引脚功能说明:DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。
当输入全为1时Iout1最大。
Iout2: 电流输出线。
其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线 (+5v~+15v)Vref:基准电压输入线 (-10v~+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.(一)D/A转换器DAC0832DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。
如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
运算放大器输出的模拟量V0为:图4-82由上式可见,输出的模拟量与输入的数字量()成正比,这就实现了从数字量到模拟量的转换。
一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
实验六DAC 0832 采用单缓冲器方式的实验一实验目的1.了解和掌握D/A转换器的大体工作原理和主要技术指标。
2.掌握8位D/A转换器DAC 0832的内部结构、工作原理和引脚功能。
3.掌握DAC 0832与MAC-51单片机单缓冲器方式和双缓冲方式的接口电路设计与软件编程。
二实验内容采用单缓冲方式进行D/A换转,输出正弦波、锯齿波、三角波,并用示波器观察输出的波形。
三、实验程序#include<>#define uchar unsigned char#define uint unsigned intsbit csda=P2^2;sbit wr=P2^1;sbit s1=P3^2;sbit s2=P3^3;uchar k=0,p=0,delay=0;uchar bxxz=0;pinglv=0;uchar a=1,b=0,c=0,d=0,e=0;uchar code sin[64]={135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,2 30,222,213,204,193,182,170,158,146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,1 14,128};uchar code juchi[64]={0,4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,1 21,125,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,215,219,223,227,231,2 35,239,243,247,251,255};uchar code sanjiao[64]={0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,20 8,216,224,232,240,248,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,6 4,56,48,40,32,24,16,8,0};void delay1(){int a,b;for(a=1;a>0;a--)for(b=122;b>0;b--);}void int0() interrupt 0{EX0=0;delay1();if(s1==0){bxxz++;if(bxxz==3)bxxz=0;switch(bxxz){case 0 :{a=1,b=0,c=0,d=0,e=0;}break;case 1 :{a=0,b=1,c=0,d=0,e=0;}break;case 2 :{a=0,b=0,c=1,d=0,e=0;}break;}delay1();while(!s1);}while(!s1);EX0=1;}void int1() interrupt 2{EX1=0;delay1();if(s2==0){p++;if(p==8)p=0;switch(p){case 1 :pinglv=3;break;case 2 :pinglv=6;break;case 3 :pinglv=9;break;case 4 :pinglv=12;break;case 5 :pinglv=15;break;case 6 :pinglv=18;break;case 7 :pinglv=21;break;default :pinglv=0;break;}delay1();while(!s2);}while(!s2);EX1=1;}void main(){csda=0;wr=0;EA=1;IT0=1;EX0=1;IT1=1;EX1=1;while(1){while(a){delay=pinglv;P0=sin[k];k++;if(k==64)k=0;while(delay)delay--;}while(b){delay=pinglv;P0=juchi[k];k++;if(k==64)k=0;while(delay)delay--;}while(c){delay=pinglv;P0=sanjiao[k];k++;if(k==64)k=0;while(delay)delay--;}}}六、实验仿真及结果1.正弦波2.锯齿波3.三角波七、实验总结本次实验让我深刻体会到了科学的严谨性,在刚开始写的测试程序输出的波形失真很大,通过谨慎的思考,感觉可能是波形的ROM 内外的数据值过小,致使DA输出的误差很大,因此将波形的ROM内外的数据值调大,在测试时发现波形失真明显小了很多。
单缓冲方式的接口与应用
时间:2010-02-28 23:03:07 来源:电子发烧友作者:
1.单缓冲方式连接
所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个(多位DAC寄存器)处于直通方式,而另一个处于受控锁存方式。
单缓冲方式连接如图9.3所示。
为使DAC寄存器处于直通方式,应使WR2 =0和XFER=0。
为此可把这两个信号固定接地,或如电路中把WR2与WR1相连,把XFER与CS相连。
为使输入寄存器处于受控锁存方式,应把WR1接80C51的WR,ILE接高电平。
此外还应把CS接高位地址线或地址译码输出,以便于对输入寄存器进行选择。
图9.3 DAC0832单缓冲方式接口
2.单缓冲方式应用举例
【例9.1】锯齿波电压发生器
在一些控制应用中,需要有一个线性增长的电压(锯齿波)来控制检测过程、移动记录笔或移动电子束等。
对此可通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现,其电路连接图如图9.4所示。
图9.4 用DAC0832产生锯齿波电路
图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。
假定输入寄存器地址为7FFFH,产生锯齿波的程序清单如下:
MOV A,#00H ;取下限值
MOV DPTR,#7FFFH ;指向0832口地址
MM:MOVX @DPTR,A ;输出
INC A ;延时
NOP
NOP
NOP
SJMP MM ;反复
执行上述程序就可得到如图9.5所示的锯齿波。
图9.5 D/A 转换产生的锯齿波
几点说明:
(1)程序每循环一次,A加1,因此实际上锯齿波的上升边是由256个小阶梯构成的,但由于阶梯很小,所以宏观上看就如图中所画的先行增长锯齿波。
(2)可通过循环程序段的机器周期数,计算出锯齿波的周期。
并可根据需要,通过延时的方法来改变波形周期。
若要改变锯齿波的频率,可在AJMP MM指令前加入延迟程序即可。
延时较短时可用NOP 指令实现(本程序就是如此),需要延时较长时,可以使用一个延长子程序。
延迟时间不同,波形周期不同,锯齿波的斜率就不同。
(3)通过A加1,可得到正向的锯齿波,反之A减1可得到负向的锯齿波。
(4)程序中A的变化范围是0~255,因此得到的锯齿波是满幅度的。
如要求得到非满幅锯齿波,可通过计算求的数字量的处置和终值,然后在程序中通过置初值和终值的方法实现。