




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。波形发生器设计报告
摘要波形发生器是一种常见的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。经过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。当前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。因此本设计使用的是DAC0832、ICL8038构成的发生器,可产生方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。在单片机上加外围器件独立式键盘,经过键盘控制波形频率的增减、波形幅度的大小以及波形的选择,并用了LCD显示频率大小、波形的种类。在单片机的输出端口接DAC0832进行D/A转换,经过运放进行波形调整,再经过ICL8038函数发生器,最后输出波形。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。本设计制作的波形发生器是基于STC89C54RD+单片机可调频发生器,能够输出多种不同频率方波、正弦波,输出的波形的频率、幅度均可调,且操作方便。关键词:波形发生器;DAC0832;IC8038;单片机
一、方案论证 41.1设计要求 41.2方案论证 4二、硬件系统的设计 52.1整体框架图 52.2电源模块设计 52.2.1电源原理 52.2.2芯片介绍 62.3输入模块设计 72.3.1按键控制模块 72.3.2时钟复位电路 72.4输出模块设计 102.4.1LCD显示模块原理 102.4.1LCD1602芯片介绍 102.5DA转换模块设计 112.5.1DA转换模块原理 112.5.2DAC0832芯片介绍 122.6ICL8038函数信号发生模块设计 132.6.1ICL8038函数信号发生模块原理 132.6.2ICL8038芯片介绍 14三、软件设计 163.1输入模块编程 163.2输出模块编程 173.3DA转化模块编程 17四、仿真与调试 194.1硬件调试 194.1.1电气调试 194.1.2波形调试 194.1.3波形频率范围调试 204.1.4波形幅度范围调试 204.1.5失真度调试 204.2软件调试 21五、心得体会 22附录一: 23
一、方案论证1.1设计要求1)信号发生器能产生正弦波、方波;2)输出的频率在100HZ-100KHZ的范围内可调;3)在1000欧负载的条件下,输出正弦波信号的电压峰-峰值Vopp在0-5V的范围可调;4)输出信号的波形无明显失真;5)可实时显示输出信、幅度、频率和频率步进值;1.2方案论证信号发生器的实现方法一般有以下几种:方案一:用分立元件组成的函数发生器,一般是单函数发生器且频率不高,其工作不很稳定,不易调试。方案二:能够由晶体管、运放IC等通用数字元器件制作,更多的则是用专门的函数信号发生器IC产生。早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。方案三:利用专用直接数字合成DDS芯片的函数发生器,能产生任意波形并达到很高的频率。但成本较高。方案四:采用STC89C54RD+单片机和DAC0832芯片、ICL8038芯片,直接连接键盘和显示。该种方案主要对STC89C54RD+单片机的各个I/O口充分利用。P3口是连接键盘,P0口接LCD显示电路,P1口连接DAC0832输出波形。这样总体来说,能对单片机各个接口都利用上,而不再多用其它芯片,从而减小了系统的成本。也对按照系统便携式低频信号发生器的要求所完成。占用空间小,使用芯片少,低功耗。综合考虑,方案四各项性能和指标都优于其它几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,因此本设计采用方案四。二、硬件系统的设计2.1整体框架图设计框架如图1所示:图1设计框架由按键控制MCU控制输出不同的数字量,经过DA转换模块和ICL8038输出不同波形,由LCD显示是波形的种类和频率、幅度的大小。2.2电源模块设计2.2.1电源原理降压整流滤波稳压输出图2电源框架图该电路经过变压器将220v的交流电变成21v的交流电,经过桥式整流变成直流电。经滤波稳压后获得稳定的直流电,实际电路如图3所示:图3实际电路本系统中单片机系统要用到5V电源,函数信号发生器要用到15V电源,因此设计电源电路要考虑电源能够经过LM317稳压芯片对电压进行调整。可输出15V直流电压,因为STC89C54RD+工作电压是5V,因此又经过7805稳压芯片获得5V稳定直流电给MCU进行供电。2.2.2芯片介绍LM317是美国国家半导体公司的三端可调正稳压器集成电路。中国和世界各大集成电路生产商均有同类产品可供选用,是使用极为广泛的一类串联集成稳压器。LM317的输出电压范围是1.2V至37V,负载电流最大为1.5A。它的使用非常简单,仅需两个外接电阻来设置输出电压。另外它的线性调整率和负载调整率也比标准的固定稳压器好,图4是LM317的引脚图:图4LM317的引脚图7805是一种三端正电源稳压电路。它固定输出5V电压,能提供最大输出1.5A的电流,有过载和过短保护,图5是7805的引脚图:图57805的引脚图2.3输入模块设计2.3.1按键控制模块按键输入模块如图6所示:图6按键输入模块按键控制部分主要是来控制MCU输出的波形的种类和频率、幅度的大小。这个波形切换的按键主要是控制输出正弦波和方波,这里使用外部中断0,能让它随时就能够转换波形。调频按键是用来改变输出波形的频率,这里使用外部中断1,能够随时改变输出波形的频率。介于51单片机只有两个外部中断,因此调幅按键只能用扫描的方式来改变幅度。2.3.2时钟复位电路时钟复位电路原理图如图7:图7时钟复位电路该时钟方式采用片内时钟振荡方式,外接石英晶体和振荡电容。EA(30脚)接高电平时,单片机读取内部程序存储器,接低电平时直接读取外部数据。单片机STC89C54RD+引脚功能图如图8:图8单片机引脚CPU结构(一)单片机内部结构1)运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心。它能够对半字节、单字节等数据进行操作。例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其它可位寻址的位之间进行位数据传诵等操作,还能够完成进位标志位与其它可位寻址的位之间进行逻辑与、或操作。程序计数器PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。2)存储器和特殊功能寄存器存储器是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。特殊功能寄存器的地址范围为80H~FFH。在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带*号的可位寻址。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPUPSW便是典型一例。这些特殊功能寄存器大致上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0~P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,而且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。(二)引脚功能P0口功能:P0口具有两种功能:第一,P0口能够作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。输出数据时能够得到锁存,不需外接专用锁存器,输入数据能够得到缓冲。第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写P1口功能:P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。P2口的功能:2口的第一功能和上述两组引脚的第一功能相同,即它能够作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。P3口功能:P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。P3.0—RXD串行数据接收口P3.1—TXD串行数据发送口P3.2—INT0外中断0输入P3.3—INT1外中断1输入P3.4—T0计数器0计数输入P3.5—T1计数器1计数输入P3.6—WR外部RAM写选通信号P3.7—RD外部RAM读选通信号
2.4输出模块设计2.4.1LCD显示模块原理图9LCD显示LCD显示能灵活的显示不同的字符,因此用LCD1602显示所要显示的设计要求。从而更加明了的表示输出信号的种类和频率、幅度的大小以及步进值,让使用更方便。2.4.1LCD1602芯片介绍(一)LCD1602内部结构1)基本操作时序读状态(输入):RS=0,R/W=1,E=1,输出:D0~D7状态字。读数据(输入):RS=1,R/W=1,E=1,输出:无。写指令(输入):RS=0,R/W=0,E=1,输出:D0~D7数据。写数据(输入):RS=1,R/W=1,E=1,输出:无。2)1602液晶模块内部的控制器共有11条控制指令,屏幕和光标的操作都是经过指令编程来实现的。指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移。指令4:显示开关控制。指令5:光标或显示移位S/C:高电平时显示移动的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。(二)LCD1602引脚功能LCD1602引脚功能图如图10:图10LCD1602的引脚图VSS:地电源VDD:接5V正电源VEE:为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生”鬼影”,使用时能够经过一个10K的电位器调整对比度。RS:为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW:为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时能够写入指令或者显示地址,当RS为低电平RW为高电平时能够读忙信号,当RS为高电平RW为低电平时能够写入数据。E:端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7:为8位双向数据线。2.5DA转换模块设计2.5.1DA转换模块原理DA转换模块如图11:图11DA转换模块这是波形发生器的核心部分,主要是将MCU的数据转换成模拟量。从而产生波形,然后经过运放将其放大。2.5.2DAC0832芯片介绍(一)DAC0832内部结构DAC0832内部结构图如图12:图12DAC0832内部结构图芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可经过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可经过RFB端引用片内固有电阻,还能够外接。(二)DAC0832引脚功能DAC0832引脚图如图13:图13DAC0832引脚图DAC0832引脚功能说明:DI0~DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2:电流输出线。其值与Iout1之和为一常数。Rfb:反馈信号输入线,芯片内部有反馈电阻。Vcc:电源输入线(+5v~+15v)。Vref:基准电压输入线(-10v~+10v)。AGND:模拟地,摸拟信号和基准电源的参考地。DGND:数字地,两种地线在基准电源处共地比较好。2.6ICL8038函数信号发生模块设计2.6.1ICL8038函数信号发生模块原理函数发生器模块如图14:图14函数发生器模块2.6.2ICL8038芯片介绍(一)ICL8038的主要特点:1)可同时输出任意的三角波、矩形波和正弦波等。2)频率范围:0.001HZ~300kHz3)占空比范围:2%~98%4)低失真正弦波:1%5)低温度漂移:50ppm/℃6)三角波输出线性度:0.1%7)工作电源:±5V~±12V或者+12V~+25V(二)ICL8038引脚功能ICL8038引脚图15:图15ICL8038引脚图THD1:正弦波线性调节。OUT(s):正弦波输出。Ra :恒流源调节。Rb:恒流源调节。IN:调频控制输入端。OUT(Q):方波输出端。
三、软件设计3.1输入模块编程按键输入模块用到了外部中断0和外部中断1,外部中断0是控制波形切换,外部中断1调频,51单片机只有两个外部中断,因此调幅按键只能用扫描的方式来改变幅度。下面是中断的寄存器的对应设置及扫描语句:IE寄存器D7D6D5D4D3D2D1D0EAEX2ET2ESET1EX1ET0EX0TCON寄存器D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0本设计中对这两个寄存器的设置为:EA=1;IE=0X83;IT0=1;IT1=1;波形切换的典型代码: wave_change=~wave_change; if(wave_change) { TR0=0; TR1=1; } else { TR1=0; TR0=1; }调频的典型代码: if(wave_change){TR1=0;is_stop=1;} else{TR0=0;is_stop=1;} T_WAVE_INIT_code_num=T_WAVE_INIT_code_num-1; if(T_WAVE_INIT_code_num==0)T_WAVE_INIT_code_num=29; T_WAVE_INIT=T_WAVE_INIT_code[T_WAVE_INIT_code_num]; th=(65536-T_WAVE_INIT)/256; tl=(65536-T_WAVE_INIT)%256; temp=f_code[T_WAVE_INIT_code_num]; 调幅的典型代码:real_VPP_num=255.0/10*VPP_num;3.2输出模块编程LCD用来显示波形的种类、频率、幅度、步进值,它需要实时显示信号的变量。它的典型代码如下: Display_Buffer[1][0]=temp/100+'0'; Display_Buffer[1][1]=temp/10%10+'0'; Display_Buffer[1][2]=temp%10+'0'; LCD_Write_Command(0xC0); Write_LCD_Data(Display_Buffer[1][0]); Write_LCD_Data(Display_Buffer[1][1]); Write_LCD_Data(Display_Buffer[1][2]); Write_LCD_Data(Display_Buffer[1][3]);3.3DA转化模块编程DA转换模块用T0、T1定时器来控制输出,经过改变定时器的初值来改变波的频率。T0、T1要进行设置TMOD、IE、TCON寄存器。定时/计数器的控制寄存器TCON:位D7D6D5D4D3D2D1D0含义TF1TR1TF0TR0IE1IT1IE0IT0定时/计数器的工作模式寄存器TMOD:位D7D6D5D4D3D2D1D0含义GATEC/TM1M0GATEC/TM1M0T0是用来输出方波,T0中断的典型代码如下: staticbitd; TH0=th; TL0=tl; d=~d; if(d) DA0832=0x00; else DA0832=real_VPP_num;T1是用来输出正弦波,T1中断的典型代码如下:staticucharb; TH1=th; TL1=tl; DA0832=tosin[b]; b++;
四、仿真与调试4.1硬件调试4.1.1电气调试焊完之后,第一次通电后,发现LCD不显示。然后我就怀疑是不是有些接地和接电的线没有接。我就开始仔细的用万用表去检查各个芯片的接地线,发现STC89C54RD接地的没有和其它的地线连在一起。我第二次通电测试,LCD显示屏还是没有显示,我又继续检查没有检查完的那些接地和接电引脚,又发现LM358接电脚接成了5V的,我就把LM358接电源引脚接到15V的接电引脚,又开始通电,发现还是没有用,我又继续检查没有检查完的接电和接地引脚,依然没有发现任何问题。我又猜想是不是晶振没有起作用,我又开始检查晶振,发现晶振和电容的位子接反了,我就把原来的晶振和电容焊下来,重新焊过一个新的晶振和电容,并把位子换过来,然后又开始通电测试,发现还是没有显示。我又猜想是不是LCD显示屏的引脚没有接对,又开始检查LCD显示屏的各个引脚有没有接对,最后还是没有发现任何到不对。我又猜想STC89C54RD有没有工作,我又开始检查STC89C54R的主要引脚的工作电压,发现电压比实际的小!就开始检查STC89C54R的各个引脚,发现EA引脚接触不良,我又把它焊好。又通电测试,发现还是没有用。这时,我想是不是LCD显示屏那个调亮度的滑动变阻器没有调好,我又开始调滑动变阻器,发现LCD显示屏越来越暗,我又开始往相反的方向调,调着调着,我突然发现LCD显示屏有点字迹样子,我调的越来越快啦,最后发现LCD显示屏有显示,我仔细一看,只显示了一半内容。我又开始猜想是不是杜邦线没有插好。我又开始检查各个杜邦线有没有插好,开始重新插过一变,插完后。又开始通电,发现LCD显示屏终于完全能够显示啦!我又开始试试按键,都有用。这时,我心里无比的高兴。这时,我就开始用示波器检查LM358的1号输出脚的波形图,发现输出的矩形波有点失真。我想是不是ICL8038的10号脚接的电容太小啦,我又开始把电容改大一些,发现没有多大的区别,我又想是不是太大,我又开始改小一些,这时,突然发现失真度变得很微小。现在,我又满怀激情的去检测ICL8038的2号脚输出的正弦
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年数字人民币跨境支付跨行互通与清算体系建设报告
- 2025年学前教育机构师资管理创新与职业素养提升报告
- 2025年尾矿资源化利用与生态修复技术政策实施效果跟踪报告
- 2025年智能客服行业情感分析技术挑战与对策报告
- 2025产品二线市场总代理合同书
- 2025版新型复合材料围墙施工合作协议
- 2025版抹灰班组承包工程竣工结算合同
- 2025年度动产典当借款合同范本
- 2025版劳动法培训与劳动保障体系构建合同
- 2025年度常融离婚协议书:涉及房产、车辆、股权分割与子女抚养协议
- 2024-2025学年华东师大版8年级下册期末试卷附完整答案详解【名校卷】
- 三角形的概念 课件 2025-2026学年人教版(2024)数学八年级上册
- 2025年保密观知识竞赛试题及答案
- 2025年公安机关人民警察招录面试专项练习含答案
- DBJT15-98-2019 建筑施工承插型套扣式钢管脚手架安全技术规程
- 2025年部编版新教材语文七年级上册全套教案设计(含教学设计)
- 医院护理管理课件
- 2025年秋季第一学期开学典礼校长致辞:在历史的坐标上接好时代的接力棒(1945→2025→未来:我们的责任接力)
- 变电运维安全活动个人发言
- 2025年艾梅乙知识竞赛试题及答案
- 2025年高考语文全国一卷试题真题及答案详解(精校打印)
评论
0/150
提交评论