微机原理及其应用报告数模转换器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模块 ........................................................................................... 错误!未定义书签。
- 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均闭合,显示为正弦波:五、实验结论。