基于DAC0832单片机的波形信号发生器的设计.docx
- 文档编号:28101657
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:35
- 大小:280.72KB
基于DAC0832单片机的波形信号发生器的设计.docx
《基于DAC0832单片机的波形信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于DAC0832单片机的波形信号发生器的设计.docx(35页珍藏版)》请在冰豆网上搜索。
基于DAC0832单片机的波形信号发生器的设计
摘要
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
本设计使用AT89C51单片机和DAC0832,可产生三角波、方波、正弦波,波形的频率可用程序控制改变。
在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。
在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
关键词:
信号发生器;单片机;DAC0832
Abstract
Signal-generatorisakindofsignalsourceincommonuse,broadlyappliedattheelectronicselectriccircuit,autocontrolsystemandteachingexperimentetc.Currentlyusedmostlysignalgeneratorisfunctiongenerator,aspecialwaveformgeneratorisveryexpensive.
ThisdesignisusageoftheAT89s51single-chipmicrocomputerandDAC0832,whichcangeneratetrianglewave,squarewave,sinewave,theperiodofwavecanbecontrolledbyprocedure,atoutercirclesparepartofthemicrocomputer,plusindependencetypekeyboard,whichcancontrolwave’sfrequencyincreaseordecreaseandthechoiceofwave-form,atthesametimeLEDdisplayfrequencysize.TheoutputofthemicrocomputeconnectDAC0832tocarryonaDAconversion,againpassoperationamplifiertoputanendexportationwave-form.Thisdesignhasadvantageofsimplecircuit,tightlypackedstructure,cheapprice,superiorfunctionetc.
Keywords:
signalgenerator;MCU;DAC083
绪论
1.1课题的研究背景和意义
信号发生器作为一种通用的信号源发生器仪器,早在20年代电子设备刚出现时它就产生了。
随着通讯和雷达技术的发展40年代出现了主要用于测试各种接收机的标准信号发生器,使信号发生器从定性分析的产生信号仪器发展成定量分析的产生信号仪器。
同时还出现了可用来测量脉冲电路或用作脉冲调制器的脉冲信号发生器。
自60年代以来信号发生器有了迅速的发展,这个时期的波形发生器大多采用模拟电子技术,由分立元件或模拟集成电路构成,其电路结构复杂,且仅能产生正弦波、方波、锯齿波和三角波等几种简单波形。
自从70年代微处理器的出现以后,利用各种微处理器、模数转换器和数模转多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。
极大促进了数字化技术在电子测量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器信号的控制力,提高了信号的准确度、精度和变换速度。
单片机在我国的应用历史不久,但发展很快.1980年应用软件只有100项.到1985年猛增至15000项.目前我国的单片机应用主要在工业自动化与仪器仪表控制。
与控制有关的的仪器表因广泛采用单片机,对单片机的应用产生重大的影响:
1.简化了仪表面盘,用数字键盘代替了面板开关和旋钮,外表美关。
2.增强了仪表的功能和灵活性。
3.使仪表能对简单的测量数据进行处理以及实现校正和自动诊断。
4.可用软件代替硬件,实现虚拟检测,这使单片机向智能化。
随着单片机技术的迅猛发展,信号发生器也伴随着它得到迅猛的发展。
可以说,单片机技术的发展,为信号发生器提供了广大的空间。
单片机的性价比高,具有体积小,耗电省,携带方便,使用环境要求,以及灵活,通用性好等特点。
尽管单片机还存在速度不高,内存容量小,寻址方式不多等特点,但随着,不断的技术改进和本身特点,因而得到迅速发展。
通过该设计课题的研究和制作使我对信号发生系统要有一个全面的了解、对信号的发生原理要理解掌握,以及低频信号发生器工作流程:
波形的设定,D/A转换,单片机(51单片机,显示电路,键盘控制),显示和各模块的连接通信等
各个部分的熟练联接与调试,全面的了解常规芯片的使用方法、掌握了简单信号发生器应用系统软硬件的设计方法,进一步锻炼了我在信号处理方面的实际工作能力。
1.2国内外研究现状
胥绍禹在《多波形信号发生器》一文中设计的电路采用了两块C-MOS数字集成电路74C04(内含六个反相器)和74C14(内含六个带施密特电路的反相器)。
由反相器IC1的a、b、c三个并联、电阻W1+R1、电容C1、C2、C3构成振荡器产生三角波,振荡频率计算公式为f=1/1.7RC。
可由开关控制频率。
此三角波经施密特触发器IC2a整形为方波,再经IC2b~f并联输出(多个门电路并联以提高驱动能力),其电平兼容TTL。
IC1d、IC1e~f构成两级线性放大器,用于将三角波整形为模拟正弦波。
当波形选择开关K3将电阻R2和二极管D1或D2接入电路时,输出的方波被整流为正电压或负电压加到三角波发生器的输入端,构成压控振荡器(VCO),从而获得极性不同的锯齿波或脉冲波,脉冲宽度取决于电阻R2和积分电容的大小。
杨潇,刘刚,翟玉文在《多功能PWM信号发生器设计》中设计的多功能PWM信号发生器以MSP430F169单片机为核心,由时钟和复位、频率及波形设定、LCM显示器、PWM信号发生电路组成.MSP430F169单片机数模转换模块输出端DAC1输出直流电压可控制PWM占空比;DAC0输出交变电压可产生SPWM信号,且基波频率和波形受单片机控制。
MSP430F169单片机小系统电路由MSP430FI69、复位电路、低速时钟电路(32768Hz)、高速时钟电路(8MHz)等元件构成.MSP430F169片内有6OK程序存储区、2K的数据存储区和多种外围模块,并具有12位数模转换模块DAC12.选用内部2.5V参考电压源,输入DAC12的数字量从0xO到0xFFF变化时,对应的输出电压量也就从0到2.5V变化.他的设计中使用DAC1通道控制PWM占空比,DAC0通道产生交变基波。
李辉,朱林生《基于FPGA的三相函数发生器设计》设计的信号发生器是基于DDS原理,频率控制字M和相位控制字P分别控制DDS输出波形的频率和相位。
相位累加器是整个波形产生的核心,它有一个累加器和一个N位相位寄存器组成。
每来一个时钟脉冲,相位寄存器以步长M增加。
相位寄存器的输出与相位控制字相加,其结果作为波形查找表的地址。
波形查找表由ROM构成,内部存有一个完整周期的波形的数字幅度信息,每个查找的地址对应波形中0°~360°范围的一个相位点。
查找表输入的地址信息映射达成波形幅度信号,同时输出到数模转换器的输入段,DAC输出的模拟信号经过程控滤波器,得到一个频谱纯净的波形。
徐仁贵,管运生,李学东在《实用的多功能信号发生器》用单片机制作信号发生器,除了单片机以外,包括有查表地址发生器、ROM、DAC以及放大倒相等环节。
该结构的特点是应用可编程计数器设计了一个“查表地址发生器”,其目的是使信号发生器只是在设定信号参数时瞬间占用微处理器,其余时间微处理器都可以用来处理其它事务。
在ROM中储存着所要产生信号(某种曲线)的离散值。
为了保证信号质量,应该使一个周期内所取离散值的点数足够多(特别是在信号频率很低时)。
假设这一周期性函数为F(X),在一个周期内所取点数为N,则存放在该数据表中的数据依次为:
F(0),F(2π/N),F(2*2π/N)……F((N-1)*2π/N)。
如果信号由对称的正负半波组成(如正弦波),则可以只储存正半波的离散值。
如果需要产生多种波形的信号,则不同信号的离散值可以分区(例如以256个单元为一个区)存放。
查表地址发生器由时钟、分频器和N位二进制计数器(N≥8)组成。
它用来产生访问ROM中某一数据表的周期性地址信号。
该信号为等于或大于8位的二进制数。
相邻两个查表地址信号的时间间隔决定了所产生信号的周期,这一时间间隔由分频器的分频系数决定。
1.3设计要求
本设计的任务是通过AT89C52单片机制作波形信号发生器该设计课题的研究和制作使我对信号发生系统要有一个全面的了解、对信号的发生原理要理解掌握,以及低频信号发生器工作流程:
波形的设定,D/A转换,单片机(52单片机,显示电路,键盘控制),显示和各模块的连接通信等各个部分的熟练联接与调试,全面的了解常规芯片的使用方法、掌握了简单信号发生器应用系统软硬件的设计方法。
主要实现任务是利用单片机程序,产生数字式的正弦波、方波、三角波频率可调的信号。
具体要求如下:
1、能产生正弦波、矩形波、三角波等波形;
2、最大频率不低于500Hz;
3、幅度可调,峰峰值在0-5V之间变化;
4、可以对频率、幅值、相移、波形进行动态、及时的控制;
5、扩展:
可完成简单的如加、减等代数运算。
第2章方案选择
2.1方案选择
方案一:
用分立元件组成的函数信号发生器通常是单函数信号发生器,且频率不高,工作不是很稳定,而且不易调试,虽然结构简单,但是输出的信号频率线性度差,频率稳定度低,频率分辨低,频率变换时间比较长,相位的噪声大以及人机界面不友好等缺点。
方案二:
利用专用直接数字合成DDS芯片的函数信号发生器,能产生任意波形,但是成本较高,从成本上考虑,从成本上考虑,不适合选择这么昂贵的芯片。
方案三:
利用单片机AT89C51和常用的数模转换芯片DAC038结合,通过按键输入单片机控制不同波形的输出,其体积小,成本低,功率小,因此我选择方案三。
2.2主控模块的选择
方案一:
用单片AT89c51作为系统的主控核心。
单片机具有体积小,使用灵活的,易于人机对话和良好的数据处理,有较强的指令寻址和运算功能等优点。
且单片机功耗低,价格低廉的优点。
方案二:
用FPGA等可编程器件作为控制模块。
FPGA可以实现各种复杂的逻辑功能,密度高,速度快,稳定性好等许多有点。
FPGA在掉电后会丢失数据上电后须进行一次配置,因此FPGA在应用中需要配置电路和一定的程序。
并且FPGA作为数字逻辑器件,竞争、冒险是数字逻辑器件较为突出的问题,因此在使用时必须注意毛刺的产生、消除及抗干扰性。
在次系统中,采用单片机作为控制比采用FPGA实现更简便。
基于综合性价比,确定选择方案一。
2.3本章小结
本章主要是考虑电路成本和复杂程度来选择方案,通过各种方案的比较选择了成本低和电路简单的方案。
第3章硬件电路的设计
3.1系统的总体设计方案
本次设计所研究的就是对所需要的某种波形输出对应的数字信号,在通过D/A转换器和单片机部分的转换输出一组连续变化的0~5V的电压脉冲值。
在通过显示部分显示其频率,和波形。
在设计时分块来做,按照波形设定,D/A转换,51单片机连接,键盘控制和显示五个模块的设计。
最后通过联调仿真,做出电路板成品。
从而简化人机交互的问题,具体设计模块如图3-1所示:
图3-1总体设计框图
模块介绍:
1.波形设定:
对任意波形的手动设定。
2.D/A转换:
主要选用DAC0832来把数字信号转换为模拟信号。
3.单片机部分:
最小系统。
4.键盘:
用按键来控制输出波形的种类和频率。
5.显示部分:
采用LCD显示波形的类型以及频率。
系统要求是便携式低功耗的,所以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。
考虑单片机部分(有最小系统,D/A转换,键盘接口,扩展部分显示等部分)的功耗大小,机器体积小,价格便宜,耗电少,频率适中,便于携带。
软件部分则通过KEIL软件,用C51程序语言来实现信号发生器的主要功能,并通过ISP下载程序。
3.2单元电路的设计
3.2.1采样模块及原理
DAC0832是CMOS工艺制造的8位D/A转换器,属于8位电流输出型D/A转换器,转换时间为1us,片内带输入数字锁存器。
DAC0832与单片机接成数据直接写入方式,当单片机把一个数据写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。
利用D/A转换器可以产生各种波形,如方波、三角波、正弦波、锯齿波等以及它们组合产生的复合波形和不规则波形。
1.DAC0832主要性能:
◆输入的数字量为8位;
◆采用CMOS工艺,所有引脚的逻辑电平与TTL兼容;
◆数据输入可以采用双缓冲、单缓冲和直通方式;
◆转换时间:
1us;
◆精度:
1LSB;
◆分辨率:
8位;
◆单一电源:
5—15V,功耗20mw;
◆参考电压:
-10—+10V;
DAC0832内部结构资料:
芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,待转换的8位数字量由芯片的8位数据输入线D0~D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为"1"的各位输出电流之和,IOUT2是逻辑电平为"0"的各位输出电流之和。
另外,ILE、CS、WR1、WR2和XFER是控制转换的控制信号。
DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。
输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。
有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。
控制信号ILE、CS、WR1用来控制输入寄存器。
当ILE为高电平,CS为低电平,ER1为负脉冲时,在LE产生正脉冲;其中LE为高电平时,输入寄存器的状态随数据输入线状态变化,LE的负跳变将输入数据线上的信息存入输入寄存器。
控制信号WR2和XFER用来控制8位A/D转换器。
当XFER为低电平,WR2输入负脉冲时,则在LE产生正脉冲;其中LE为高电平时,DAC寄存器的输入与输出的状态一致,LE负跳变,输入寄存器内容存入DAC寄存器。
DAC0832的数据输出方式在微机应用系统中,通常使用的是电压信号,而DAC0832输出的是电流信号,这就需要由运算放大器组成的电路实现转换。
其中有输出电压各自极性固定的单位性输出和在随动系统中输出电压有正负极性的双极性输出两种输出方式。
微处理器与DAC0832之间可以不加锁存器,而是利用DAC0832内部锁存器,将CPU通过数据总线直接向DAC0832输出的停留时间很短的数据保存,直至转换结束。
3.2.2按键电路
1.按键电路的选择
在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应用系统应设有按键或键盘,实现简单的人机会话。
键盘是一组按键的组合,键通常是一种常开型按钮开关,平时键的两个出点处于断开状态,按下键时他们才闭合。
从键盘的结构来分类,键盘可以分为独立式和矩阵式两类,每一类按其识别方法又都可以分为编码和未编码键盘两种。
键盘上闭合键的识别由专门的硬件译码器实现并产生编号或键值的称为编码键盘,由软件识别的称未编码键盘。
在由单片机组成的测控系统及智能化仪器中,用得较多的是未编码键盘,本次设计我也使用未编码键盘。
未编码键盘又分为独立式键盘跟矩阵式键盘。
(1)独立式未编码键盘结构的工作原理及接口:
在单片机应用系统中常常需要简单的几个键完成数据、命令的输入,此时可采用独立式键盘的结构。
此接口电路的工作原理很简单,无键按下时,各输入线为高电平;有键按下时,相应的输入线为低电平,CPU查询此输入口的状态就可知是哪个键闭合。
采用一键一线的方法,当按键的数目增加时,将增加输入口的数量,为了减少占用输入线数,可采用矩阵式结构的键盘。
(2)矩阵式未编码键盘结构的工作原理:
如图3-2所示是4*4的键盘接口,它是矩阵式的结构。
图中键盘的行线(X0~X3)与列线(Y0~Y3)的交叉处通过一个按键来联通,行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断开,则行线都呈高电平。
当键盘上某一个键闭合时,则该键所对应的行线和列线被短路。
例如:
6号键被按下闭合时,行线X1和列线Y2被短路,此时X1的电平由Y2的电位所决定。
如果把行线接到单片机的输入口,列线接到单片机的输出口,则在单片机的控制下,先使列线Y0为低电平,其余三根列线Y1、Y2、Y3都为高电平,读行线状态。
如果X0、X1、X2、X3、都为高电平,则Y0这一列上没有键合。
如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。
如果Y0这一列上没有键合,接着使列线Y1为低电平,其余列线为高电平,用同样方法检查Y1这一列上有无键闭合。
依此类推,最后使列线Y3为低电平,其余的列线为高电平,检查Y3这一列上是否有键闭合。
这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。
CPU对键盘扫描可以采取程序控制的随机方式,CPU空闲时扫描键盘;也可以采取定时控制方式,每隔一定时间,CPU对键盘扫描一次,CPU可随时响应键盘输入请求;还可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键输入信息作出相应处理。
CPU对键盘上闭合键的键号确定,可以根据行线和列线的状态计算求得,也可以根据行线和列线状态查表求得。
图3-2矩阵位编码键盘
2.按键的确认及防抖处理
按键的确认:
键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。
键的闭合与否,取决于机械弹性开关的通、断状态。
反应在电压上就是呈现出高电平或低电平,若高电平表示断开,那么低电平键闭合。
所以,通过电平状态(高或低)的检测,便可确定相应按键是否已被按下。
重键与连击的处理:
实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。
如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。
不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。
有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,及重键的情形。
为消除重键的影响,编制程序时可以将键的释放作为按键的结束。
等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。
按键防抖动技术:
键盘作为向系统提供操作人员的干预命令的接口,以其特定的按键代表着各种确定操作命令。
所以准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。
多数键盘的按键均采用机械弹性开关。
一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。
由于机械触点的弹性作用,一个按键开关闭合及断开的瞬间必然伴随有一连串的抖动。
消除按键盘抖动通常有两种方法:
硬件消抖和软件消抖。
通过硬件电路消除按键过程中抖动的影响是一种广为采用的措施。
这种做法,工作可靠,且节省机时。
硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用R—S触发器或单稳态电路。
软件消抖则是利用延时来跳过抖动过程。
本次设计采用独立位编码键盘加一个四输入与门的形式,如图3-3所示。
图3-3键盘连接
3.2.3显示电路
通过液晶1602显示输出的波形、频率,其电路图如下:
图3-4显示电路连接
如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P3.2—P3.2。
通过软件控制液晶屏可以显示波形的种类以及波形的频率
。
3.2.4D/A电路
功能:
将波形样值的编码转换成模拟值,完成双极性的波形输出。
由一片0832和两块LM324运放组成。
DAC0832是一个具有两个输入数据寄存器的8位DAC。
目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。
另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。
DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,故不需要外加电路。
0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM324实现,用两片LM324可以实现双极性输出。
单片机向0832发送数字编码,产生不同的输出。
先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。
本次设计有256个点(正弦波)构成波形的一个周期,则0832输出256个样值点后,样值点形成运动轨迹,即一个周期。
重复输出256个点,成为第二个周期。
利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。
这样就控制了输出的波形及其频率。
3.2.5流压转换电路
DAC0832为电流输出型转换器,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。
如图3-4所示为一种用两级运算放大器组成的模拟电压输出电路。
从第一个运放输出为单极性模拟电压,从第二个运放输出为双极性模拟电压。
放大电路元件采用LM324,LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。
它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
每一组运算放大器可用图所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。
两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
LM324的引脚排列见图3-5。
由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。
图3-5流压转换及放大电路
3.2.6单片机与DAC0832的连接
DAC0832同CPU的接口如图3-6所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DAC0832 单片机 波形 信号发生器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)