目录一设计任务与要求 (1)二方案设计及论证 (1)三单元电路设计与参数计算 (3)3.1单片机最小系统 (3)3.2数模转换电路 (4)3.3运算放大器电路和低通滤波电路 (5)3.4显示电路 (6)3.5键盘显示模块的设计 (7)3.6软件设计流程 (7)3.7软件仿真 (8)四安装与调试 (11)4.1调试过程 (11)4.2出现的问题与解决的方法 (11)4.3调试结果 (12)五性能分析与测试 (13)5.1测试仪器 (13)5.2测试数据 (13)5.3性能总结 (14)六结论与心得 (14)参考文献 (15)附录1仿真图 (15)附录2源程序 (16)一、 设计任务与要求信号发生器又称信号源或振荡器,是现今各种电子电路实验设计中不可或缺的仪器设备之一。
按信号波形可分为正弦信号、函数信号、脉冲信号和随机信号发生器四类;按频率覆盖范围分为低频信号发生器、高频信号发生器和微波信号发生器;按输出电平可调节范围和稳定度分为简易信号发生器、标准信号发生器和功率信号发生器;按频率改变的方式分为调谐式信号发生器、扫描式信号发生器、程控式信号发生器和频率合成式信号发生器等。
本课程设计要求利用单片机构造低频信号发生器,可产生正弦波、方波和三角波三种波形,再通过/D A 转换器把数字信号转变成模拟信号,经运算放大器输出到示波器,与此同时,外接LCD 显示输出信号的类型和频率。
● 基本要求(1) 用单片机实现波形的输出;(2) 用LCD 显示输出波形的类型和频率; (3) 输出波形中不能产生尖峰干扰; (4) 按键可切换波形;(5) 输出频率范围:110Hz KHz ;(6) 误差要求:正弦波频率误差1%<,方波上升沿和下降沿的时间均应小于2s μ,频率误差0.1%<,三角波失真率3%≤; (7) 响应时间15s <。
● 拓展功能(1) 实现输出波形的幅值可调:输出电压范围012V 连续可调; (2) 实现输出波形频率可调:110Hz KHz 可调。
二、 方案设计及论证设计一个由单片机控制的信号发生器。
运用单片机系统控制产生方波、三角波、正弦波。
信号发生器所产生的波形的频率、幅度均可调节。
并可通过按键切换信号的波形。
并用LCD 显示输出波形的类型和频率。
● 总体方案方案1:利用8951AT C 单片机和数模转换器件0832DAC 产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。
至于波形的产生,首先产方案2:利用8952AT C 单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过/D A 转换器0832DAC 将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。
本方案的系统原理框图如下:图2系统原理框图(方案2)经比较,方案2既可满足课程设计的要求,并且所用元器件经济简单,容易实现。
改变幅度方案:方案1:可以将送给DA 的数字量乘以一个系数,这样就可以改变DA 输出电流的幅度,从而改变输出电压;但是这样做有很严重的问题,单片机在做乘法运算时需要很长的时间,这样的话输出波形的频率就会很低,达不到至少500Hz 的要求;并且该方案的输出电压做不到连续可调,当DA的输入数字量比较小时,输出的波形失真就会比较严重。
方案2:将输出电压通过一个运算放大器放大,运放的反馈电阻为滑动变阻器。
这样还有个优点是幅度连续可调。
经比较,方案2既可满足课程设计的要求,并且电路简单。
三、单元电路设计与参数计算3.1单片机最小系统STC C RC、振荡器和复位电路3部分组成,它是主控制器主要由单片机8952单片机工作的必要组成部分,又称为单片机最小系统,如图3所示。
它是系统的控制中枢,也是整个系统的核心部分。
在系统中发挥3项作用:(1)实现人机对话;(2)控制波形的产生;(3)处理键盘和显示电路的信号。
图3 单片机最小系统● 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。
单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。
单片机内部有一个高增益反相放大器,其输入端为芯片引脚1XTAL ,其输出端为引脚2XTAL 。
而在芯片的外部,1XTAL 和2XTAL 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
电容器1C 和2C 的作用是稳定频率和快速起振,电容值的范围在530pF pF ,典型值为30pF 。
晶振的频率通常选择两种6MHz 和12MHz 。
只要在单片机的1XTAL 和2XTAL 引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。
由于频率较大时,三角波、正弦波、方波等波形中每一点延时时间为几微秒,故延时时间还要加上指令时间即可得到指定频率的波形,该电路用12MHz 晶振。
● 复位电路复位电路是使单片机的CPU 或系统中的其他部件处于某一确定的初始状态,并从这一状态开始工作。
通常单片机复位电路有两种:上电复位电路,按键复位电路。
上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。
它利用的是电容充电的原理来实现的;按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。
如果要实现复位的话,只要按下RESET 键即可。
它主要是利用电阻的分压来实现的。
本系统选用了按键复位电路。
3.2数模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器0832DAC 。
0832DAC 主要由8位输入寄存器、8位DAC 寄存器、8位/D A 转换器以及输入控制电路四部分组成。
但实际上,0832DAC 输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。
0832DAC 是电流型输出,在应用时外接运放使之成为电压型输出。
根据对0832DAC 的数据锁存器和DAC 寄存器的不同的控制方式,0832DAC 有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
本设计选用直通方式。
图5 运算放大电路和低通滤波电路LM的2管脚与DAC的(IOUT2)12管脚相连,324324LM的3管脚与0832REF管脚相DAC的9 0832LM的1管脚与0832DAC的(IOUT1)11管脚相连,324连。
第一级运算放大器的作用是将0832DAC 输出的电流信号转化为电压信号1V ,第二级运算放大器的作用是将1V 通过反向放大电路放大()21R R -倍。
题目要求输出的电压在012V 可调,而1V 的电压大约是5V ,所以1R 选择5k Ω的电阻,2R 选择20k Ω的电位器,最大的输出电压为()52020V k k V ⨯ΩΩ=,最小电压为0,可以实现题目要求的012V 。
在第二个运算放大器的输出端连接了一个低通滤波器。
如果不加低通滤波器,也能够生成波形,但是产生的信号中毛刺很多,加一个低通滤波器不仅起到的滤波的作用,还起到了平滑的作用。
低通滤波器的截止频率:1234F R C π=⨯⨯⨯这里我们选择3R 为100Ω,6C 为0.1F μ,截止频率16F KHz =。
实验表明,此时的输出波形效果不错。
3.4显示电路通过液晶1602显示输出的波形、频率,其电路图如:图6 显示电路如上图所示,1602的八位数据端接单片机的1P 口,其三个使能端RS 、RW 、E 分别接单片机的 3.2 3.4P P 。
通过软件控制液晶屏可以显示波形的种类以及波形的频率。
D 7D 6D 5D 4D 3D 2D 1D 0E R W R S V S S V D D V E E13.5键盘显示模块的设计本系统采用独立键盘,其连接电路图如下:图7 键盘显示模块如图7所示,按键1用来切换输出波形,按键2和3用来调节频率的加减。
当按按键2时输出波形的频率减小,按按键3时输出波形的频率增加。
3.6软件设计流程AT C单片机,用编程的方法来产生三种波形,并通过编程本系统采用8952来切换三种波形以及波形频率的改变。
具体功能有:●各个波形的切换;●各种参数的设定;●频率增减等。
AT C芯片中,然后插到系统中即可独软件调通后,通过编程器下载到8952立完成所有的控制。
软件的流程图如下:图8软件设计流程图3.7软件仿真●仿真环境PC机,3Keil uVision,Pr otues调试说明:正弦波、矩形波、三角波信号的输出,通过对独立键盘来实现其的不同波形的输出以及其频率的改变。
●仿真过程当程序下进去时经过初始化,液晶屏的上只显示"wave:"和"f:",当开关一按一下是此时输出波形为正弦波,按两下时输出为方波,按三下时输出为三角波。
另外两个开关可以调节频率。
DAC在进过滤由单片机采用编程方法产生三种波形、通过DA转换模块0832波放大之后输出。
⏹正弦波程序:if(s1num==1) //正弦波//{for(j=0;j<255;j++){P0=tosin[j];delay1(ys);}}其仿真结果如下:图9 正弦波波形 方波程序:if(s1num==2) //方波//{P0=0xff;delay1(ys);P0=0;delay1(ys);}其仿真结果如下:图10 方波波形 三角波程序:if(s1num==3) //三角波//{if(a<128){P0=a;delay1(ys);}else{P0=255-a;delay1(ys);}a++;}其仿真结果如下:图11 三角波波形四、安装与调试4.1调试过程● 不通电,用万用表根据电路图仔细检查各线路连接是否正常。
● 首先是调试单片机最小系统,用__488STC ISP V 软件通过串口下程序。
看是否可以正常下程序。
● 当可以正常下载程序时,给51单片机下一个让所有/I O 口一会儿输入0,延时,再输出1,以此类推。
用万用表测量各/I O 口得电压是不是一会儿高,一会儿低。
安上DA 和运算放大器芯片,给单片机下一个输出正弦波的测试程序,通过示波器看输出是否正常。
● 给单片机下一个完整的程序,分别按下1S ,看波形是否改变。
按下2S ,看频率是否改变。
4.2出现的问题与解决的方法● 调试单片机的串口时,发现不能正常的下程序。
我想可能是复位电路存在问题,因而将复位电容由10F μ改为22F μ,结果可以正常下载程序了。
● 刚开始写的测试程序输出的波形失真很大。
我想可能是波形的ROM 表里的数据值过小,导致DA 输出的误差很大。