波形发生器设计报告_第1页
波形发生器设计报告_第2页
波形发生器设计报告_第3页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、波形发生器设计报告摘要波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领 域。函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波) 、正弦波 的电路。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。通过对函数波形发生 器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。目前 使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。所以本设计使用 的是 DAC0832、ICL8038 构成的发生器,可产生方波、正弦波等多种特殊波形和任意波形,波形 的频率可用程序控制改变。 在单片机上加外围器件独立式键盘

2、, 通过键盘控制波形频率的增减、 波形幅度的大小以及波形的选择,并用了LCD显示频率大小、波形的种类。在单片机的输出端口接DAC0832进行D/A转换,通过运放进行波形调整,再通过 ICL8038函数发生器,最后输出 波形。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。本设计制作的波形发生器是基于STC89C54RD单片机可调频发生器,可以输出多种不同频率方波、正弦波,输出的波形的频率、幅度均可调,且操作方便。关键词:波形发生器; DAC0832;IC8038 ;单片机一、方案论证 41.1 设计要求 41.2 方案论证 4二、硬件系统的设计 52.1 整体框架图 52.2电源模块设

3、计 52.2.1 电源原理 52.2.2 芯片介绍 62.3输入模块设计 6按键控制模块 62.3.2 时钟复位电路 72.4 输出模块设计 102.4.1 LCD 显示模块原理 102.4.1 LCD1602 芯片介绍 102.5 DA 转换模块设计 112.5.1 DA 转换模块原理 112.5.2 DAC0832 芯片介绍 122.6 ICL8038 函数信号发生模块设计 132.6.1 ICL8038 函数信号发生模块原理 132.6.2 ICL8038 芯片介绍 14三、软件设计 163.1 输入模块编程 163.2 输出模块编程 173.3 DA 转化模块编程 17四、仿真与调试

4、194.1 硬件调试 194.1.1 电气调试 194.1.2 波形调试 19波形频率围调试 20波形幅度围调试 20失真度调试 204.2 软件调试 21五、心得体会 22附录一: 23方案论证1.1 设计要求1)信号发生器能产生正弦波、方波;2)输出的频率在 100HZ-100KHZ 的围可调;3) 在1000欧负载的条件下,输出正弦波信号的电压峰-峰值Vopp在0-5V的围可调;4)输出信号的波形无明显失真;5)可实时显示输出信、幅度、频率和频率步进值;1.2 方案论证信号发生器的实现方法通常有以下几种: 方案一:用分立元件组成的函数发生器,通常是单函数发生器且频率不高,其工作不很稳 定

5、,不易调试。方案二: 可以由晶体管、 运放 IC 等通用数字元器件制作,更多的则是用专门的函数信号发 生器IC产生。早期的函数信号发生器 IC,如L8038、BA205 XR2207/2209等,它们的功能较 少,精度不高,频率上限只有 300kH z,无法产生更高频率的信号,调节方式也不够灵活,频率 和占空比不能独立调节,二者互相影响。方案三:利用专用直接数字合成DDS芯片的函数发生器,能产生任意波形并达到很高的频率。但成本较高。方案四:采用 STC89C54RD单片机和 DAC0832芯片、ICL8038芯片,直接连接键盘和显示。 该种方案主要对 STC89C54RD单片机的各个I/O 口

6、充分利用。P3 口是连接键盘,P0 口接LCD显示电路,P1 口连接DAC0832输出波形。这样总体来说,能对单片机各个接口都利用上,而不 再多用其它芯片, 从而减小了系统的成本。 也对按照系统便携式低频信号发生器的要求所完成。 占用空间小,使用芯片少,低功耗。综合考虑,方案四各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性, 充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也 低廉,样品制作成功的可能性比较大,所以本设计采用方案四。硬件系统的设计2.1整体框架图设计框架如图1所示:图1设计框架由按键控制MCI控制输出不同的数字量,经过DA转换模块和

7、ICL8038输出不同波形,由LCD显示是波形的种类和频率、幅度的大小。2.2电源模块设计电源原理图2电源框架图该电路通过变压器将 220v的交流电变成21v的交流电,通过桥式整流变成直流电。经滤波稳压后获得稳定的直流电,实际电路如图3所示:Di图3 实际电路本系统中单片机系统要用到5V电源,函数信号发生器要用到 15V电源,所以设计电源电路要考虑电源可以通过 LM317稳压芯片对电压进行调整。可输出15V直流电压,因为STC89C54RD+ 工作电压是5V,所以又经过7805稳压芯片获得5V稳定直流电给 MCI进行供电。222芯片介绍LM317是美国国家半导体公司的三端可调正稳压器集成电路。

8、我国和世界各大集成电路生 产商均有同类产品可供选用,是使用极为广泛的一类串联集成稳压器。LM317的输出电压围是1.2V至37V,负载电流最大为1.5A。它的使用非常简单,仅需两个外接电阻来设置输出电压。 此外它的线性调整率和负载调整率也比标准的固定稳压器好,图4是LM317的引脚图:图4LM317 的引脚图7805是一种三端正电源稳压电路。它固定输出5V电压,能提供最大输出1.5A的电流,有过载和过短保护,图 5是7805的引脚图:号压输入 |号 电压愉曽图57805 的引脚图2.3输入模块设计按键控制模块P3.0/RXD -P3J/TXD 1011P3.2/INT0 i2r1314lP3.

9、3/INT1 -P3.4JT0 *P3.57T1 -P3.6/WR P3.7/RD 151617按键输入模块如图6所示:波形切换调频图6 按键输入模块按键控制部分主要是来控制 MCU俞出的波形的种类和频率、幅度的大小。这个波形切换的按键主要是控制输出正弦波和方波,这里使用外部中断0,能让它随时就可以转换波形。调频按键是用来改变输出波形的频率,这里使用外部中断1,可以随时改变输出波形的频率。介于51单片机只有两个外部中断,所以调幅按键只能用扫描的方式来改变幅度。232时钟复位电路3CuF01OuF1CkI时钟复位电路原理图如图 7:U1X11I2M1918929>XTALXT ALRSTM

10、VC2T卜C3PSEt ALE EA图7时钟复位电路该时钟方式采用片时钟振荡方式,外接石英晶体和振荡电容。 片机读取部程序存储器,接低电平时直接读取外部数据。单片机STC89C54RD引脚功能图如图 8:EA( 30脚)接高电平时,单ABC0 T2/P1. 0 ADCL/T2EX/P1. 1 匚二ADC2/P1. 2 IADC3/P1. 3 ADC1/P1. 4 ADC5/P1.5 ADC6/P1.6 IADC7/P1,7 匚 RST 匚二 RXD/P3. 0TW. P3. LINTQ/ P3. 2IN71/P3. 3T0/P3.4T1/ P3. 5VR/P3. 6KD/P3. 7XTAL2X

11、TAL1 VSS 0 12 3 4 56 7 89 1-1111120STC89C54RD+10395 i 3 1 O 9 8 7 63 3 333322224 3 2 19-222VCCPO. 0 ADOFS 1/xWlPO.2/ADSPO. 3 *AD3PO. 1 ADIPO,5/AD5PO. 6 AD6更.7.-7EA ALE/PROG PSENP2.7/A15P2. 6/A1-1P2. 5 <A13P2,4/A12P签 3/A11P2. 2/A10P2. 1/A9P2, 0 A8图8单片机引脚CPU结构(一)单片机部结构1)运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心

12、。它可以对半字节、单字节等数据进 行操作。例如,能完成加、减、乘、除、力口1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等 操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。程序计数器PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其容自动加1。指令寄存器用于存放指令代码。CPU

13、执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。2)存储器和特殊功能寄存器存储器是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输 入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器 指定的位置存入和取出信息。特殊功能寄存器的地址围为80HFFH在MC& 51中,除程序计数器 PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这 SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带*号的可位寻址。特殊功

14、能寄存器反映了 8051的状态,实际上是 8051的状态字及控制字寄存器。用于CPUPSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片功能的控制用。与 芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O 口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MC& 51共有P0P3四个这样的并行口,可提供 32 根 I/O 线,每根线都是双向的,并且大都有第二功能。其余用于 芯片控制的寄存器中,累加器A、标志寄存器PSW数据指针DPTR等的功能前已提及。(二) 引脚功能P0 口功能:P0 口具有两种功能

15、:第一,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 口有两个功能:第一功能与其余三个端口

16、的第一功能相同;第二功能作控制用,每个引脚都不同。P3.0 RXD串行数据接收口P3.1 TXD串行数据发送口P3.2INT0 外中断 0输入P3.3INT1 外中断 1 输入P3.4 T0计数器0计数输入P3.5 T1 计数器 1 计数输入P3.6 WF外部RAM写选通信号P3.7 RD外部RAM读选通信号2.4输出模块设计2.4.1 LCD显示模块原理LCD1 LWI*i>_卜itt阿rlpl只rlpll网ug W! Np.1 i-f-il FS-liTJaj- H . dhT.j n SilNiT I图9 LCD 显示LCD显示能灵活的显示不同的字符,所以用LCD1602显示所要显

17、示的设计要求。从而更加明了的表达输出信号的种类和频率、幅度的大小以及步进值,让使用更方便。2.4.1 LCD1602芯片介绍(一) LCD1602部结构1)基本操作时序读状态(输入):RS=0,R/W=1,E=1,输出:D0D7状态字。读数据(输入):RS=1,R/W=1,E=1,输出:无。写指令(输入):RS=0,R/W=0,E=1,输出:D0D7数据。写数据(输入):RS=1,R/W=1,E=1,输出无。2)1602液晶模块部的控制器共有 11条控制指令,屏幕和光标的操作都是通过指令编程来 实现的。指令1:清显示,指令码 01H,光标复位到地址 00H位置。指令2:光标复位,光标返回到地址

18、00H。指令3:光标和显示位置设置 I/D,光标移动方向,高电平右移,低电平左移。指令4:显示开关控制。指令5 :光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标。指令6 :功能设置命令 DL:高电平时为4位总线,低电平时为 8位总线。 指令7 :字符发生器RAM地址设置。指令8 : DDRAM地址设置。指令9 :读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。(二)LCD1602引脚功能LCD1602引脚功能图如图 10:LlJm>LJ卜-IJUUJ寸图10LCD1602 的引脚图VSS地电源VDD接5V正电源,对比

19、VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW共同为低电, 当RS为高RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和平时可以写入指令或者显示地址, 当RS为低电平RW为高电平时可以读忙信号 电平RW为低电平时可以写入数据。E:端为使能端,当 E端由高电平跳变成低电平时,液晶模块执行命令。D0D7:为8位双向数据线。2.5 DA转换模块设计2.5.1 DA转换模块原理DA转换模块如图11:R3IK+ 5VAU5

20、:AU2Pia pifP1A2P1A36W3M473oHo1I LI0B7GNDIIDUT1RFBIOUT2VR t FDI 7DIDplh口 11DI5 12DI4013XFERI3NL'WRZWR1ILE(B¥1/0Y2)r G a111R119正1416l£D AC 0032P lrt7P1A6P1A5P1A4LiM-i£j8«图11 DA转换模块这是波形发生器的核心部分,主要是将MCI的数据转换成模拟量。从而产生波形,然后通过运放将其放大。2.5.2 DAC0832芯片介绍(一 )DAC0832 部结构DAC0832部结构图如图 12:1

21、1图12DAC0832 部结构图>t-NU芯片有两级输入寄存器,使 DAC0832具备双缓冲、单缓冲和直通二种输入方式,以便适于 各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。 要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的 反馈电阻可通过 RFB端引用片固有电阻,还可以外接。(二)DAC0832引脚功能DAC0832引脚图如图13:CS120WKiN19AGNQ 318中AIVD' 516"打吞I 5叫714S1 3591 2IDCTST O1 O1 1图13DAC0832弓I脚图DAC08

22、32引脚功能说明:DI0DI7 :数据输入线,TLL电平。ILE :数据锁存允许控制信号输入线,高电平有效。CS片选信号输入线,低电平有效。WR1为输入寄存器的写选通信号。XFER数据传送控制信号输入线,低电平有效。WR2为DAC寄存器写选通输入线。loutl :电流输出线。当输入全为1时loutl最大。Iout2 :电流输出线。其值与Iout1之和为一常数。 Rfb :反馈信号输入线,芯片部有反馈电阻。Vcc :电源输入线(+5v+15v)。Vref :基准电压输入线(-10v+10v)。AGND模拟地,摸拟信号和基准电源的参考地。DGND数字地,两种地线在基准电源处共地比较好。IUED打

23、中IDIJI。uti【9 UT 22.6ICL8038函数信号发生模块设计函数信号发生模块原理函数发生器模块如图14:llLI L 1262 ICL8038芯片介绍(一)ICL8038 的主要特点:1)可同时输出任意的三角波、矩形波和正弦波等。2)频率围:0.001HZ 300kHz3)占空比围:2%98%4)低失真正弦波:1%5)低温度漂移:50ppm/ C6)三角波输出线性度:0.1%7)工作电源:土 5V ± 12V或者+ 12V+ 25V(二)ICL8038引脚功能ICL8038 引脚图 15:THD1 :正弦波线性调节。 OUT (s):正弦波输出。 Ra :恒流源调节。R

24、b:恒流源调节。IN :调频控制输入端。OUT(Q):方波输出端。THD1 _114NCOUT(s) 一213NCOUT (T)-312THD2Ra411VeeRb510_ GTVcc69OUT(Q)RFM"78IN> L8038图15 ICL8038弓I脚图三、软件设计3.1输入模块编程按键输入模块用到了外部中断o和外部中断1,外部中断o是控制波形切换,外部中断1调频,51单片机只有两个外部中断,所以调幅按键只能用扫描的方式来改变幅度。下面是中断的寄存器的对应设置及扫描语句:IE寄存器D7D6D5D4D3D2D1D0EAEX2ET2ESET1EX1ET0EX0Tcor寄存器D

25、7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0本设计中对这两个寄存器的设置为:EA=1;IE=0X83;IT0=1;IT 1=1;波形切换的典型代码:wave_cha nge=wave_cha nge;if(wave_cha nge)TR0=0;TR1=1;elseTR1=0;TR0=1;调频的典型代码:if(wave_cha nge) 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_ nu m=0)T_

26、WAVE_INIT_code_ nu m=29;T_WAVE_INIT=T_WAVE_INIT_codeT_WAVE_INIT_code_ nu m;th=(65536-T_WAVE_INIT)/256;tl=(65536-T_WAVE_INIT)%256;temp=f_codeT_WAVE_INIT_code_ nu m;调幅的典型代码:real_VPP_num=255.0/10*VPP_ num;3.2输出模块编程LCD用来显示波形的种类、频率、幅度、步进值,它需要实时显示信号的变量。它的典型 代码如下:Display_Buffer10 = temp/1OO+'O:Display_

27、Buffer11 = temp/10%10+'0:Display_Buffer12 = temp%10+'0'LCD_Write_Comma nd(OxCO); Write_LCD_Data(Display_Buffer1O);Write_LCD_Data(Display_Buffer11);Write_LCD_Data(Display_Buffer12);Write_LCD_Data(Display_Buffer13);3.3 DA转化模块编程DA转换模块用TO、T1定时器来控制输出,通过改变定时器的初值来改变波的频率。TO、T1要进行设置TMOD IE、TCOt寄存

28、器。定时/计数器的控制寄存器 TCON位D7D6D5D4D3D2D1D0含义TF1TR1TF0TR0IE1IT1IE0IT0定时/计数器的工作模式寄存器 TMOD位D7D6D5D4D3D2D1D0含义:GATE-C/TM1M0GATEC/TM1M0T0是用来输出方波,T0中断的典型代码如下: static bit d;TH0=th;TL0=tl;d=d;if(d)DA0832=0x00;elseDA0832=real_VPP_ num;T1是用来输出正弦波,T1中断的典型代码如下: static uchar b;TH仁th;TL1=tl;DA0832=tosinb;b+;四、仿真与调试4.1

29、硬件调试4.1.1 电气调试焊完之后,第一次通电后,发现LCD不显示。然后我就怀疑是不是有些接地和接电的线没有接。我就开始仔细的用万用表去检查各个芯片的接地线,发现STC89C54R歿地的没有和其他的地线连在一起。我第二次通电测试,LCD显示屏还是没有显示,我又继续检查没有检查完的那些接地和接 电引脚,又发现LM358接电脚接成了 5V的,我就把LM358接电源引脚接到15V的接电引脚,又 开始通电,发现还是没有用,我又继续检查没有检查完的接电和接地引脚,仍然没有发现任何 问题。我又猜想是不是晶振没有起作用,我又开始检查晶振,发现晶振和电容的位子接反了, 我就把原来的晶振和电容焊下来,重新焊过

30、一个新的晶振和电容,并把位子换过来,然后又开 始通电测试,发现还是没有显示。我又猜想是不是 LCD显示屏的引脚没有接对,又开始检查LCD显示屏的各个引脚有没有接对,最后还是没有发现任何到不对。我又猜想STC89C54RDI没有工作,我又开始检查 STC89C54R的主要引脚的工作电压,发现电压比实际的小!就开始检查 STC89C54R的各个引脚,发现 EA引脚接触不良,我又把它焊好。又通电测试,发现还是没有用。这时,我想是不是LCD显示屏那个调亮度的滑动变阻器没有调好,我又开始调滑动变阻器,发现LCD显示屏越来越暗,我又开始往相反的方向调,调着调着,我突然发现LCD显示屏有点字迹样子,我调的越

31、来越快啦,最后发现LCD显示屏有显示,我仔细一看,只显示了一半容。我又开始猜想是不是杜邦线没有插好。我又开始检查各个杜邦线有没有插好,开始重新插过一 变,插完后。又开始通电,发现 LCD显示屏终于完全可以显示啦!我又开始试试按键,都有用。 这时,我心里无比的高兴。这时,我就开始用示波器检查 LM358的1号输出脚的波形图,发现输出的矩形波有点失真。 我想是不是 ICL8038 的 10 号脚接的电容太小啦, 我又开始把电容改大一些, 发现没有多大的区 别,我又想是不是太大,我又开始改小一些,这时,突然发现失真度变得很微小。现在,我又满怀激情的去检测 ICL8038 的 2 号脚输出的正弦波,发现失真度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论