微机原理及其应用报告数模转换器DAC0832双缓冲输出设计
DAC0832实验报告

DAC0830/0831/0832是8位分辩率的D/A转换集成芯片,与微处理器完全兼容。
这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用这类D/A转换器由8位输入锁存器、8位DAC寄存器、八位D/A转换电路及转换控制电路构成。
DAC0832的应用特性与引脚功能DAC0830系列芯片是一种具有两个输入数据寄存器的8位DAC,是一个8位D/A转换器芯片,单电源供电,从+5V~+15V均可正常工作。
其主体部分为由T型状态。
而模拟开关控制标准电源在T型电阻网络所产生的电流。
输入的数字量通过两级缓冲器送到 D/A 转换电路。
通过对这两级缓冲器进行控制,可以实现直通、单缓冲、双缓冲三种工作方式。
1)DAC0832内部结构和引脚DAC0832的内部结构如图所示:DAC0832引脚如下图所示,它采用20线双列直插式封装,引脚功能如下:(1)D7~D0——转换数据输入。
(2)CS——片选信号(输入),低电平有效。
(3)ILE——数据锁存允许信号(输入),高电平有效。
(4)WR1——第一信号(输入),低电平有效。
该信号与ILE 信号共同控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1和XFER=0时,为输入寄存器直通方式;当ILE=1和WR1 =1时,为输入寄存器锁存方式。
(5) WR2 ——第2写信号(输入),低电平有效.该信号与信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:当 WR2=0和XFER=0时,为DAC寄存器直通方式; 当WR2=1和XFER=0时,为DAC寄存器锁存方式。
(6)XFER——数据传送控制信号(输入),低电平有效。
(7)Iout2——电流输出“1”。
当数据为全“1”时,输出电流最大;为全“0”时输出电流最小。
(8)Iout2——电流输出“2”。
DAC转换器的特性之一是:Iout1 +Iout2=常数。
(9)RFB——反馈电阻端即运算放大器的反馈电阻端,电阻(15KΩ)已固化在芯片中。
单片机数模转换器DAC0832设计实验报告(附程序)

实验名称:数模转换器DAC0832设计实验学生姓名:xx 学号:xx 班级:测控xx班时间:课程名称:微机机原理及应用教师:成绩:一、实验目的1)了解DAC0832芯片引脚、内部结构及工作原理;2)掌握应用单片机I/O端口控制DAC0832实现数模转换的方法;二、实验内容1. 通过单片机I/O端口控制DAC0832实现数模转换,控制方式采用单缓冲方式,通过按键TRI/SIN选择输出,分别产生锯齿波、方波、正弦波。
1)绘制DAC0832与单片机接口电路原理图;2)参考PPT课件内容,设计程序,实现信号选择输出功能;2. 扩展功能:增加按键,通过按键控制调节输出信号的频率变化。
接口电路图设计参考下图所示:三、设计参考:正弦信号数据表:uchar code sine_tab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6 f,0x72,0x76,0x79,0x7c,0x80};四.实验报告①实现调频功能的中断程序:void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++; //外部中断0触发一次,延时程序调用次数加1}②延时程序:void delay(){int i;for(i=0;i<10;i++){}} //延时子程序③锯齿波程序:#include<reg51.h>sbit MR=P2^7;void main (void){int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=num;for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:④正弦波程序#include<reg51.h>sbit MR=P2^7;void main (void){unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};int num;int j;MR=0;while(1){for(num =0; num <=255; num++){ P1=sine_tab[num];for(j=0;j<counter;j++)delay(); //调用延时子程序}}}运行截图:调频前:调频后:⑤方波程序:#include<reg51.h>sbit MR=P2^7;void main (void){ int num;int j;MR=0;while(1){int b;for(num=0;num<=255;b++){if(num<128){ P1=0x00;for(j=0;j<counter;j++)//当counter小于128时,P1输出0x00对应低电平delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应高电平for(j=0;j<counter;j++)delay();}}}调频前:调频后:主程序#include<reg51.h>sbit MR=P2^7;sbit P2_0=P2^0;sbit P2_1=P2^1;int counter=0;//设置延时程序次数变量counter,调节频率unsigned char code sine_tab[256]= //正弦波字表{0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0 xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6, 0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4, 0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0 x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x5 1,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29, 0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x 0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x 1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43 ,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0 x72,0x76,0x79,0x7c,0x80}; //正弦转换字符void delay(){int i;for(i=0;i<10;i++){}}//延时子程序void int0() interrupt 0//外部中断0,用以控制调节延时程序次数,达到调节频率的作用{counter++;//外部中断0触发一次,延时程序调用次数加1}void main(){int num;int j;EA=1;//中断总允许使能EX0=1;//外部中断0使能IT0=1;//外部中断0下降沿触发MR=0;//P2^7输出低电平,芯片正常工作while(1){if(P2_0==0&&P2_1==1) //P2_1为高电平,P2_0为低电平输出锯齿波{for(num=0;num<256;num++){P1=num; //P1直接输出numfor(j=0;j<counter;j++)delay(); //调用延时子程序}}if(P2_0==1&&P2_1==0)//P2_1为低电平,P2_0为高电平输出正弦波{P1=sine_tab[num];//P1端口输出正弦波字符数组for(j=0;j<counter;j++)delay(); //调用延时子程序}}if((P2_0==0&&P2_1==0)||(P2_0==1&&P2_1==1))//P2_1为低电平P2_0为低电平以及P2_1为高电平P2_0为高电平时输出矩形波for(num=0;num<256;num++){if(num<128)//当num小于128时,P1输出0x00对应低电平{P1=0x00;for(j=0;j<counter;j++)delay();}else{P1=0xFF;//当num大于或等于128时,P1输出0xFF对应低电平for(j=0;j<counter;j++)delay();}}}}五.总结在该实验的设计过程中,首先单独写出锯齿波、正弦波以及方波的程序,并写出延时程序以及外部中断0程序。
DAC0832原理及应用

18
D0 数据线
DI0 RFB
~ D7
~ DI7
IOUT1
-
+5V
ILE IOUT2
+
Vo
IOW
WR1
WR2
A0 ~
A9
地 port1 址 译 port2
码
CS VREF -5V
XFER DGND
调幅分析: 当数字量为0FFH=255时, IOUT1 = Vo = - IOUT1 × RFB= - 255 V REF 256
LE
&
XFER &
WR2
转换一个数据的程序段:
MOV AL, data ;取数字量 MOV DX, port OUT DX, AL
DAC 寄存
LE
D/A IOUT2 转换
+
Vo
IOUT1
-
RFB
CLK A15~A0
D7~D0 IOW
T1 T2 T3 Tw T4
port
PC 总线I/O写11时序
PC总线
0V
t
21
调频:
code SEGMENT
ASSUME CS:code
start: MOV CX, 8000H MOV AL, 0
next: MOV DX, port1
;波形个数 ;锯齿谷值 ;打开第一级锁存
OUT DX, AL MOV DX, port2 ;打开第二级锁存
OUT DX, AL CALL delay INC AL CMP AL, 0CEH JNZ next MOV AL, 0 LOOP next
• WR1 , LE=0, 将输入数据锁存到DAC寄存器, 6 数据进入D/A转换器,开始D/A转换
数模转换器dac0832的应用

基于FAN7527B的LED驱动电源设计摘要:该文中分析并设计了一种单级功率因数校正LED驱动电源。
该电源采用反激式拓扑实现了功率因数校正和对LED灯的恒流驱动。
与普通反激式电源相比,该电源采用单级反激式PFC结构简化了电路结构,具有更高的功率因数和效率。
文中对电路工作原理做了详细的说明,给出了变压器的设计方法。
实验结果表明,该电源功率因数高、损耗小、输出稳定,可以高效率驱动LED灯。
关键词:反激式 LED驱动功率因数校正一、引言由于LED自身的伏安特性及温度特性,使得LED对电流的敏感度要高于对电压的敏感度,故不能由传统的电源直接给LED供电。
因此,要用LED作照明光源首先就要解决电源驱动的问题。
传统的LED驱动电源虽然可以实现LED亮度调节,但是不能实现功率因数校正,输入功率因数比较低,谐波比较大。
为了使LED驱动电源的输入电流谐波满足要求,必须加功率因数校正。
本文介绍一种单级PFC反激式LED电源,该电源所用器件少,损耗低,具有较高的的功率因数和效率。
并用XLISP软件与Keil软件对其进行烧写和仿真实验。
在对dac0832实验过程中,验证了DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
二、单片机基础图2.1为电路简图。
电路采取单级反激式拓扑,由全波整流,DC/DC变换,输出整流滤波电路,误差反馈电路,PWM控制器电路构成。
FAN7527B是飞兆半导体公司推出的有源功率因数校正控制芯片。
该芯片内部乘法器电路的优异性能,可以用于宽交流市电输入电压范围的应用场合(85~265VAC)。
并使所构成电路的THD值很小,从而获得良好的有源功率因数校正控制功能。
它的启动工作电流只有几十微安,利用它的零电流检测FAN7527B的5脚可以实现电路的关断控制功能。
图2.1电路拓扑图电路的输入电容的容量很小(即交流输入市电整流输出滤波电容容量很小),因此APFC电路的输入电压最大值很接近于交流输入市电电压整流后输出电压的峰值。
数模转换器dac0832的应用毕业设计

数模转换器dac0832的应用毕业设计目录摘要.................................................... 错误!未定义书签。
一、引言 (1)二、单片机基础 (2)(一)单片机概念以及种类 (2)1.单片机的概念 (2)2.单片机的种类 (2)三、数模转换器 (3)(一)集成D/A转换器DAC0832 (3)1.定义 (3)2.主要性能参数 (3)3.引脚及其功能 (3)四、仿真实验 (4)五、总结 (4)致谢 (6)参考文献 (7)一、引言随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。
由于系统的实际对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别、处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析、处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。
这样,就需要一种能在模拟信号与数字信号之间1起桥梁作用的电路--模数和数模转换器。
本文主要是在介绍单片机AT89C51的基础上,初步了解以及掌握数模转换器,有关数模转换器的定义,转换原理,分类以及位数。
然后进一步了解dac0832芯片,并用XLISP软件与Keil软件对其进行烧写和仿真实验。
在对dac0832实验过程中,验证了DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
二、单片机基础(一)单片机概念以及种类1.单片机的概念单片机是指一个集成在一块芯片上的完整计算机系统。
尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、存、部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机实验DA转换器DAC0832的应用的报告

单片机应用技术课程报告实验名称D/A转换器DAC0832的应用实验时间2020年6月30 日学生姓名实验地点钉钉群线上同组人员专业班级1、实验目的(1)了解D/A转换与单片机的接口方法;(2)了解D/A转换芯片DAC0832的性能及编程方法(3)掌握D/A转换的程序设计方法。
2、任务设计要求(1)掌握实验原理,读懂实验线路图,了解所用到的元器件特性。
(2)会绘制电路原理图,会连接电路原理图。
(3)将编制的锯齿波、方波程序运行,用示波器观察波形。
使用STC89C51单片机、DAC0832芯片,设计一个波形发生器,能产生正弦波、方波、三角波、锯齿波,梯形波,要求通过编程实现不同波型的产生,通过按键实现不同波形输出的切换。
3、总体设计方案4、硬件电路设计5、软件程序设计#include<absacc.h>#include<reg51.h>#define DAC0832 XBYTE[0x7fff]sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int flag5=0;unsigned char code zhengxian[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5, 0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9, 0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6, 0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9, 0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9, 0xf8,0xf7,0xf6,0xf4,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9, 0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5, 0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d, 0x7a,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55, 0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31, 0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15, 0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04, 0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0c,0x0d,0x0e,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c, 0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b, 0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60, 0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};void delay()//延时程序{int i;for(i=0;i<1000;i++);}void panduan (void)//函数panduan用于扫描按键状态判断输出波形{if (k1==0){//按键消抖delay();if (k1==0)//通过赋值flag选择波形flag1=1;flag2=0;flag3=0;flag4=0;flag5=0;}if(k2==0){delay();if (k2==0)flag1=0;flag2=1;flag3=0;flag4=0;flag5=0;}if (k3==0){//补充程序flag1=0;flag2=0;flag3=1;flag4=0;flag5=0;。
说明dac0832的应用原理

说明dac0832的应用原理介绍DAC0832是一款数字模拟转换芯片(Digital-to-Analog Converter),常用于将数字信号转换为模拟信号,广泛应用于工业自动化、仪器仪表等领域。
本文将介绍DAC0832的应用原理及相关技术细节。
基本原理DAC0832通过将输入的数字信号转换为模拟信号,实现模拟输出。
其基本原理是将一个二进制数字转换为对应的电压输出。
DAC0832具有8位数模转换能力,即能将8位数字转换为相应的电压输出。
应用场景DAC0832在实际应用中有多种用途,例如: - 电子显示屏:将数字信号转换为模拟信号,控制显示屏亮度。
- 软件定义无线电(SDR):将数字信号转换为模拟信号,实现射频信号的发射。
- 工业控制系统:将数字信号转换为模拟信号,控制各种执行器和传感器。
工作原理DAC0832的工作原理包括三个主要部分:输入控制信号、数字模拟转换核心、输出电压。
输入控制信号DAC0832的输入控制信号包括: - CS(Chip Select):用于使能芯片。
- RD (Read):读取芯片内部数据。
- ALE(Address Latch Enable):用于锁存输入数据。
- WR(Write):写入芯片内部数据。
- DB0-DB7(Data Bus):输入的8位二进制数字。
数字模拟转换核心DAC0832的数字模拟转换核心采用双电流型架构,包括数模转换器、电流源和电流切换电路。
- 数模转换器:将输入的二进制数字转换为相应的模拟信号。
-电流源:提供输出电流。
- 电流切换电路:根据数模转换器的输出结果,切换相应的电流。
输出电压DAC0832的输出电压由电流切换电路产生,通过外部电阻接在输出端口上形成电压输出。
输出电压范围由VREF(参考电压)确定,一般为0~VREF。
硬件接口DAC0832的硬件接口包括VCC、GND、CS、RD、ALE、WR、DB0-DB7和OUT。
微机原理课程设计利用DAC0832实现正弦波输出.

微机原理与接口技术课程设计题目:利用DAC0832实现正弦波输出.班级:.姓名:.学号:.日期:2011年12月15日目录1、引言 ........................................................................................................... 错误!未定义书签。
1.1背景和编写目的..................................................................................... 错误!未定义书签。
1.2 术语和缩写................................................................................................ 错误!未定义书签。
2.系统组成........................................................................................................ 错误!未定义书签。
3.硬件设计........................................................................................................ 错误!未定义书签。
3.1 8259A模块:............................................................................................. 错误!未定义书签。
3.2 DAC0832模块 ........................................................................................... 错误!未定义书签。
DAC0832数模转换实验

DAC0832数模转换实验一、实验目的1、掌握DAC0832直通方式,单缓冲器方式、双缓冲器方式的编程方法2、掌握D/A转换程序的编程方法和调试方法二、实验说明DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构,其引脚排列如图所示,DAC0832各引脚功能说明:DI0~DI7:转换数据输入端。
CS:片选信号输入端,低电平有效。
ILE:数据锁存允许信号输入端,高电平有效。
WR1:第一写信号输入端,低电平有效,Xfer:数据传送控制信号输入端,低电平有效。
WR2:第二写信号输入端,低电平有效。
Iout1:电流输出1端,当数据全为1时,输出电流最大;当数据全为0时,输出电流最小。
Iout2:电流输出2端。
DAC0832具有:Iout1+Iout2=常数的特性。
Rfb:反馈电阻端。
Vref:基准电压端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为:-10V~+10V。
VCC和GND:芯片的电源端和地端。
DAC0832内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可实现三种工作方式:直通方式、单缓冲方式、双缓冲方式。
直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。
单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到80C51的WR上,ILE接高电平,CS 接高位地址或地址译码的输出端上。
双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。
三种工作方式区别是:直通方式不需要选通,直接D/A转换;单缓冲方式一次选通;双缓冲方式二次选通。
三、实验步骤1、用8P数据线连接单片机最小应用系统1模块的 P0口到D/A转换模块的DI0~DI7口,用二号导线分别连接单片机最小应用系统1模块的P2.0、WR到D/A转换模块的P2.0、WR,连接D/A转换模块的Vref口到-5V口,D/A转换模块的OUT接示波器探头。
微机原理实验报告--数模转换

微机原理实验报告实验题目:数/模转换器DAC0832系部:电子与信息工程系学生姓名:专业班级:学号:指导教师:2013.12.30一. 实验目的1.掌握D/A转换原理;2.熟悉D/A芯片接口设计方法;3.掌握DAC0832芯片的使用方法。
二. 实验设备1.PC微机一台;2.TD-PIT实验装置一台;3.示波器一台。
三. 实验要求用DAC0832设计一个D/A转换接口电路,采用单缓冲工作方式,产生方波、三角波、锯齿波和正弦波。
四.实验原理1.DAC3802的结构及性能(1)输入/输出信号。
D7-D为8位数据输入线;IOUT1为DAC电流输出1,I OUT2为DAC电流输出2,IOUT1和IOUT2之和为一常量;RFB为反馈信号输入端,反馈电阻在芯片内。
(2)控制信号。
ILE为允许输入锁存信号;WR1和WR2分别为锁存输入数据信号和锁存输入寄存器到DAC寄存器的写信号;XFER为传送控制信号;CS为片选信号。
(3)电源。
VCC 为主电源,电压范围为+5V到+15V;VREF为参考输入电压,范围为-10V到+10V。
DAC0832管脚及其内部结构框图2.工作方式外部五个控制信号:ILE,CS,WR1,WR2,XFER连接方式的不同,可工作于多种方式:直通方式,单缓冲方式,双缓冲方式(1)直通方式ILE接高、CS、WR1、WR2、XFER接地,两级寄存器均直通;(2)单缓冲方式两级寄存器一个受控,一个直通;(3)双缓冲方式两级寄存器均受控。
0832为电流输出型D/A ,要得模拟电压,必需外加转换电路(运放)。
五. 实验内容1.硬件电路图:2.软件程序设计(1)产生方波stack segment stack 'stack'dw 32 dup(?)stack endscode segmentbegin proc farassume ss:stack,cs:codepush dssub ax,axpush axMOV DX,0D800H;片选信号输入地址MOV AL,0NEXT:OUT DX,ALMOV DX,0D800HOUT DX,ALLOOP $;延时NOT AL;求反,由高电平转为低电平或有低电平转为高电平 PUSH AX;保护数据MOV AH,11INT 21HCMP AL,0;有按键退出POP AXJZ NEXTretbegin endpcode endsend begin(2)产生三角波stack segment stack 'stack'dw 32 dup(?)stack endsdata segmentdata endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axMOV DX,0D800HMOV AL,0NEXT:OUT DX,ALCALL DELAY;调用延时CMP AL,0FFHJNE NEXT;自增至15NEXT1:OUT DX,ALCALL DELAY;调用延时DEC ALCMP AL,0JNE NEXT1PUSH AXMOV AH,11INT 21HCMP AL,0POP AXJZ NEXT;自减至0retbegin endpDELAY PROCPUSH CXMOV CX,10000LOOP $POP CXRETDELAY ENDP;延时子程序code endsend begin(3)产生锯齿波stack segment stack 'stack' dw 32 dup(?)stack endscode segmentbegin proc farassume ss:stack,cs:code push dssub ax,axpush axMOV DX,0D800HMOV AL,0UP:OUT DX,ALINC ALPUSH AX;保护数据MOV AH,11INT 21HCMP AL,0JZ UP;循环从0自增至15retbegin endpcode endsend begin(4)产生正弦波stack segment stack 'stack'dw 32 dup(?)stack endsdata segmentDATA DB7FH,87H,8FH,97H,9FH,0A6H,0AEH,0B5H,0BCH,0C3H,0CAH,0D0H,0D6H,0DCH,0E1H,0E6H,0EBH,0EFH,0F2H,0F6H,0F8H,0FAH,0FCH,0FDH,0FEH,0FFH,0FEH,0FDH,0FCH,0FAH,0F8H,0F6H,0F2H,0EFH,0EBH,0E6H,0E1H,0DCH,0D6H,0D0H,0CAH,0C3H,0BCH,0B5H,0AEH,0A6H,9FH,97H,8FH,87H,7FH,77H,6FH,67H,5FH,58H,50H,49H,42H,3BH,34H,2EH,28H,22H,1DH,18H,13H,0FH,0CH,8H,6H,4H,2H,1H,0,0,0,1H,2H,4H,6H,8H,0CH,0FH,13H,18H,1DH,22H,28H,2EH,34H,38H,42H,49H,50H,58H,5FH,67H,6FH,77H;建表,在正弦波一个周期内均匀采样100个点,用matlab将每点的值转换为相应的波形数字量(该处用16进制数表示)data endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axAG:MOV SI,OFFSET DATA;将表DATA放入SI中MOV DX,0D800HMOV BX,0NEXT:MOV AL,BYTE PTR[SI]OUT DX,ALCALL DELAY;调用延时INC BXINC SICMP BX,100JE AGPUSH AX;保护数据MOV AH,11CMP AL,0POP AXJZ NEXT;循环100次将表中的值输出 retbegin endpDELAY PROCPUSH CXMOV CX,10000LOOP $POP CXRETDELAY ENDP;延时子程序code endsend begin六. 实验结果用示波器观测波形,截图如下:1.方波2.三角波3.锯齿波4.正弦波七. 实验总结在本次实验中,首先自己在课外将实验原理充分掌握,提前画好电路图,并思考软件部分的代码核心,进入实验室后,进行电路连接及与软件的连调。
数模转换DAC0832的应用(含电路和源程序)

数模转换DAC0832的应用(含电路和源程序)数模转换DAC0832的应用[实验要求]通过用单片机控制DAC0832输出锯齿波,让实验板上发光二极管D12由暗到亮变化,循环下去。
[实验目的]学会用单片机控制数模转换芯片DAC0832。
DAC0832:DAC0832是8位全MOS中速D/A 转换器,采用R—2RT 形电阻解码网络,转换结果为一对差动电流输出,转换时间大约为1us。
使用单电源+5V―+15V 供电。
参考电压为-10V-+10V。
在此我们直接选择+5V 作为参考电压。
DAC0832 有三种工作方式:直通方式,单缓冲方式,双缓冲方式;在此我们选择直通的工作方式,将XFER WR2 CS 管脚全部接数字地。
管脚8 接参考电压,在此我们接的参考电压是+5V。
我们在控制P0口输出数据有规律的变化将可以产生三角波,锯齿波,梯型波等波形了。
[硬件电路][源代码]//TX-1BDA测试程序,下载后可观察到D13发光二极管由暗变亮再熄//灭过程,#include<reg51.h>sbit wela=P2^7; //数码管位选sbit dula=P2^6; //段选sbit dawr=P3^6; //DA写数据sbit csda=P3^2; //DA片选unsigned char a,j,k;void delay(unsigned char i) //延时{for(j=i;j>0;j--)for(k=125;k>0;k--);}void main(){wela=0;dula=0;csda=0;a=0;dawr=0;while(1){P0=a; //给a不断的加一,然后送给DAdelay(50); // 延时50ms 左右,再加一,再送DA。
a++;}}注意:随着给DA送的数字量的不断增加,其转换成模拟量的电流也不断的增大,所以我们观察发光二极管D12就会从暗变亮,熄灭。
DAC0832中文资料 DAC0832引脚图与应用电路程序

DAC0832中文资料DAC0832引脚图与应用电路程序
DAC0832引脚图、功能介绍、原理电路图:
DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A 异步输入、同步转换等)。
所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图:
D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
DAC0832引脚功能说明:
DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。
当输入全为1时Iout1最大。
Iout2:电流输出线。
其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻。
Vcc:电源输入线(+5v~+15v)
Vref:基准电压输入线(-10v~+10v)
AGND:模拟地,摸拟信号和基准电源的参考地。
DGND:数字地,两种地线在基准电源处共地比较好。
DAC0832内部结构和外部结构:。
微机原理与接口实验 4.5 数模转换-DAC0832 赖晓铮

JMPR RB; JC ADDR;
JCR RB;
(RB)PC IF CF=1, ADDRPC IF CF=1, (RB)PC IF ZF=1, ADDRPC IF ZF=1, (RB)PC IF SF=1, ADDRPC IF SF=1, (RB)PC
0001 0001
0001
RB 0/0
ADDI RA, IMM; (RA) +IMMRA SUB RA, RB; SUBI RA, IMM; AND RA, RB; (RA)-(RB)RA (RA)-IMMRA (RA)∧(RB)RA
ANDI RA, IMM; (RA)∧IMMRA OR RA. RB; ORI RA, IMM; XOR RA, RB; (RA)∨(RB)RA (RA)∨IMMRA (RA)⊕(RB)RA
五、算术逻辑运算指令:
汇编语言格式 ADD RA, RB; 功能 (RA) +(RB)RA I7 I6 I5 I4 1101 1101 1100 1100 1110 1110 1111 1111 1011 1011 I3 I2 RA RA IMM RA RA IMM RA RA IMM RA RA IMM RA RA IMM I1 I0 RB 0/0 RB 0/0 RB 0/0 RB 0/0 RB 0/0
XORI RA, IMM; (RA)⊕IMMRA
微程序版“CPU+DAC0832”电路图
初始化过程
1) 时钟信号CLK接手动开关MANUAL,启动仿真,使能复位信号 #RESET=0; 2) 手动按钮MANUAL开关“010”,然后令信号#RESET=1.
注:初始化完成后,若时钟信号CLK继续接开关MANUAL,则CPU进入手动模式, 手动MANUAL开关,生成时钟信号CLK,程序单步执行;若时钟信号CLK接 信号源AUTO-CLK(主频10Hz),则CPU进入自动模式,程序自动运行, 直到HLT指令的“断点”处暂停。
微机原理及其应用报告:数模转换器DAC0832双缓冲输出设计

本科生实验报告实验名称:数模转换器DAC0832双缓冲输出设计 一、实验目的1)了解DAC0832芯片引脚、内部结构及工作原理;2)掌握应用单片机I/O 端口控制DAC0832实现数模转换的方法; 3)掌握DAC0832单缓冲和双缓冲控制技术及编程设计方法; 二、实验原理DAC0832是8位分辨率的数模转换集成芯片,内部采用倒T 形网络,电流型 输出模式,电流输出稳定时间为1us ,采用单电源供电。
片内部由一个8位输入锁存器、一个8位DAC 寄存器和一个8位D/A 转换器构成,内部具有双缓冲结构,可以实现单缓冲、双缓冲数字输入。
双缓冲同步控制方式 :针对多个模拟量需要同时输出的控制系统,可以采用双缓冲同步控制方式。
VREF IOUT2 IOUT1DGNDVCCAGND RFBD/A转换数据的输入锁存和D/A转换输出分两步完成。
首先,CPU分时向各路D/A 转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,CPU同时对所有D/A转换器发出输入所存数据打入DAC寄存器的控制信号,即可实现多通道的同步模拟量数据输出。
应用双缓冲方式,可以在输出模拟信号的同时采集下一个数字量,有效地提高转换速度。
另外,可以在多个D/A转换器同时工作时,利用双缓冲模式实现多路D/A的同步输出。
三、实验内容通过单片机I/O端口控制两路DAC0832实现数模转换,控制方式采用双缓冲控制方式。
1.阅读理解双缓冲控制电路图,分析双缓冲模式下DAC0832与单片机接口电路的设计及两次DA转换实验在控制电路上的异同。
2.设计程序,实现双缓冲模式下DA转换的同步输出。
首先,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,通过按键控制,同时对两个DAC0832锁存数据进行数模转换,同步产生三角波、正弦波模拟输出信号。
四、实验过程1,实验原理图v1.0 可编辑可修改2,实验源程序#include<>sbit DAC1_WR1=P2^0;sbit DAC2_WR1=P2^1;sbit DAC_SW1=P2^2;sbit DAC_SW2=P2^3;sbit DAC_WR2=P2^7;unsigned char code sine_tab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8 ,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xc f,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0x ec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0 xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe 3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0x c2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0 x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57 ,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x3 0,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0 x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03, 0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x 0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25, 0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48 ,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x 72,0x76,0x79,0x7c,0x80};unsigned char code triangle_tab[]={0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,4 6,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,9 2,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,12 8,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162 ,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196, 198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,2 32,234,236,238 ,240,242,244,246,248,250,252,254,255,255,254,252,250,2 48,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,21 4,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180 ,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146 ,144,142,140,138,136,134,132,130,128,126,124,122,120,118,116 ,114,112,110,108,106,104,102,100,98,96,94,92,90,88,86,84 ,82,80,78,76,74,72,70,68,66,64,62,60,58,56,54,52,50,48,46 ,44,42,40,38,36,34,32,30,28,26,24,22,20 ,18,16,14,12,10,8,6,4,2,0};unsigned char code juchi_tab[]={0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,4 6,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,9 2,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,12 8,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162 ,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196, 198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,2 32,234,236,238 ,240,242,244,246,248,250,252,254,255,255,0,2,4,6,8,10, 12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56, 58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,10 2,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136 ,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170, 172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,2 06,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238 ,2 40,242,244,246,248,250,252,254,255,255};void main (void){int num;DAC1_WR1=0;DAC2_WR1=0;while(!DAC_WR2){for(num =0; num <=255; num++){if(DAC_SW1==0){if(DAC_SW2==0) P1 = sine_tab[num];if(DAC_SW2==1) {if(num>=125) P1=0;else P1=255;}}if(DAC_SW1==1){if(DAC_SW2==0) {P1 = triangle_tab[num];}if(DAC_SW2==1) {P1=juchi_tab[num];}}}}}3,实验截图当开关1闭合后,开关2,3均打开,显示为锯齿波:当开关1闭合后,开关2打开,开关3闭合,显示为三角波:当开关1闭合后,开关3打开,开关2闭合,显示为方波:当开关1闭合后,开关2,3均闭合,显示为正弦波:五、实验结论。
微机原理实验报告_5

《微机原理与接口技术》实验报告实验名称:数模(D /A)转换学院:信息科学技术学院专业:电子信息工程班级:2009级理科实验班学号:20091613310032姓名:姬晓鹏2011年12月20日一、实验目的1、熟悉DAC0832数模转换器的特性和接口方法。
2、掌握D/A输出程序的设计和调试方法。
二、实验原理1、DAC0832的结构DAC0832是用先进的CMOS工艺制成的双列直插式单片8位D/A转换器。
它可以直接和8088CPU相接口。
它采用二次缓冲方式(有两个写信号WR1、WR2),这样可以在输出的同时,采集下一个数字量,以提高转换速度。
而更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。
它的主要技术参数如下:分辨率为8位,电流建立时间为1μs,单一电源5V-15V直流供电,可双缓冲、单缓冲或直接数据输入。
2、DAC0832引脚功能✧DI0-DI7:数据输入线,TTL电平,有效时间应大于90ns(否则锁存的数据会出错)。
✧ILE:数据锁存允许控制信号输入线,高电平有效。
✧/CS:片选信号输入线,低电平有效。
✧/WR1:输入锁存器写选通输入线,负脉冲有效(脉宽应大于500ns)。
当/CS为“0”、ILE为“1”、/WR1为“0”时,DI0-DI7状态被锁存到输入锁存器。
✧/XFER:数据传输控制信号输入线,低电平有效。
✧/WR2:DAC寄存器写选通输入线,负脉冲有效(脉宽应大于500ns)。
当/XFER为“0”且/WR2有效时,输入锁存器的状态被传送到DAC寄存器中。
✧Iout1:电流输出线,当输入为全1时Iout1最大。
✧Iout2:电流输出线,其值和Iout1值之和为一常数。
✧Rfb:反馈信号输入线,改变Rfb端外接电容器值可调整转换满量程精度。
✧Vcc:电源电压线,Vcc范围为+5V~+15V。
✧VREF:基准电压输入线,VREF范围为-10V~+10V。
✧AGND:模拟地。
✧DGND:数字地。
微机原理与接口技术课件数模转换器dac

09:28
微机原理与接口技术
勤读力耕 立己达人
1 0832数模转换
1.8 主要技术指标
(1)分辨率
输入的二进制数每±1个最低有效位 (LSB)使输出变化的 程度。
可用输入数字量的位数来表示,如8位、10位等;也可 用一个LSB使输出变化的程度来表示。 例:一个满量程为5V的10位D/A变换器,±1 LSB的变 化将使输出变化
1.1 模拟量I/O接口作用
(1)实际工业生产环境——连续变化的模拟量 例如:电 压、电流、压力、温度、位移、流量
(2)计算机内部——离散的数字量 二进制数、十进制数
(3)工业生产过程的闭环控制
模拟量
数字量
数字量
模拟量
传感器
A/D
计算机
D/A
执行元件
模拟量输入 (数据采集)
模拟量输出 (过程控制)
09:28
1 0832数模转换
1.4 基本变换原理
(1)若运放的放大倍数足够大时,输出电压VO
与输入电压Vin的关系为:
Rf
VO
=
-
Rf R
Vin
R
Vin
∑
VO
09:28
微机原理与接口技术
勤读力耕 立己达人
1 0832数模转换
1.4 基本变换原理
(2)若输入端有n个支路, 则输出电压VO与输入
电压Vin的关系为:
(1)在集成电路中,通常采用T型解码网络实现 数字量往模拟量的转换,再利用运算放大器完成 模拟电流变为模拟电压的转换。
(2)D/A转换器的功能是把二进制数字量电信号 转换为与其数值成正比的模拟量电信号。在D/A 参数中一个最重要的参数就是分辨率,它是指输 人数字量发生单位数码变化时,所对应输出模拟 量(电压或电流)的变化量。
DAC0832原理及应用

DAC0832是采样频率为八位的D/A转换器件,下面介绍一下该器件的中文资料以及电路原理方面及应用的知识。
DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,海可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图DAC0832引脚图和内部结构电路图电路图如上图所示,此接法是用DAC0832的直通方式,只要二进制数据送到DAC0832的数据口,则会自动把数据转为相应的电压.但运放是如图的电压则输出一般不可能达到基准电压.要想达到基准电压则要提高运放的电压.当基准为负是,只要提高运放的正电压就可以使输出达到基准电压了,当基准为正是,则为提高运放的负电压,一般的运放提高两伏就可以了,但不同的运放会有些区别.程序如下:1.输出固定电压的程序#include "reg51.h"void DAC0832(unsigned char x){P2=x;}void main(){DAC0832(255);while(1){;}}2.输出三角波与正弦波程序.#include<AT89X52.H>unsigned char flag; //波型输出标置变量bit time;unsigned char sin(unsigned char x){unsigned char code sin_tab[]={125,128,131,134,138,141,144,147,150,153,156,159, 162,165,168,171,174,177,180,182,185,188,191,193,196,198,201 ,203,206,208,211,213,215,217,219,221,223,225,227,229,231,232,234,235,237,238,239,241,242,243,244,245,246,246,247,248,248,249,249,250,250,250,250,250,250,250,250,249,249,248,248,247,246,246,245,244,243,242,241,239,238,237,235,234,232,231,229,227,225,223,221,219,217,215,213,211,208,206,203,201,198,196,193,191,188,185,182,180,177,174,171,168,165,162,159,156,153,150,147,144,141,138,134,131,128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76,73,70,68,65,62,59,57,54,52,49,47,44,42,39,37,35,33,31,29,27,25,27,29,27,25 ,23,21,19,18,16,15,13,12,11,9,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,2,3,4,4,5,6,7,8,9,11,12,13,15,16,18,19,21,23,25,27,29,31,33,35,37,39,42,44,47,49,52,54,57,59,62,65,68,70,73,76,79,82,85,88,97,94,97,100,103,106,109,112,116,119,122};return sin_tab[x];}void DAC0832(unsigned char x){P2=x;}void main(){unsigned char i;TMOD=0X02; //定时器0用于控制输出波的频率TH0=256-40;ET0=1; //按键接于外部中断0,与中断1IT0=1;IT1=1;EX0=1;EX1=1;EA=1;TR0=1;flag=0; //开始时无输出i=0;while(1){if(time==1){time="0";if(i>249)i="0";elsei++;switch(flag) //当按键1的为输出三角波,按键2时输出正弦波{case 0:DAC0832(0);break;case 1:if(i>125)DAC0832(250-i);elseDAC0832(i);break;case 2:DAC0832(sin(i));break;default: break;}}}}void time0() interrupt 1{time="1";}void int0() interrupt 0{ //按键1接于外部中断0flag="1";}void int1() interrupt 2 //按键2接于外部中断1 {flag="2";}。
微机原理实验报告 - dac

微机原理实验报告39032510 赵正2011/12/12一、实验名称数模转换二、实验目的了解数模转换的原理,学习数模转换芯片的使用方法,掌握利用数模转换芯片产生方波和正弦波的方法。
三、实验内容1.在数据段中存放对应于产生方波和正弦波的数字量,正弦波要求20个值。
2.编写程序将数据段中的数字量送到DAC0832的输出端产生方波和正弦波。
四、实验电路DAC0832采用单缓冲方式,具有单双极性输入端(图中Ua为单极性,Ub为双极性)按上面的电路入PROTUES仿真波形如下:图表 1 仿真正弦波(上面Ua,下面Ub,下同)图表 2 仿真方波五、程序流程图(左边方波,右边正弦波)图表 3 流程序实验数据和MATLAB绘图处理(实验中记录的是单极性的数据)1.方波电压最小值-4.84V图表 4 matlab方波2.正弦波-1.536 -2.889 -4 -4.7 -4.92 -4.7 -4 -2.889 -1.537图表 5 matlab正弦波3.三角波0.0025 -0.472 -0.948 -1.423 -1.9 -2.375 -2.846 -3.323 -3.799 -4.27图表 6 matlab三角波六、实验心得1.实验电路的连接非常简单,只有一根线,将片选接到290H-297H。
2.实验程序中应利用INT21H的1号功能,以便用万用表进行测量。
3.对于一些实验箱,在Caps Lock打开时,不能正常运行。
因为这个问题,我一开始耽误了很多时间。
附:实验程序方波:AD EQU 0EF00h-280H+290H; DAC0832地址STACK SEGMENT STACKDW 100 DUP(0)STACK ENDS;DATA SEGMENTDATA ENDS;CODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKMAIN PROCMOV AX,DATAMOV DS,AXNEXT1:MOV DX,ADMOV AL,0OUT DX,AL ;输出第一个电压值MOV AH,1 ;等待按键输入INT 21HNEXT2:MOV DX,AD ;输出第二个电压值MOV AL,255OUT DX,ALMOV AH,1 ;等待按键输入INT 21HMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN正弦波:ADDRESS EQU 0EF00H-280H+290H ;地址STACK SEGMENT STACKDB 100 DUP (0)STACK ENDS;DATA SEGMENTSTR DB 128,168,203,232,250,255,250,232,203,168,128,88,53,24,6,0,6,24,53,88 DATA ENDS;CODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKMAIN PROCMOV AX,DATAMOV DS,AX;MOV DX,ADDRESSREADY:MOV SI,OFFSET STRMOV CX,20 ;采20个数据NEXT:MOV DX,ADDRESSMOV AL,[SI]OUT DX,ALMOV AH,1 ;等按键输入INT 21HINC SILOOP NEXT;MOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN三角波:AD EQU 0EF00H-280H+290HSTACK SEGMENT STACKDW 100 DUP(0)STACK ENDS;DATA SEGMENTDATA ENDS;CODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK MAIN PROCMOV AX,DATAMOV DS,AXMOV CX,10 ;采10个数据MOV BX,0NEXT: MOV DX,ADMOV AL,BLOUT DX,ALMOV AH,1INT 21HADD BX,25 ;三角波数值每次加25LOOP NEXTMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生实验报告实验名称:数模转换器DAC0832双缓冲输出设计 一、实验目的1)了解DAC0832芯片引脚、内部结构及工作原理;2)掌握应用单片机I/O 端口控制DAC0832实现数模转换的方法; 3)掌握DAC0832单缓冲和双缓冲控制技术及编程设计方法; 二、实验原理DAC0832是8位分辨率的数模转换集成芯片,内部采用倒T 形网络,电流型 输出模式,电流输出稳定时间为1us ,采用单电源供电。
片内部由一个8位输入锁存器、一个8位DAC 寄存器和一个8位D/A 转换器构成,内部具有双缓冲结构,可以实现单缓冲、双缓冲数字输入。
双缓冲同步控制方式 :针对多个模拟量需要同时输出的控制系统,可以采用双缓冲同步控制方式。
D/A 转换数据的输入锁存和D/A 转换输出分两步完成。
首先,CPU 分时向各路D/A 转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,CPU 同时对所有D/A 转换器发出输入所存数据打入DAC 寄存器的控制信号,即可实现VREF IOUT2 IOUT1DGNDVCCAGND RFB多通道的同步模拟量数据输出。
应用双缓冲方式,可以在输出模拟信号的同时采集下一个数字量,有效地提高转换速度。
另外,可以在多个D/A转换器同时工作时,利用双缓冲模式实现多路D/A的同步输出。
三、实验内容通过单片机I/O端口控制两路DAC0832实现数模转换,控制方式采用双缓冲控制方式。
1.阅读理解双缓冲控制电路图,分析双缓冲模式下DAC0832与单片机接口电路的设计及两次DA转换实验在控制电路上的异同。
2.设计程序,实现双缓冲模式下DA转换的同步输出。
首先,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后,通过按键控制,同时对两个DAC0832锁存数据进行数模转换,同步产生三角波、正弦波模拟输出信号。
四、实验过程1,实验原理图2,实验源程序#include<reg51.h>sbit DAC1_WR1=P2^0;sbit DAC2_WR1=P2^1;sbit DAC_SW1=P2^2;sbit DAC_SW2=P2^3;sbit DAC_WR2=P2^7;unsigned char code sine_tab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0x ae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0 xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0 xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5, 0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8, 0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xa e,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29 ,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0 x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x0 6,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c, 0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x 43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6 f,0x72,0x76,0x79,0x7c,0x80};unsigned char code triangle_tab[]={0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54, 56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106, 108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146 ,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,18 6,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,2 26,228,230,232,234,236,238 ,240,242,244,246,248,250,252,254,255,255,254,252,250 ,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,21 0,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180 ,178,176,174,172, 170,168,166,164,162,160,158,156,154,152,150,148,146,144,142,140,138,136,134,13 2,130,128,126,124,122,120,118,116 ,114,112,110,108,106,104,102,100,98,96,94,92, 90,88,86,84 ,82,80,78,76,74,72,70,68,66,64,62,60,58,56,54,52,50,48,46,44,42,40,38,3 6,34,32,30,28,26,24,22,20 ,18,16,14,12,10,8,6,4,2,0};unsigned char code juchi_tab[]={0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54, 56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106, 108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146 ,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,18 6,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,2 26,228,230,232,234,236,238 ,240,242,244,246,248,250,252,254,255,255,0,2,4,6,8,10, 12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,6 6,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114 ,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,15 4,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,1 94,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232, 234,236,238 ,240,242,244,246,248,250,252,254,255,255};void main (void){int num;DAC1_WR1=0;DAC2_WR1=0;while(!DAC_WR2){for(num =0; num <=255; num++){if(DAC_SW1==0){if(DAC_SW2==0) P1 = sine_tab[num];if(DAC_SW2==1) {if(num>=125) P1=0;else P1=255;}}if(DAC_SW1==1){if(DAC_SW2==0) {P1 = triangle_tab[num];}if(DAC_SW2==1) {P1=juchi_tab[num];}}}}}3,实验截图当开关1闭合后,开关2,3均打开,显示为锯齿波:当开关1闭合后,开关2打开,开关3闭合,显示为三角波:当开关1闭合后,开关3打开,开关2闭合,显示为方波:当开关1闭合后,开关2,3均闭合,显示为正弦波:五、实验结论。