单片机课程设计——中低频信号发生器设计(范文模版)

时间:2019-05-14 21:32:05下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机课程设计——中低频信号发生器设计(范文模版)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机课程设计——中低频信号发生器设计(范文模版)》。

第一篇:单片机课程设计——中低频信号发生器设计(范文模版)

中低频信号发生器设计

一、方案设计:

使用单片机控制DA芯片产生模拟波形是一种产生所需信号的简单方式,但由于受到普通DA芯片的设置时间以及单片机自身晶振频率的限制,产生的波形频率往往难以超过10khz,本设计不使用传统DA芯片而使用模电知识设计频率可变的波形发生器电路,额外添加一个乘法器实现AM调制功能,并使用单片机控制其频率切换。

本设计从总体上可分为三个模块:(1)单片机控制部分(2)波形发生模块(3)AM调制模块

由于大部分工作使用模电完成了,所以单片机部分就相对简单,只需最基本的用于维持单片机工作的分立元件,使用IO口控制模拟部分产生所需波形。

波形发生器模块分为两部分,一部分为正弦波、方波、三角波产生电路,另一部分设计为提供单片机控制上述波形发生电路中的振荡回路中的RC值的接口,以实现对其的频率进行控制。

AM调制模块使用市场上现有的乘法器芯片mc1496,使用该芯片文档中的AM调制电路并适当调节电路参数,即可实现AM调制功能。

二、方案仿真与实现:

(一)AM调制模块

Mc1496芯片手册中的AM调制电路:

该电路在仿真和实际电路中都无法实现所需功能,经过反复实验结合网上的资源,得出了如下图的电路,在仿真中该电路载波输入小于100mv时可以输出比较良好的AM调制波形(调制信号不能大于该幅值的1/2),在实际电路中载波输入的峰峰值必须小于70mV。仿真电路:

0R51kΩJ1XFG1Key = A 11J209XFG2C3Key = A 10µF173C2100nF18R121kΩ0R9750ΩR85R10750ΩC4100nFR111kΩ1080VDD5VR1351Ω2IO2IO3IO8IO10IO1IO4IO6IO12R420kΩC110nFR15131kΩ14u26V112 V 0R620kΩR720kΩXSC1Ext Trig+164A+_+_B_IO14IO512mc1496_1R1414kΩ050kΩ6Key=A50%7V28 V 仿真结果:

(二)正弦波发生模块

使用文氏桥式振荡电路输出正弦波,使用八路模拟开关CD4051实现振荡回路频率的调节,具体电路见下图:

R2100kΩ50%V2Key=A5 V D11N4002GPR3120kΩD2112U1A11N4002GPXSC1Ext Trig+R533kΩ34LM324DR41kΩC2100nFV15 V C1100nFR11kΩ+_A_+B_ 仿真结果:

R2100kΩ50%V2Key=A5 V D11N4002GPR3120kΩD2112U1A11N4002GPR533kΩCD4051INPUT34CD4051OUTPUTXSC1Ext Trig+LM324DR41kΩC2100nFV15 V C1100nFR11kΩ+_A_+B_CD4051INPUTJ1AKey = A J2BKey = A J3CKey = A J4DKey = A J6FKey = A J7GKey = A J5EKey = A C3100nFR61kΩC4100nFR71kΩC5100nFR81kΩC6100nFR91kΩC7100nFR101kΩC8100nFR111kΩC9100nFR121kΩ1J8AKey = A J9BKey = A J10CKey = A J11DKey = A J13FKey = A J14GKey = A J12EKey = A C10100nFR131kΩC11100nFR141kΩC12100nFR151kΩC13100nFR161kΩC14100nFR171kΩC15100nFR181kΩC16100nFR191kΩ30

因为CD4051在Mutisim仿真库中没有,只好使用开关表示CD4051的功能,使用单片机控制CD4051的A、B、C三个引脚选择0~7八个开关闭合,使得RC振荡回路的频率可以被 当输出频率较高时波形会产生比较明显的失真,可以使用可编程滤波器改善波形,但考虑到成本因素,在本设计中没有采用这种方案(以上电阻电容和实际电路中的值不同)。正弦波频率的计算公式:

f1/(2RC)

方波和三角波产生电路:

R110kΩC124V25 V R250kΩ40%Key=AU1AR313XSC1Ext Trig+_A+_+B_50nFR410kΩ81kΩLM358ADR5V15 V 10kΩD11N5759A

方波和三角波频率计算公式: f1/(2*(R1R2)*C1*ln(12*R4/R5))

正弦波电路中的频率调节电路也可以适用于方波和三角波发生器上,实现利用单片机控制输出频率的目的。

(三)单片机控制模块: 本设计侧重于使用廉价的模拟电路代替高昂的DA芯片实现较高频率波形发生器的功能,对于单片机的控制作用并不是十分依赖,使用单片机可以使得频率的调节更加简单,也可以为进一步开发提供帮助,单片机仿真电路:

C2U122pF19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617SINASINBSINCSININHSQU_TRI_ASQU_TRI_BSQU_TRI_CSQU_TRI_INHX1CRYSTAL18C122pFXTAL2C3910uFRSTR110k293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 SINA、SINB、SINC为正弦波发生电路中用到的CD4051的3位地址,用于选择某一个RC回路作为振荡回路,SININH为正弦波发生电路中用到的CD4051芯片的片选。

SQU_TRI_A、SQU_TRI_B、SQU_TRI_C为方波和三角波发生电路中用到的CD4051的3位地址,用于选择某一个RC回路作为振荡回路,SQU_TRI_INH为为方波和三角波发生电路中用到的CD4051芯片的片选。

用以上八个脚控制输出的正弦波、方波、三角波的频率。

P1.0~P1.3为用户改变电路运行状态的按键,分别为:改变输出波形类型、增大输出频率、降低输出频率、改变AM调制波形输出信号的载波频率。

三、课程设计感想

正如方案设计中所述,这个课程设计的目的是为了克服普通DA+单片机构成的波形发生器电路只能输出低频信号的障碍,在实验中,我发现使用文氏振荡器产生正弦波可以输出频率100khz以上的信号,可以满足本设计要求,但当其输出频率较高时会出现比较明显的失真,这个问题可以使用可编程滤波器滤出所需频率来解决,也可以自建中心频率可变的带通滤波器滤出所需频率,虽然最后由于时间和成本的限制没能够设计出一个符合要求的滤波器,但我找到了一款非常人性化的滤波器设计软件FWP3232,使用该软件可以方便的设计有源滤波器,但要实现中心频率可变需要的模拟开关数目太多(我目前只想到这种使用模拟开关的解决办法),只好放弃这个想法。单片机的设计比较简单,只要在主程序中不断查询几个按键,根据用户的按键操作改变控制模拟开关的管脚电平实现对输出波形频率、类型的控制即可。最麻烦的是乘法器的制作,因为我最开始不知道使用mc1496构成的乘法器用于实现AM调制时载波的峰峰值不能大于70mv,连续两天都看不到AM调制波形还十分匪夷所思的看到类似载波和调制信号叠加的波形;另外,我最开始不知道mc1496的输出幅值和那些参数有关,只是单纯的使用了pdf中的电路,结果怎么也看不到,后来在网上搜集了一些资料才知道我放置在管脚5上的电阻太大了,导致mc1496芯片中的三极管射级输出电流太小,乘法器无法起到相乘的作用,自然无法实现调制。本次课程设计最大的收获在于深化了我对单片机在控制系统中的作用的理解,单片机不一定要承担所有的功能(输出波形、提供菜单、控制外围器件),使用辅助的外围模块实现主要功能,使用单片机提供操作接口,则更可以满足性能需求又可以提供实时高效的服务。

第二篇:函数信号发生器课程设计

一 绪论

1.1 函数信号发生器的应用意义

函数发生器一般是指能自动产生正弦波、三角波、方波及锯齿波、阶梯波等电压波形的电路或仪器。根据用途不同,有产生三种或多种波形的函数发生器,使用的器件可以是分立器件也可以是集成电路。为进一步掌握电路的基本理论及实验调试技术,本课题采用有集成运算放大器与晶体差分放大器共同组成的方波—三角波—正弦波函数发生器的设计方法。具体方法是由比较器和积分器组成方波—三角波产生电路,比较器输出的方波经积分器得到三角波,三角波到正弦波的变换电路主要由差分放大器来完成。差分放大器具有工作点稳定,输入阻抗高,抗干扰能力较强等优点。特别是作为直流放大器时,可以有效地抑制零点漂移,因此可将频率很低的三角波变换成正弦波。波形变换的原理是利用差分放大器传输特性曲线的非线性。

通过此次设计,我们能将理论知识很好的应用于实践,不仅巩固了书本上的理论知识,而且锻炼了我们独立查阅资料、设计电路、独立思考的能力

1.2设计任务

设计能产生方波、三角波、正弦波的函数信号发生器电路

1.3设计要求

1)输出各种波形工作频率范围:10—100Hz,100—1KHz,1K—10KHz。

2)输出电压:正弦波U=3V , 三角波U=5V , 方波U=14V。3)波形特征:幅度连续可调,线性失真小。

4)选择电路方案,完成对确定方案电路的设计;计算电路元件参数与元件选择、并画出各部分原理图,阐述基本原理。

1.4设计方案

函数信号发生器是是由基础的非正弦信号发生电路和正弦波形发生电路组合而成。由运算放大器单路及分立元件构成,方波——三角波——正弦波函数信号发生器一般基本组成框图如图1所示。

图1 函数信号发生器框图

1、方波—三角波—正弦波信号发生器电路有运算放大器及分立元件构成,其结构如图1所示。他利用比较器产生方波输出,方波通过积分产生三角波输出,三角波通过差分放大电路产生正弦波输出。

2、利用差分放大电路实现三角波—正弦波的变换

波形变换原理是利用差分放大器传输特性曲线的非线性,波形变换过程如图2所示

图 2 三角波和正弦波得转换示意图

由图2可以看出,传输特性曲线越对称,线性区域越窄越好;三角波的幅度Uim应正好使晶体接近饱和区域或者截至区域。

函数信号发生器各单元电路的设计

2.1方波产生电路图及元件参数的确定

2.1.1 方波产生电路 如图3所示

图 3 方波发生电路

2.1.2 元件参数的确定

图3中U2构成同相输入迟滞比较器电路,用于产生输出方波。可变电容C1具有调频作用,可用于调节方波的频率。使产生的频率范围在10~~100Hz。方波振荡周期

T = 2 R1 C1 ln(1+2R4/R3)。

C1的值可以改变电 R1=7K,R3=7K,R4=7K。

振荡频率 f = 1/T。可见,f与C1成反比,调整电容路的振荡频率。图中稳压管 D1 D2 为调整方波幅值,UP-P = D1 +D2。

2.2方波—三角波转换电路图及元件参数确定

2.2.1 方波—三角波转换电路 如图 4 所示

图 4 方波-三角波电路图

2.2.2 方波→三角波的参数确定

图4中U2构成同相输入迟滞比较器电路,用于产生输出方波。可变电容C1具有调频作用,可用于调节方波的频率。运算放大器U1与电阻R5及电容C2构成积分电路,用于将U2电路输出的方波作为输入,产生输出三角波。

图中R6在调整方波—三角波的输出频率时,不会影响输出波形的幅度。若要求三角波的幅值,可以调节可变电容C2。

三角波部分参数设定如下:

对于输出三角波 其振荡周期

T =(4 R5 R6 C2)/ R3,f = 1/T。而要调整输出三角波的振幅,则需要调整可变电容C2的值。以使三角波UP-P = 5V。

2.3正弦波参数电路及元件参数确定

2.3.1 正弦波参数电路 如图 5 所示

图 5 三角波-正弦波电路图

2.3.2正弦波的参数确定

.改变输入频率,是电路中的频率一定时三角波频率为固定或变化范围很小。加入低通滤波器,而将三角波转化为正弦波。在图5中当改变输入频率后,三角波与正弦波的幅度将发生相应改变。由于

振荡周期

T =(4 R5 R6 C2)/ R3,C2为调节三角波的幅度使UP-P = 5V,R10调节输出正弦波得幅值UP-P = 3V。三角波→正弦波的变换主要用差分放大器来完成。差分放大器具有工作点稳定,输入阻抗高、抗干扰能力强等优点。特别是做直流放大器时,可以有效的抑制零点漂移,因此可将频率很低的三角波变换成正弦波。波形变换的原理是利用差分放大器传输特性的非线性。

2.4方波-三角波-正弦波函数发生器整体电路图

根据以上设计,画出方波-三角波-正弦波函数发生器电路图如图 6 所示。

图 6

方波-三角-正弦波函数发生器电路图

3、电路的仿真调试

3.1 利用Multisim软件画出电路图,模拟电路结果,观察各波形的输出。

3.1.1 方波、三角波产生电路的仿真波形如图7所示

图7 方波、三角波仿真图形

3.1.2 方波—三角波转换电路的仿真 如图 8 所示

图 8 方波—三角波仿真图形

3.1.3三角波—正弦波转换电路仿真

三角波—正弦波仿真图形

3.1.4 方波—三角波—正弦波转换电路仿真

方波—三角波—正弦波仿真图形

3.1.4结果分析

输出电压

方波信号接入示波器仿真,调节C1,得方波峰峰Vpp=14 V;撤除方波信号并接入三角波信号,调节C2,测得三角波峰峰值Upp=5 V;将正弦波信号接入示波器,调节R10,测得正弦波峰峰值Upp=3V。

第三篇:课程设计任务书-6基于单片机的多功能信号发生器的设计

课程设计任务书

学生姓名:专业班级:指导教师:工作单位:

题目: 基于单片机的多功能信号发生器的设计初始条件:

1.运用所学的单片机原理与接口技术知识和数字电路知识;

2.51单片机应用开发系统一套;

3.PC机及相关应用软件;

要求完成的主要任务:

多功能信号发生器是工业测量领域使用广泛的测量设备,要求能够输出方波、正弦波、锯齿波;其输出频率可调、输出幅度可调,要求该设备采用单片机实现,可调部分具备粗调和细调功能并具备一定功率输出。

1.完成多功能信号发生器的设计和调试。

2.撰写课程设计说明书,说明书使用A4打印纸计算机打印,用Protel等绘图软件绘制电子线路图纸。

时间安排:

第1周 下达课程设计任务书和日程安排,调研和查找资料,明确设计任务要求; 第2周 完成方案论证、总体设计和硬件设计;

第3周 完成软件设计和程序的编写;

第4周 调试硬件系统和软件程序,完成整个系统的设计和调试;

第5周 结果分析整理、撰写课程设计报告,验收和答辩。

指导教师签名:2010 年 12 月 15 日 系主任(或责任教师)签名:2010 年 12 月 16 日

第四篇:基于51单片机函数信号发生器设计.

摘 要: 本系统利用单片机AT89S52采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产1Hz—3kHz的波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

关键词:单片机AT89S52、DAC0832、液晶1602 Abstract: this system capitalize on AT89s52,it makes use of central processor to generate three kinds of waves, they are triangle wave, and use D/A conversion module, wave generate module and liquid crystal display of 1602, it can have the 1Hz-3KHz profile.In this system it can control wave form choosing, frequency, range,can have the sine wave, the square-wave, the triangular wave.Simultaneously may also take the frequency measurement frequency,and displays them through liquid crystal display of 1602.this design includes three modules.They are D/A conversion module, wave generate module and liquid crystal display of LED module.In this design, the wave generator into wave form module and D/A conversion module are discussed in detail.key word: AT89S52, DAC0832, liquid crystal 1602.目录

1.系统设计

1.1 设计要求

1.2方案设计与论证

1.2.1 信号发生电路方案论证 1.2.2 单片机的选择论证 1.2.3 显示方案论证 1.2.4 键盘方案论证 1.3 总体系统设计 1.4 硬件实现及单元电路设计 1.4.1 单片机最小系统的设计

1.4.2 波形产生模块设计 1.4.3 显示模块的设计 1.4.4 键盘模块的设计

1.5 软件设计流程 1.6 源程序

2.输出波形的种类与频率的测试

2.1 测试仪器及测试说明

2.2 测试结果 3.设计心的及体会 4.附录 4.1 参考文献 4.2 附图

1、系统设计

经过考虑,我们确定方案如下:利用AT89S52单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

1.1、设计要求

1、利用单片机采用软件设计方法产生三种波形 2)、三种波形可通过键盘选择 3)、波形频率可调

4)、需显示波形的种类及其平率

1.2方案设计与论证

1.2.1 信号发生电路方案论证

方案一:通过单片机控制D/A,输出三种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。

方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。

方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2 单片机的选择论证

方案一:AT89S52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵

以上两种方案综合考虑,选择方案一

1.2.3 显示方案论证

方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。

方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容易控制,可以显示字母。

以上两种方案综合考虑,选择方案二。

1.2.4 键盘方案论证

方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。

方案二:编码式键盘。编码式键盘的按键触点接于74LS148芯片。当键盘上没有闭合时,所有键都断开,当某一键闭合时,该键对应的编码由74LS148输出。

以上两种方案综合考虑,选择方案一。

1.3总体系统设计

该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。图(1)为系统的总体框图

图(1)总体方框图

1.4硬件实现及单元电路设计

1.4.1单片机最小系统的设计

89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图(2)89C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:

(1 有可供用户使用的大量I/O口线。(2 内部存储器容量有限。(3 应用系统开发具有特殊性。

图(2)89C51单片机最小系统

1.4.2 波形产生模块设计

由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。其电路图如下:

图(3)波形产生电路

如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。DAC0832的为八位数据并行输入的,其结构图如下:

图(4)DAC0832的内部结构

1.4.3 显示模块的设计

通过液晶1602显示输出的波形、频率,其电路图如下:

图(5)液晶显示

如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P3.2—P3.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。

1.4.4 键盘显示模块的设计

本系统采用独立键盘,其连接电路图如下:

图(6)键盘

图中键盘独立键盘引出的八跟线分别接单片机的P2口,只用其第四列,因此在程序初始化时P2.7脚给低电平。如图开关3用来切换输出波形、开关7和8用

来调节频率的加减。当按开关7时输出波形的频率增加,按开关8时输出波形的频率减小。

1.5 软件设计流程

本系统采用AT89S52单片机,用编程的方法来产生三种波形,并通过编程 来切换三种波形以及波形频率的改变。

具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。

软件调通后,通过编程器下载到AT89S52芯片中,然后插到系统中即可独立完成所有的控制。

软件的流程图如下:

图(7)程序流程图

1.6源程序

#include #define uchar unsigned char #define uint unsigned int

sbit lcdrw=P3^3;sbit lcdrs=P3^2;sbit lcde=P3^4;sbit d=P2^7;sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit cs=P3^5;sbit wr=P3^6;uchar s1num,a,ys,j;uint fre;uchar code tosin[256]={ 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,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,0x76,0x72,0x6f,0x6c,0x69,0x66,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,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 delay(uint z //延时子程序 { uchar i,j;for(i=z;i>0;i--for(j=110;j>0;j--;} void delay1(uint y { uint i;for(i=y;i>0;i--;} void write_com(uchar com //1602写指令

{ lcdrs=0;P1=com;delay(5;lcde=1;delay(5;lcde=0;} void write_data(uchar date //1602数据 { lcdrs=1;P1=date;delay(5;lcde=1;delay(5;lcde=0;} void init(//初始化 { lcdrw=0;lcde=0;wr=0;cs=0;

write_com(0x38;write_com(0x0c;write_com(0x06;write_com(0x01;write_com(0x80+0x00;write_data(0x77;//写wave: write_data(0x61;write_data(0x76;write_data(0x65;write_data(0x3a;write_com(0x80+0x40;//写 f: write_data(0x66;write_data(0x3a;} void write_f(uint date //写频率 { uchar qian,bai,shi,ge;qian=date/1000;bai=date/100%10;shi=date/10%10;ge=date%10;write_com(0x80+0x42;write_data(0x30+qian;

write_data(0x30+bai;write_data(0x30+shi;write_data(0x30+ge;write_data(0x48;write_data(0x5a;} void xsf(//显示频率 { if(s1num==1 { fre=(1000/(9+3*ys;write_f(fre;} if(s1num==2 { fre=(100000/(3*ys;write_f(fre;} if(s1num==3 { fre=(1000/(15+3*ys;write_f(fre;}

} void keyscanf({ d=0;if(s1==0 { delay(5;if(s1==0 { while(!s1;s1num++;if(s1num==1 { ys=0;write_com(0x80+0x05;write_data(0x73;//写sine: write_data(0x69;write_data(0x6e;write_data(0x65;write_data(0x20;write_data(0x20;} if(s1num==2

{ ys=10;write_com(0x80+0x05;write_data(0x73;//写squrae write_data(0x71;write_data(0x75;write_data(0x61;write_data(0x72;write_data(0x65;} if(s1num==3 { ys=0;write_com(0x80+0x05;//train write_data(0x74;write_data(0x72;write_data(0x61;write_data(0x69;write_data(0x6e;write_data(0x20;} if(s1num==4 {

s1num=0;P1=0;write_com(0x80+0x05;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_com(0x80+0x42;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;} } } if(s2==0 { delay(5;if(s2==0

{ while(!s2;ys++;} } if(s3==0 { delay(5;if(s3==0 { while(!s3;ys--;} } } void main({ init(;while(1 { keyscanf(;if(s1num==1 //正弦波// {

for(j=0;j<255;j++ { P0=tosin[j];delay1(ys;} } if(s1num==2 //方波// { P0=0xff;delay1(ys;P0=0;delay1(ys;} if(s1num==3 //三角波// { if(a<128 { P0=a;delay1(ys;} else { P0=255-a;

delay1(ys;} a++;}

if(!(s1&s2&s3 { xsf(;} } }

2、输出波形的种类与频率的测试

2.1、测量仪器及测试说明

测量仪器:稳压电源、示波器、数字万用表。

测量说明:正弦波、矩形波、三角波信号的输出,通过对独立键盘来实现其的不同波形的输出以及其频率的改变。

2.2测试过程

当程序下进去时经过初始化,液晶屏的上只显示“wave:”和“f:“,当开关三按一下是此时输出波形为正弦波,按两下时输出为方波,按三下时输出为三角波。另外两个开关可以调节频率,三种波形的频率可调范围不同,分别如下: 正弦波:1—180HZ 方 波:1——3.3KHZ 三角波:1——180HZ

根据示波器的波形频率的显示计算出三种波形的频率计算公式如下: 正弦波:f=(1000/(9+3*ys 方 波:f=(100000/(3*ys 三角波:f=(1000/(15+3*ys 其中ys为延时的变量。三种波形的仿真波形图如下:

图(8)正弦波图形

图(9)方波图形

图(10)三角波图行

2.3、测试结果

各项指标均达到要求。

测试数据如下:

1)、产生正弦波、方波、三角波基本实现

2)、三种波形的频率都可调,但不能步进的调节,其中方波的可调范围最广为1—3.3KHZ,其他两种波形的频率范围不大1—180HZ 3)、显示部分基本实现 4)、键盘功能实现

3、设计心的及体会

通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果,进一步加深了我对专业知识的了解和认识以及动手的能力。虽然在这次设计中对于所学知识的运用和衔接还不够熟练,作品完成的还不是很出色。但是我将在以后的工作和学习中继续努力、不断完善。这个设计是对我们过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。

4、附录

4.1 参考文献

[1] 戴仙金主编 51单片机及其C语言汇编程序开发实例 清华大学出版社,2008 [2] 高吉祥主编 全国大学生电子设计竞赛培训系列教程 电子工业出版社,2007 [3] 杨素行主编 模拟电子技术基础简明教程 高等教育出版社,2007 [4] 蒋辉平主编 单片机原理与应用设计 北京航空航天大学出版社 2007 4.2 附图

图(11)总体原理设计图

第五篇:基于51单片机函数信号发生器设计

湘南学院

电子工程设计

题 目: 基于51单片机的函数信号发生器设计

学院(系): 电子信息与电气工程学院 年级专业: 2013级电子信息科学与技术 学 号: 201314110144,201314110106 学生姓名: 周 慧 程迅 指导教师: 王 龙

2016年 4 月 1 日

课程设计任务书

学生姓名:程迅 周慧

专业班级:电子信息科学与技术

(一)班 指导教师:王 龙 工作单位:电子信息与电气工程学院

题 目:

基于51单片机的函数信号发生器的设计 初始条件:

1.运用所学的单片机原理与接口技术知识和数字电路知识; 2.51单片机最小系统; 3.PC机及相关应用软件。

要求完成的主要任务: 系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,通过程序设计方法产生锯齿波、正弦波、三角波、矩形波四种波形,通过按键来控制四种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及频率值。

1.完成函数信号发生器的设计和调试。

2.撰写课程设计说明书,说明书使用A4打印纸计算机打印,用proteus等仿真软件绘制电子线路图纸。

基于51单片机的函数信号发生器的设计

摘 要

本系统利用单片机STC89C52采用程序设计方法产生锯齿波、正弦波、三角波、矩形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产0Hz—535Hz的波形。通过按键来控制三种波形的类型选择、频率变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

关键词:单片机STC89C52、DAC0832、液晶1602

目录

前言..........................................................................1 第一章 系统设计要求及设计方案..................................................2

1.1 设计要求.................................................................2 1.2 方案设计与论证...........................................................2 1.2.1 信号发生电路方案论证...............................................2 1.2.2 单片机的选择论证..................................................2 1.2.3 显示方案论证.....................................................3 1.2.4 键盘方案论证......................................................3 1.3 系统主要功能.............................................................3 第二章 系统的硬件设计..........................................................4 2.1 总体系统设计.............................................................4 2.2 硬件实现及单元电路设计...................................................4 2.2.1 振荡电路..........................................................4 2.2.2 复位电路设计.....................................................5 2.2.3 波形产生模块设计..................................................6 2.2.4显示模块的设计.....................................................7 2.2.5 键盘显示模块的设计.................................................7 2.3 软件设计流程.............................................................8 第三章 proteus的简介..........................................................9 3.1 proteus介绍.............................................................9 3.1.1 keil调试.........................................................10 3.1.2 proteus仿真调试..................................................10 3.2 测试过程................................................................11 附录一:总电路图..............................................................12 附录二:部分程序..............................................................12

前言

信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制系统和教学实验等领域。信号的产生有模拟电路、专用硬件和软件产生等方法。采用模拟电路搭建函数信号发生器,可产生方波、三角波、正弦波、锯齿波,但不能产生任意波形,存在波形质量差、控制难、可调范围小,电路复杂和体积大等缺点,且频率调节不方便。专用硬件方法产生的信号频率分辨率高、稳定性好、在线调整方便,如目前在通讯系统中应 用广泛的直接数字频率合成(DDS)技术,例如 AD9854是一种典型的信号产生方法,但是价格昂贵。

利用单片机通过程序设计方法产生低频信号,其频率底线较低,具有线路简单、结构紧凑、体积小、价格低廉、频率稳定度高、抗干扰能力强、用途广泛等优点,且如需要产生新的波形时,只需对程序进行修改即可。该系统利用单片机STC89C52和D /A 转换器DAC0832 转换数字信号为 0 ~ 5 V 模拟电压信号,并在 LCD1602 显示,通过示波器就能得知产生的信号波形。

第一章 系统设计要求及设计方案

1.1 设计要求

1)、利用单片机采用软件设计方法产生四种波形 2)、四种波形可通过按键选择输出 3)、波形频率可调 4)、需显示波形的频率

1.2 方案设计与论证 1.2.1 信号发生电路方案论证

方案一:通过单片机控制D/A,输出三种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。

方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。

方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2 单片机的选择论证

方案一:STC89C52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵。

以上两种方案综合考虑,选择方案一

1.2.3 显示方案论证

方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。

方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容易控制,可以显示字母。

以上两种方案综合考虑,选择方案二。

1.2.4 键盘方案论证

方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。

方案二:独立点触按键。点触按键体积小,安装方便,成本低。以上两种方案综合考虑,选择方案二。

1.3 系统主要功能

经过考虑,我们确定方案如下:利用STC89C52单片机采用程序设计方法产生锯齿波、正弦波、矩形波锯齿波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过按键来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

第二章 系统的硬件设计

2.1 总体系统设计

该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。下

图2.1为系统的总体框图

图2.1 总体方框图

2.2 硬件实现及单元电路设计

2.2.1 振荡电路

单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产

4(电容和一般取30pF)。这样就构成一个稳定的自激振荡器。

生ALE信号,此时得到的信号时机器周期信号。

振荡电路如图2.2.1所示:

图2.2.1 振荡电路

2.2.2 复位电路设计

复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。按键复位电路图如图2.2.2所示。

图2.2.2 复位电路

2.2.3 波形产生模块设计

由单片机采用编程方法产生四种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。

其电路图如下图2.2.3(1):

图2.2.3(1)波形产生电路

如上图2.2.3(1)所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。DAC0832的为八位数据并行输入的,其结构图如下图2.2.3(2):

图2.2.3(2)DAC0832的内部结构

2.2.4显示模块的设计

通过液晶1602显示输出的波形、频率。1602的八位数据端接单片机的P0口,其使能端RS、E分别接单片机的P3.5、P3.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。

其电路图如下图2.2.4:

图2.2.4 液晶显示

2.2.5 键盘显示模块的设计

其连接电路图如下图2.2.5:

图2.2.5 键盘

图中键盘引出的5跟线分别接单片机的P1口,其中P1.0连接按键1用于切换波形,P1.1、P1.2连接按键2、3用于调节波形的频率的增减,P1.3连接的按键用于占空比的升高。

2.3 软件设计流程

本系统采用STC89C52单片机,用编程的方法来产生四种波形,并通过编程 来切换四种波形以及波形频率的改变。

具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。

软件调通后,通过编程器下载到STC89C52芯片中,然后插到系统中即可独立完成所有的控制。

软件的流程图如下图2.3:

图2.3 程序流程图

第三章 proteus的简介

3.1 proteus介绍

Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,它组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

其功能模块:—个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARES PCB设计。PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。支持许多通用的微控制器,如PIC,AVR,HC11以及8051。最新支持ARM。交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘,I2C,SPI器件。强大的调试工具,包括寄存器和存储器,断点和单步模式。IAR C-SPY 和Keil uVision2等开发工具的源层调试。应用特殊模型的DLL界面-提供有关元件库的全部文件。

在完成了函数信号发生器的硬件设计和软件设计以后,便进入系统的调试阶段。系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,我们选用的是Keil软件进行软件调试,用Proteus软件完成硬件调试。

3.1.1 keil调试

3.1.2 proteus仿真调试

3.2 测试过程

1)、当程序下进去时经过初始化,液晶屏的上只显示“Frequency:”和“0050Hz”,默认状态输出波形为正弦波,按一下按键1时输出为方波,按按键1两下时输出为锯齿波,按按键1三下时输出三角波。按键2、3可以调节频率,三种波形的频率可调范围,分别如下: 正弦波:0—535Hz 方 波:0——535Hz 三角波:0——535Hz 锯齿波:0——535Hz 根据示波器的波形频率的显示计算出三种波形的频率计算公式如下:

正弦波:f= 65536-10^6//(512*FREQ)方 波:f= 65336-10^6/(256*FREQ)三角波:f= 65336-10^6/(256*FREQ)锯齿波:f= 100(+-)n*2Hz.2)、四种种波形的仿真波形图如下:

图3.2(1)方波图形

图3.2(2)正弦波图形

图3.2(3)三角波图形 图3.2(4)锯齿波图形

附录一:总电路图

附录二:部分程序

//调节部分——频率 void freq_ud(void){ unsigned int temp;if(freq_d==0){ FREQ--;

} else if(freq_u==0){ FREQ++;} if(cho==1|cho==3)//锯齿波256次中断一周期,否则他的频率是100(+-)n*2Hz.{temp=0xffff-3906/FREQ;//默认为100hz,切换后频率为50HZ65336-10^6/(256*FREQ)TIME0_H=temp/256;TIME0_L=temp%256;} else if(cho==0|cho==3)//正弦波 三角波默认周期50hz 65536-10^6//(512*FREQ){temp=0xffff-1953/FREQ;TIME0_H=temp/256;TIME0_L=temp%256;}}

//调节部分——方波的占空比

void duty_ud(void)//方波也采用512次中断构成一个周期。{ if(duty_d==0&sqar_num>0)sqar_num--;else if(duty_u==0&sqar_num<255)} //波形发生函数 void sint(void){ if(!flag){ cs=0;P2=sin_num[num++];cs=1;if(num==0){num=255;flag=1;} sqar_num++;} else if(flag){

} void square(void){ if(i++

cs=0;P2=num++;cs=1;} void stw(void){ if(~flag){ cs=0;P2=num++;cs=1;if(num==0){num=255;flag=1;} } else if(flag){

} void main(){ TMOD=0X01;TH0=0xff;TL0=0xd9;IT0=1;//设置中断触发方式,下降沿 EA=1;EX0=1;ET0=1;IP=0X01;//键盘中断级别高 init_1602();//初始化lcd

write_command(0x80);//液晶显示位置 delay(5);

for(i=0;i

{

} write_data(value1[i]);delay(5);TR0=1;while(1){ show_frequency();} } //按键中断处理程序。void it0()interrupt 0 { if(chg==0){FREQ=50;if(++cho==4){cho=0;num=0;}}//num=0;所有数据从新开始,保证波形的完整性

else if(freq_u==0|freq_d==0){freq_ud();} else if(cho==1&(duty_d==0|duty_u==0)){duty_ud();} else;}

下载单片机课程设计——中低频信号发生器设计(范文模版)word格式文档
下载单片机课程设计——中低频信号发生器设计(范文模版).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    函数信号发生器课程设计报告.

    漳州师范学院 《模拟电子技术》课程设计 函数信号发生器 姓 名: 学 号: 系 别: 专 业: 年 级: 指导教师: 2012年4月3日 函数信号发生器 摘要 利用集成电路LM324设计并实现所需技术......

    函数信号发生器-课程设计2.

    长 安 大 学 电子技术课程设计 课题名称 函数信号发生器 班 级 __******____ 姓 名 指导教师 *** 日 期 本次电子技术课程设计是指通过所学知识并扩展相关知识面,设计出任务......

    51单片机设计多功能低频函数信号发生器

    【转】 51单片机设计多功能低频函数信号发生器 2010-06-05 17:37 转载自 yeyongan1987 最终编辑 yeyongan1987 51单片机设计多功能低频函数信号发生器 应用89S52单片机和D......

    基于单片机设计的简易信号发生器资料

    辽东学院信息技术学院 《可编程逻辑器件原理及应用》教学实习报告 简易信号发生器 学生姓名: 杨刚 学 号: 0915110619 班 级: B1106 专 业: 电子信息工程 指导教师: 张俊芳 20......

    函数信号发生器设计

    函数信号发生器设计设计任务与要求 ⑴ 设计并制作能产生正弦波、矩形波(方波)和三角波(锯齿波)的函数发生器,本信号发生器可以考虑用专用集成芯片(如5G8038等)为核心实现。⑵ 信号......

    信号发生器设计(推荐)

    模拟课程设计题 信号发生器设计 设计一个能够输出正弦波、三角波和矩形波的信号源电路,电路形式自行选择。输出信号的频率可通过开关进行设定,具体要求如下: (1)输出信号的频率范......

    简易信号发生器设计

    《单片机原理及应用》课程设计任务书 课程设计题目:简易信号发生器设计 一、设计目的和要求 (一)、设计目的 通过设计简易信号发生器,完成系统设计、编码、调试及维护工作的实践......

    函数信号发生器课程设计.(含五篇)

    模 拟 电 路 课 程 设 计 报 告 中原工学院 (2012年6月24日) 目录 1、课程设计的任务、要求及步骤 2、设计方案的选择 3、电路设计主要的技术指标 4、函数信号发生器电路原理......