dac0832函数信号发生器.
- 格式:doc
- 大小:1.41 MB
- 文档页数:20
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:数字地,两种地线在基准电源处共地比较好.采用ADC0809实现A/D转换。
(一)D/A转换器DAC0832DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。
如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
运算放大器输出的模拟量V0为:图4-82由上式可见,输出的模拟量与输入的数字量()成正比,这就实现了从数字量到模拟量的转换。
一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
东北石油大学课程设计2012年3月 9 日东北石油大学课程设计任务书课程单片机原理及应用课程设计题目基于DAC0832芯片的简单信号发生器设计专业班级姓名学号一、设计目的:训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。
二、设计要求:1. 应用MCS-51单片机设计基于DAC0832芯片的简单信号发生器;2. 频率范围:0-1KHZ,输出电压:方波Up-p>3V,正弦波Up-p> 1V,波形特性:方波tr<100us,正弦波非线性失真系数r<5%;3. 硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。
设计的单元电路必须有工作原理,器件的作用,分析和计算过程;4. 软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;5. 原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。
三、参考资料:[1] 单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社;[2] 单片机原理及应用,张毅刚编著,高等教育出版社;[3] 51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社;[4] 单片机原理及接口技术,李朝青编著,北京航空航天大学出版社;完成期限2012.3.5—2012.3.9指导教师专业负责人2012年 3 月2 日目录目录 (I)第1章概述 (1)第2章信号发生器的原理 (2)2.1 AT89C51芯片的简单介绍 (2)2.2 数模转换器DAC0832的简单介绍 (4)2.3共阳数码管和运算放大器LM358 (6)第3章硬件电路设计 (7)3.1 单片机最小系统 (7)3.2 电源电路的设计 (8)3.3 D/A转换接口电路的设计 (8)第4章程序设计 (9)4.1 主程序设计 (9)4.2 信号发生器源程序 (10)第5章总结 (14)参考文献 (15)第1章概述信号发生器是一种常用的信号源,广泛用于电子电路、自动控制系统和教学实验等领域,目前使用的信号发生器大部分是模拟电路组成的,体积大、可靠性差、准确度低、并且用于低频时,其RC要很大,大电阻,大电容在制造上有困难,参数准确度难以保证,漏电损耗大。
基于单片机和DAC0832的函数信号发生器的设计摘要:信号发生器在生产实践和科技领域中有着广泛的应用。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振图像等,都需要功率或大或小、频率或高过低的信号。
在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。
多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机和DAC0832结合起来,通过数字电子电路向模拟电路转化,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。
系统通过单片机产生数字信号通过DAC0832转换为模拟信号,再通过放大器LM324就可以得到双极性的各种波形,通过几个按键切换想要的波形。
关键词:单片机,数模转换芯片DAC0832,运算放大器LM324,1前言1.1 题目的来源与开发意义自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。
单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。
单片机正朝着面向多层次用户的多品种多规格方向发展。
基于单片机和DAC0832的函数信号发生器的设计,本课题是充分运用大学期间对所学专业知识,结合现在使用的信号发生器的基本功能,完成一个系统的设计的全过程,通过单片机和模数转换芯片以及放大器产生多种波形的函数信号发生器在控制领域有着相当广泛的应用。
应用单片机控制的信号发生器的设计,整个系统控制简单,能够全方位的掌握在校期间所学的大部分知识,对单片机的学习是必不可少的,数模转换也是一个非常重要的知识,在对于数字电子和模拟电子的掌握上有非常大的应用,运算放大器的使用更加增强了对模拟模拟电路得理解,整个系统体积小,成本低廉,功能齐全,通过不同的按键,系统输出相应的波形,从而对所学的知识做了全面的深入的学习和掌握。
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:数字地,两种地线在基准电源处共地比较好.采取ADC0809实现A/D转换.(一) D/A转换器DAC0832DAC0832是采取CMOS工艺制成的单片直流输出型8位数/模转换器.如图4-82所示,它由倒T型R-2R电阻网络、摹拟开关、运算放大器和参考电压VREF四大部分组成.运算放大器输出的摹拟量V0为:图4-82由上式可见,输出的摹拟量与输入的数字量()成正比,这就实现了从数字量到摹拟量的转换.一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个摹拟输出端.输入可有28=256个分歧的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个能够值.图4-83是DAC0832的逻辑框图和引脚摆列.图4-83D0~D7:数字信号输入端.ILE:输入寄存器允许,高电平有效.CS:片选信号,低电平有效.WR1:写信号1,低电平有效.XFER:传送节制信号,低电平有效.WR2:写信号2,低电平有效.IOUT1、IOUT2:DAC电流输出端.Rfb:是集成在片内的外接运放的反馈电阻. Vref:基准电压(-10~10V).Vcc:是源电压(+5~+15V).AGND:摹拟地NGND:数字地,可与AGND接在一起使用.DAC0832输出的是电流,一般要求输出是电压,所以还必须颠末一个外接的运算放大器转换成电压.实验线路如图4-84所示.图4-85IN0~IN7:8路摹拟信号输入端.A1、A2、A0 :地址输入端.ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的摹拟信号通道,以便停止A/D转换.START:启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,外部逐次迫近寄存器复位,在下降沿到达后,开端A/D转换过程.EOC:转换竣事输出信号(转换承受标记),高电平有效.OE:输入允许信号,高电平有效.CLOCK(CP):时钟信号输入端,外接时钟频率一般为640kHz. Vcc:+5V单电源供电. 、Vref(+),Vref(-):基准电压的正极、负极.一般Vref(+)接+5V电源,Vref(-)接地.D7~D0:数字信号输出端. 由A2、A1、A0三地址输入端选通8路摹拟信号中的任何一路停止A/D转换.第10章摹拟接口10.3 数/模(D/A)转换器D/A转换器是接纳数字量,输出一个与数字量相对应的电流或电压信号的摹拟量接口.D/A转换器被广泛用于计算机函数发生器、计算机图形显示以及与A/D转换器相配合的节制系统等.10.3.1 D/A转换原理数字量的值是由每位的数字权叠加而得的.D/A转换器品种繁多,有权电阻DAC、变形权电阻DAC、T型电阻DAC、电容型DAC和权电流DAC等.为了掌握数/模转换原理,必须先懂得运算放大器和电阻译码网络的工作原理和特点.1. 运算放大器运算放大器有三个特点:⑴开环放大倍数非常高,一般为几千,甚至可高达10万.在正常情况下,运算放大器所需要的输入电压非常小.⑵输入阻抗非常大.运算放大器工作时,输入端相当于一个很小的电压加在一个很大的输入阻抗上,所需要的输入电流也极小.⑶输出阻抗很小,所以,它的驱动才能非常大.操纵运算放大器各输入电流相加的原理,可以构成如图所示的、由电阻网络和运算放大器组成的、最简单的4位D/A转换器.图中,V0是一个有足够精度的尺度电源.运算放大器输入端的各支路对应待转换资料的D0,D1,…,D n-1位.各输入支路中的开关由对应的数字元值节制,如果数字元为1,则对应的开关闭合;如果数字为0,则对应的开关断开.各输入支路中的电阻分别为R,2R,4R,…这些电阻称为权电阻.假设,输入端有4条支路.4条支路的开关从全部断开到全部闭合,运算放大器可以得到16种分歧的电流输入.这就是说,通过电阻网络,可以把0000B~1111B转换成大小不等的电流,从而可以在运算放大器的输出端得到相应大小分歧的电压.如果数字0000B每次增1,一直变更到1111B,那末,在输出端便可得到一个0~V0电压幅度的门路波形.从图可以看出,在D/A转换中采取独立的权电阻网络,对于一个8位二进制数的D/A转换器,就需要R,2R,4R,…,128R共8个不等的电阻,最大电阻阻值是最小电阻阻值的128倍,而且对这些电阻的精度要求比较高.如果这样的话,从工艺上实现起来是很坚苦的.所以,n个如此独立输入支路的方案是不实用的.在DAC电路布局中,最简单而实用的是采取T型电阻网络来代替单一的权电阻网络,整个电阻网络只需要R和2R两种电阻.在集成电路中,由于所有的组件都做在同一芯片上,电阻的特性可以做得很相近,而且精度与误差问题也可以得到处理.图是采取T型电阻网络的4位D/A转换器.4位元待转换资料分别节制4条支路中开关的倒向.在每条支路中,如果(资料为0)开首倒向左边,支路中的电阻就接到地;如果(资料为1)开关倒向右边,电阻就接到虚地.所以,不管开关倒向哪一边,都可以认为是接“地”.不过,只有开关倒向右边时,才干给运算放大器输入端提供电流.T型电阻网络中,节点A的左边为两个2R的电阻并联,它们的等效电阻为R,节点B的左边也是两个2R的电阻并联,它们的等效电阻也是R,…,依次类推,最后在D 点等效于一个数值为R的电阻接在参考电压V REF上.这样,就很容易算出,C点、B点、A点的电位分别为-V REF/2,-V REF/4,-V REF/8.在清楚了电阻网络的特点和各节点的电压之后,再来分析一下各支路的电流值.开关S3,S2,S1,S0分别代表对应的1位二进制数.任一资料位D i=1,暗示开关S i倒向右边;D i=0,暗示开关S i倒向左边,接虚地,无电流.当右边第一条支路的开关S3倒向右边时,运算放大器得到的输入电流为-V REF/(2R),同理,开关S2,S1,S0倒向右边时,输入电流分别为-V REF/(4R),-V REF/(8R),-V REF/(16R).如果一个二进制数据为1111,运算放大器的输入电流I=-V REF/(2R)-V REF/(4R)-V REF/(8R)-V REF/(16R)=-V REF/(2R)(20+2-1+2-2+2-3)=-V REF/(24R)(23+22+21+20)相应的输出电压V0=IR0=-V REF R0(24R)(23+22+21+20)将资料推广到n位,输出摹拟量与输入数字量之间关系的一般表达式为:V0=-V REF R0/(2n R)(D n-12n-1+D n-2 2n-2+…+D121+D020)(D i=1或0)上式标明,输出电压V0除了和待转换的二进制数成比破例,还和网络电阻R、运算放大器反馈电阻R0、尺度参考电压VREF有关.10.3.2 D/A转换器性能参数在实现D/A转换时,主要涉及下面几个性能参数.⑴分辨率.分辨率是指最小输出电压(对应于输入数字量最低位增1所引起的输出电压增量)和最大输出电压(对应于输入数字量所有有效位全为1时的输出电压)之比,例如,4位DAC的分辨率为1/(24-1)=1/15=6.67%(分辨率也常常使用百分比来暗示).8位DAC的分辨率为1/255=0.39%.显然,位数越多,分辨率越高.⑵转换精度.如果不思索D/A转换的误差,DAC转换精度就是分辨率的大小,因此,要获得高精度的D/A转换成果,首先要选择有足够高分辨率的DAC.D/A转换精度分为相对和相对转换精度,一般是用误差大小暗示.DAC的转换误差包含零点误差、漂移误差、增益误差、噪声和线性误差、微分线性误差等综合误差.相对转换精度是指满刻度数字量输入时,摹拟量输出接近实际值的程度.它和尺度电源的精度、权电阻的精度有关.相对转换精度指在满刻度已经校准的前提下,整个刻度范围内,对应任一摹拟量的输出与它的实际值之差.它反映了DAC的线性度.通常,相对转换精度比相对转换精度更有实用性.相对转换精度一般用相对转换精度相对于满量程输出的百分数来暗示,有时也用最低位(LSB)的几分之几暗示.例如,设V FS为满量程输出电压5V,n位DAC的相对转换精度为±0.1%,则最大误差为±0.1%V FS=±5mV;若相对转换精度为±1/2LSB,LSB=1/2n,则最大相对误差为±1/2n+1V FS.⑶非线性误差.D/A转换器的非线性误差定义为实际转换特性曲线与抱负特性曲线之间的最大偏差,并以该偏差相对于满量程的百分数度量.转换器电路设计一般要求非线性误差不大于±1/2LSB.⑷转换速率/建立时间.转换速率实际是由建立时间来反映的.建立时间是指数字量为满刻度值(各位全为1)时,DAC的摹拟输出电压达到某个规定值(比方,90%满量程或±1/2LSB满量程)时所需要的时间.建立时间是D/A转换速率快慢的一个重要参数.很显然,建立时间越大,转换速率越低.分歧型号DAC的建立时间一般从几个毫微秒到几个微秒不等.若输出形式是电流,DAC的建立时间是很短的;若输出形式是电压,DAC的建立时间主要是输出运算放大器所需要的响应时间.10.3.3 DAC0832及接口电路DAC0832是美国资料公司研制的8位双缓冲器D/A转换器.芯片内带有资料锁存器,可与数据总线直接相连.电路有极好的温度跟随性,使用了COMS电流开关和节制逻辑而获得低功耗、低输出的泄漏电流误差.芯片采取R-2RT型电阻网络,对参考电流停止分流完成D/A转换.转换成果以一组差动电流I OUT1和I OUT2输出.DAC0832主要性能参数:①分辨率8位;②转换时间1μs;③参考电压±10V;④单电源+5V~+15v;⑤功耗20mW.DAC0832的外部布局如图所示.DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为ILE;第二级锁存器称为DAC寄存器,它的锁存信号为传输节制信号XFER.因为有两级锁存器,DAC0832可以工作在双缓冲器方式,即在输出摹拟信号的同时收集下一个数字量,这样能有效地提高转换速度.此外,两级锁存器还可以在多个D/A 转换器同时工作时,操纵第二级锁存信号来实现多个转换器同步输出.图中LE 为高电平、CS 和1WR 为低电平时,1LE 为高电平,输入寄存器的输出跟随输入而变更;此后,当1WR 由低变高时,1LE 为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入资料的变更而变更.对第二级锁存器来讲,XFER 和2WR 同时为低电平时,2LE 为高电平,DAC 寄存器的输出跟随其输入而变更;此后,当2WR 由低变高时,2LE 变成低电平,将输入寄存器的资料锁存到DAC 寄存器中.2. DAC0832的引脚特性DAC0832是20引脚的双列直插式芯片.各引脚的特性如下:CS ——片选信号,和允许锁存信号ILE 组合来决议1WR 是否起作用.ILE ——允许锁存信号.1WR ——写信号1,作为第一级锁存信号,将输入资料锁存到输入寄存器(此时,1WR 必须和CS 、ILE 同时有效).2WR ——写信号2,将锁存在输入寄存器中的资料送到DAC 寄存器中停止锁存(此时,传输节制信号XFER 必须有效).WR.XFER——传输节制信号,用来节制2DI7~DI0——8位数据输入端.I OUT1——摹拟电流输出端1.当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0.I OUT2——摹拟电流输出端2.I OUT1+I OUT2=常数.R FB——反馈电阻引出端.DAC0832外部已经有反馈电阻,所以,R FB端可以直接接到外部运算放大器的输出端.相当于将反馈电阻接在运算放大器的输入端和输出端之间.V REF——参考电压输入端.可接电压范围为±10V.外部尺度电压通过V REF与T型电阻网络相连.V CC——芯片供电电压端.范围为+5V~+15V,最佳工作状态是+15V.AGND——摹拟地,即摹拟电路接地端.DGND——数字地,即数字电路接地端.DAC0832停止D/A转换,可以采取两种方法对数据停止锁存.第一种方法是使输入寄存器工作在锁存状态,而DACWR和XFER都为寄存器工作在直通状态.详细地说,就是使2低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的节制信号ILE处于高电平、CS处于WR端来一个负脉冲时,便可以完成1次低电平,这样,当1转换.第二种方法是使输入寄存器工作在直通状态,而DAC 寄存器工作在锁存状态.就是使1WR 和CS 为低电平,ILE 为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当2WR 和XFER 端输入1个负脉冲时,使得DAC 寄存器工作在锁存状态,提供锁存数据停止转换.根据上述对DAC0832的输入寄存器和DAC 寄存器分歧的节制方法,DAC0832有如下3种工作方式:⑴单缓冲方式.单缓冲方式是节制输入寄存器和DAC 寄存器同时接纳资料,或者只用输入寄存器而把DAC 寄存器接成直通方式.此方式适用只有一路摹拟量输出或几路摹拟量异步输出的情形.⑵双缓冲方式.双缓冲方式是先使输入寄存器接纳资料,再节制输入寄存器的输出资料到DAC 寄存器,即分两次锁存输入资料.此方式适用于多个D/A 转换同步输出的情节.⑶直通方式.直通方式是资料不经两级锁存器锁存,即1WR ,2WR ,XFER ,CS 均接地,ILE 接高电平.此方式适用于持续反馈节制线路,不过在使用时,必须通过另加I/O 接口与CPU 毗连,以匹配CPU 与D/A 转换.DAC0832的外部毗连线路如图所示.5. DAC0832的应用举例⑴DAC0832实现一次D/A 转换,可以采取下面程序段.设定要转换的数据放在1000H单元中.MOV BX,100HMOV AL,[BX];取转换资料MOV DX,PORTA ;PORTA为D/A转换器端口地址OUT DX,AL⑵在实际应用中,常常需要用到一个线性增长的电压去节制某一个检测过程,或者作为扫描电压去节制一个电子束的移动.执行下面的程序段,操纵D/A转换器发生一个锯齿波电压,实现此类节制作用.MOV DX,PORTA ;PORTA为D/A转换器端口地址MOV AL,OFFH ;置初值ROTAT:INC ALOUT DX,AL ;往D/A转换器输出资料CALL DELP ;调用延迟子程序JMP ROTATDELY: MOV CX, DATA ;置延迟常数DATADELY1: LOOP DELY1RET如果需要一个负向的锯齿波,只要将指令INC AL改成DEC AL便可以了.⑶从两个不相关的文件中输出一批X-Y资料,驱动X-Y 记录仪,或者节制加工复杂零件的走刀(X轴)和进刀(Y轴).这些在节制过程中是很有用的.下面程序驱动X-Y记录仪的100点输出,并用软件驱动记录仪的抬笔和放笔节制.MOV SI, XDATA ;X轴资料指针→SIMOV DI, YDATA ;Y轴资料指针→DIMOV CX, 100WE0: MOV AL,[SI]OUT PORTX, AL ;往X轴的D/A转换器输出资料MOV AL,[DI]OUT PORTY,AL ;往Y轴的D/A转换器输出资料CALL DELY1 ;调延迟子程序1,等待笔移动MOV AL,01HOUT PORTM,AL ;输出升脉冲,节制笔放下CALL DELY2 ;调延迟子程序2,等待完成MOV AL,00HOUT PORTM,AL ;输出降脉冲,节制笔抬起CALL DELY2 ;调延迟子程序2,等待完成INC SIINC DILOOP WE0HLT DELY1:┇RET DELY2:┇RET XDATA DB …YDATA DB …。
DA转换DAC0832的原理与应用1. 简介DAC0832是一款8位数模转换器(DA),广泛应用于模拟信号的生成和控制系统中。
本文将介绍DAC0832的工作原理以及在实际应用中的使用方法和注意事项。
2. DAC0832的工作原理DAC0832采用了串行输入并行输出的工作方式,其内部由一个R-2R电阻网络构成。
下面是DAC0832的工作原理和信号转换过程:1.控制信号输入:DAC0832通过串行输入方式接收控制信号,并将其解析为模拟信号输出。
2.数据寄存器加载:先将待转换的数据输入到加载寄存器,再将加载信号置高,将数据传递给编码器。
3.数据编码:编码器将输入的数字数据转换为相应的模拟信号,然后经过电子开关进行调制。
4.模拟信号输出:通过电子开关调制的模拟信号经过滤波电路进行滤波处理,最后在模拟输出端产生相应的模拟电压。
3. DAC0832的应用DAC0832可以广泛应用于以下领域: - 仪器仪表:用于模拟量信号的测量和输出,如温度测量、压力控制等。
- 自动控制系统:DAC0832可以作为模拟信号的输出模块,通过控制电压信号的输出,实现对执行器的精确控制。
- 模拟信号发生器:DAC0832可产生可变的模拟信号,用于测试和校准其他模拟电路设备。
4. DAC0832的应用实例下面以一个利用DAC0832生成可变电流信号的实例来介绍DAC0832的应用。
4.1 硬件连接•将DAC0832的引脚VCC连接至正电源,引脚GND连接至地,引脚A0~A7分别连接至控制器的IO口,引脚WR连接至控制器的一个IO口。
•将DAC0832的引脚VREF连接至一个可变电阻电压划分电路,以便调整电压输出范围。
4.2 软件编程import RPi.GPIO as GPIO# 设置控制器GPIO口A0 =16A1 =18A2 =22A3 =24A4 =26A5 =32A6 =36A7 =38WR =40# 初始化GPIOGPIO.setmode(GPIO.BOARD)GPIO.setup(A0, GPIO.OUT)GPIO.setup(A1, GPIO.OUT)GPIO.setup(A2, GPIO.OUT)GPIO.setup(A3, GPIO.OUT)GPIO.setup(A4, GPIO.OUT)GPIO.setup(A5, GPIO.OUT)GPIO.setup(A6, GPIO.OUT)GPIO.setup(A7, GPIO.OUT)GPIO.setup(WR, GPIO.OUT)# 设置待转换的数字信号data =125# 可根据实际需要修改# 按位设置控制IO口GPIO.output(A0, data &0x01)GPIO.output(A1, data &0x02)GPIO.output(A2, data &0x04)GPIO.output(A3, data &0x08)GPIO.output(A4, data &0x10)GPIO.output(A5, data &0x20)GPIO.output(A6, data &0x40)GPIO.output(A7, data &0x80)# 将数据写入DAC0832GPIO.output(WR, GPIO.LOW)GPIO.output(WR, GPIO.HIGH)4.3 注意事项•确保DAC0832的供电电压和信号电源电压在规定范围内,以免损坏设备。
dac0832波形发生器原理
DAC0832波形发生器是一种使用8位D/A转换器的波形发生器,其工作原理是将数字信号转换为模拟信号。
其工作原理主要基于以下步骤:
1. DAC0832接收从微控制器(如单片机)发送过来的数字信号,这些数字信号代表了要生成的波形(如正弦波、方波、锯齿波、三角波等)的参数(如幅度、频率等)。
2. DAC0832将这些数字信号转换为模拟信号,即将数字信号的幅度转换为模拟信号的电压或电流。
这一步是通过D/A转换器完成的,它使用一个8
位的数字输入和一个模拟输出。
3. 生成的模拟信号经过运算放大器进行放大和滤波,以获得所需的波形。
4. 输出的模拟信号可以连接到示波器、音频设备或其他需要模拟信号的设备上。
在实现波形时,需要使用定时器来控制段码表输出速度,以控制波形的频率。
对于每种波形,可以通过改变数字信号的值和控制输出的时间来实现不同的频率和幅度。
总的来说,DAC0832波形发生器的工作原理是基于数字信号转换为模拟信号的过程,通过控制数字信号的值和控制输出的时间来实现不同的波形和参数。
基于DAC0832的波形发生器C1U1U4D01939D032XTAL1P0.0/AD0D0Q0D122pF38D145P0.1/AD1XFD1Q1D237D2X17 6P0.2/AD2D2Q2D31836D38912MXTAL2P0.3/AD3D3Q3C2D435D41312P0.4/AD4D4Q4D534D 51415P0.5/AD5D5Q5D633D61716R1P0.6/AD6D6Q6D793222pFD71819RSTP0.7/AD7D7Q71 0k211P2.0/A8OEC32211P2.1/A9ALELE23P2.2/A102924RP174LS373PSENP2.3/A113025 +12V10uFRESPACK-8ALEP2.4/A12ALER23126EAP2.5/A132747P2.6/A141K1281P2.7/A15U33521106P1.0P3 .0/RXD3+88.82112P1.1P3.1/TXD方波4UA741312ACVoltsP1.2P3.2/INT05413P1.3P3.3/INT1锯齿波6514P1.4P3.4/T07615U2P1.5P3.5/T1WR三角波810k7161011P1.6P3.6/WRGNDIOUT19817912P1.7P3.7/RD阶梯波RFBIOUT2D7813VREFDI7D0D6AT89C51714A正旋波DI0DI6D1D5NET=D14615-12VDI1DI5D2D4516BDI2DI4D3417DI3XFERXF318CGNDWR2WR219WR1ILE(BY1/BY2)WR120 DCSVCCXFDAC0832#include <reg52.h>#include <absacc.h>#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE[0xfffe]sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;unsigned char mm=0;unsigned char flag=0;unsigned char x,y;uchar code SETTAB[]={ //正弦波数据(正部分)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, 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, //(正下降部分)80 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,0xAE, 0xAB, 0xA8, 0xA5, 0xA2, 0x9F, 0x9C, 0x99,0x96, 0x93, 0x90, 0x8D, 0x89, 0x86, 0x83, 0x80,//正弦波数据(负部分)0x80, 0x7C, 0x79, 0x78, 0x72, 0x6F, 0x6C, 0x69 , //(负下降部分)128,0x800x66, 0x63, 0x60, 0x5D, 0x5A, 0x57, 0x55, 0x51 ,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, 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 , //(负上升部分)//80 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, 0x43, 0x45, 0x48, 0x4C, 0x4E ,0x51, 0x55, 0x57, 0x5A, 0x5D, 0x60, 0x63, 0x66 ,0x69, 0x6C, 0x6F, 0x72, 0x76, 0x79, 0x7C, 0x80};void DelayMS(uint ms){uchar i;while(ms--){for(i=0;i<120;i++);}}void fangbo(){DAC0832=y;x++;if(flag==0){y=0xff;if(x==128){flag=1;y=0x00;} //方波+ }else {y=0x00;if(x==0){flag=0;y=0xff;} //方波- }}void juchibo() //锯齿波 {DAC0832=y;y+=1;}void sanjiaobo() {DAC0832=y;x++;if(flag==0){y+=2; //三角波数据(上升部分)if(x==128){flag=1;y-=2;}}else {y-=2;if(x==0){flag=0;y=0;} //三角波数据(下升部分) }}void jietibo() //阶梯波 {DAC0832=y;y+=25;}void sin() //正弦波 {DAC0832=SETTAB[y];x++;y++;}void read_key() {if(k1==0){DelayMS(10);if(k1==0){ mm=1;while(k1==0);}}else if(k2==0){DelayMS(10);if(k2==0){ mm=2;while(k2==0);}}else if(k3==0) {DelayMS(10); if(k3==0){ mm=3;while(k3==0); }}else if(k4==0) {DelayMS(10); if(k4==0){ mm=4;while(k4==0); }}else if(k5==0) {DelayMS(10); if(k5==0){ mm=5;while(k5==0); }}}main(){ TMOD=0x02;TL0=156;TH0=156;TR0=1;ET0=1;EA=1;mm=0;for(;;){ read_key();}}void t_0() interrupt 1 using 2 { switch(mm){case 1: fangbo();break;case 2: juchibo();break;case 3: sanjiaobo();break; case 4: jietibo();break;case 5: sin();break;}}。
单片机实验——利用DAC0832完成波形发生器1.实验目的(1)掌握D/A转换器的基本原理和使用方法。
2.预习要点(1)D/A转换器的基本原理和使用方法。
3.实验设备计算机、单片机实验箱,示波器。
4.实验内容基本要求:利用实验板上的0832D/A芯片,将示波器连接到滤波电路后,通过程序产生周期为20ms的三角波。
扩展要求:利用实验板上的0832D/A芯片和电位器,将示波器连接到滤波电路后,通过程序产生周期或幅度可调的锯齿波。
实验7ORG 0000HAJMP MAIN;***********************************;主程序ORG 0030HMAIN:MOV DPTR,#4000H ;为DA分配地址,应接CS3CLR AUP:MOVX @DPTR,A ;上坡,A从0加到100,上坡时间为100*100us=10ms LCALL DELAYINC ACJNE A,#100,UPSJMP DOWNDOWN:MOVX @DPTR,A ;下坡,A从100减到0,下坡时间为100*100us=10ms LCALL DELAYDEC ACJNE A,#0,DOWNSJMP UP;************************************;延时100us (这个相信大家可以自己算了吧)DELAY:MOV R7,#02H ;这其实不是100ms,我用示波器调的时候发DEL1:MOV R6,#22 ;现当R6为22的时候周期比较接近20ms,所以DEL2:DJNZ R6,DEL2 ;就用了22,因为上面有些指令知行还需要时间DJNZ R7,DEL1RET;**************************************;其实如果用定时器的话我相信会更精确一些;尤其是方式2。
智能仪器课程设计设计题目:函数信号发生器设计学生姓名:赵鑫、罗承波、江再农学院名称:机械工程学院班级:测控技术与仪器062班学号:200646000227、20064600222、20064600215 指导教师:袁锋伟、王玉林、蒋彦2009年6月设计任务:设计一个函数信号发生器,具体指标如下:1采用AT89S51及DAC0832设计函数信号发生器;2输出函数信号为正弦波或三角波或阶梯波;3输出信号频率为100Hz,幅度0-10V可调;4必须具有信号输出及外接电源、公共地线接口低频函数信号发生器的设计摘要:信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是利用分立元件组成的体积大,可靠性差,准确度低。
课程设计需要各个波形的基本输出,这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。
它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。
而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,阶梯波和三角波类似!该设计使用的是AT89S51单片机构成的发生器,可产生三角波、方波、正弦波等多种波形,波形的频率可用程序控制改变。
在单片机上加外围器件独立式开关,通过开关控制波形的选择。
在单片机的输出端口接DAC0832进行DA转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
关键词:信号发生器;单片机;波形调整The design of low-frequency function signal-generatorAbstract:Signal generator is a common signal source, widely used in electronic circuits, automatic control systems and experiments in areas such as teaching. Currently used by most of the signal generator is composed of discrete components use bulky, poor reliability, low accuracy. Curriculum design of the basic needs of all the output waveform, the waveform of the specific steps to achieve: the realization of sine wave is very troublesome. It is through the implementation of the definition of some data, and then direct the output when the definition of the implementation of the data on it. The triangle wave, then add 1 each time, when the initial value to reach every tired by 1, calculate the delay time, they meet the requirement, the ladder-wave and triangular wave similar! The design is composed of single-chip AT89S51 generator can produce the triangular wave, square wave, sine wave, etc.,waveform control can be used to change the frequency. Increase in single-chip peripheral devices on stand-alone switch, switch control through the choice of waveform. Output ports in the MCU access to DA converter DAC0832, and then through the operational amplifier to adjust the waveform, then the final output waveform in the oscilloscope display.Key words: signal generator;single-chip microcomputer;wave-form adjustment目录1、设计概述1.1、设计任务-----------------------------------11.2、设计思想-----------------------------------12、硬件资料2.1、芯片资料 ----------------------------------23、软件系统设计3.1、正弦波设计流程图---------------------------4 3.2、三角波设计流程图---------------------------53.3、阶梯波设计流程图--------------------------74、系统的组装与调试4.1、protel原理图------------------------- ------84.2、protues原理图----------------------- -------85、函数发生器程序-------------------------------96、操作说明--------------------------------------117、总结及心得体会-------------------------------128、问题解答-------------------------------------12 参考文献---------------------------------------12函数信号发生器设计1、设计概述1.1、设计任务:设计一个函数信号发生器,具体指标如下:1采用AT89S51及DAC0832设计函数信号发生器;2输出函数信号为正弦波或三角波或阶梯波;3输出信号频率为100Hz,幅度0-10V可调;4必须具有信号输出及外接电源、公共地线接口1.2、主要设计思想从此题的要求我的设计思路分以下几步:(一)、课设需要各个波形的基本输出。
如输出三角波、梯形波、正弦波。
这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。
它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。
然而为了实现100HZ的频率,终于发现,将总时间除了总步数,根据每步执行时间,算出延时时间,最终达到要求,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。
这样做的好处在于,查表所耗费的时钟周期相同,这样输出的点与点之间的距离就相等了,输出的波形行将更趋于完美,当然更让我们感到的高兴的是它输出波形的频率将近达到了100赫兹,能够满足我们设计的扩展要求了。
而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,阶梯波和三角波类似。
(二)、这次做的三种波形可以相互转换,这个实现起来找了很多人最终发现,在每次循环之初进行扫描,而在每个中断入口处,对中断优先级进行设定,最终达到设计目的。
如下图所示图1.12、硬件资料2.1、芯片功能介绍(1)、DAC0832芯片介绍:DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。
基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。
DAC0832的内部结构框图如下图所示。
< 图 2 . 1 >DAC0832的外部引脚及功能介绍图如下:< 图 2. 2 >(2)、DAC0832的应用:DAC0832一是用作单极性电压输出,二是用作双极性电压输出,最后是用作程控放大器。
(3)、DAC0832与8031的连接方式:DAC0832的与单片机的连接方式有三种方式:一、单缓冲二、双缓冲、三是直通方式。
本程序采用的是方式一即单缓冲方式,ILE为高电平,CS、WR1、WR2、XFER为低电平。
< 图 2 . 3 >.I/O口引脚:P0、P1、P2、P3为4个8位I/O口的外部引脚.RST/VPD(9脚)RST:单片刚接上电源时,其内部各寄存器处于随机状态,在此脚输入24个时钟周期宽度以上的高电平将使单片机复位。
单片机正常工作时,此脚应为≤0.5V低电平。
VPD:备用电源输入端。
当Vcc下降到低于规定的值,而VPD在其规定的电压范围内(5±0.5V)时,VPD就向内部RAM提供备用电源以保持内部RAM的数据。
ALE/PROG(30引脚)ALE引脚输出为地址锁存允许信号,当单片机上电工作后,ALE 引脚不断输出正脉冲信号. 当访问片外存储器时,ALE(地址锁存允许信号)输出脉冲的负跳沿用于16位地址的低8位锁存信号。
不访问片外存储器,ALE端以时钟振荡器频率的1/6固定输出正脉冲。
在访问外部数据存储器时(执行MOVX指令),ALE会丢失一个ALE 脉冲。
MCS-51单片机的片外总线结构<图2.4>MCS-51系列单片机片外引脚可以构成如上图所示的三总线结构:地址总线(AB)数据总线(DB)控制总线(CB)8031各个口的功能定义3、软件系统设计3.1、正弦波设计流程图及思想正弦波的实现则相对比较复杂,因为正弦波的实现是输出各个点的值就行了,可是各个点值则要通过正弦函数来求出,不过这些值直接去网上下载下来使用就可以了。
输出的数据刚好是256个数据,这样则可以直接相加就行了。
3.2、三角波的实现过程三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,这个操作跟锯齿波的实现是相似的。
此程序输入的VREF的电压是+5V,因此该波形输出的最大频率是初值为00H和最终值为0FFH,且步数为1,这样输出的波形是最大的。
题目要求输出频率100HZ,算出程序每步应该延续多少微秒,5ms/256即为循环一次所需时间3.3、阶梯波的实现过程及实验仿真波形图阶梯波的实现是设置一个初值00H,然后进行加数16,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,在每个加数与减数时延时,达到频率100HZ 的要求。