低频正弦波发生器设计解读.docx

上传人:b****2 文档编号:2370633 上传时间:2022-10-29 格式:DOCX 页数:24 大小:873.85KB
下载 相关 举报
低频正弦波发生器设计解读.docx_第1页
第1页 / 共24页
低频正弦波发生器设计解读.docx_第2页
第2页 / 共24页
低频正弦波发生器设计解读.docx_第3页
第3页 / 共24页
低频正弦波发生器设计解读.docx_第4页
第4页 / 共24页
低频正弦波发生器设计解读.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

低频正弦波发生器设计解读.docx

《低频正弦波发生器设计解读.docx》由会员分享,可在线阅读,更多相关《低频正弦波发生器设计解读.docx(24页珍藏版)》请在冰豆网上搜索。

低频正弦波发生器设计解读.docx

低频正弦波发生器设计解读

单片机课程设计报告

设计题目:

波形发生器设计

学院自动化与信息工程学院

专业电子信息科学与技术

班级电技081

姓名

学号

指导教师

 

 

 

一、设计目的

信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。

在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。

信号发生器可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。

二、设计的主要内容和要求

实验要求设计一个波形发生器,功能要求分为基本要求和创新要求两部分:

1.1基本任务:

(1)设计一款能够产生3种以上波形的波形发生器;

(2)设计波形选择按钮,可以通过按键选择不同波形;

(3)LED或LCD显示波形代号(如:

1为正弦波,2为方波,3为锯齿波,4为三角波);

(4)其他功能(创新部分)。

1.2创新部分

(1)波形频率调节,可以通过按键选择调节波形频率;

(2)波形幅值调节,可以通过按键选择调节幅值频率;

(3)方波占空比调节,可以通过按键调节方波占空比;

(4)增加滤波环节。

三.整体设计思路

本实验设计的整体思路是采用AT89S52单片机和DAC0832芯片,直接连接键盘和显示。

该种方案主要对AT89S52单片机的各个I/O口充分利用。

P1口是连接键盘,P0口接显示电路,P2口连接DAC0832输出波形。

这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片,从而减小了系统的成本。

也对按照系统便携式低频信号发生器的要求所完成。

占用空间小,使用芯片少,低功耗。

能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以经过全组同学的讨论后决定采用此方案。

对于实验设计的模块化要求,该方案在实现上很清晰。

在硬件设计方面,实现基本功能时主要有三个模块,即波形选择控制模块、波形输出显示模块、数码管显示模块。

在实现创新功能时,在原有三大模块的基础上增加了低通滤波模块。

在软件设计方面,基于程序实现的简单易懂的特点,我们决定使用C语言程序实现波形发生、转换等程序。

利用Proteus软件结合Keil实现程序的调试以及仿真。

主要程序结构除了主函数外,分为延时控制子函数、正弦波发生子函数、方波发生子函数、锯齿波发生子函数、三角波发生子函数、波形选择控制键子函数。

 

四、硬件设计

实验硬件设计主要有四个模块。

在实现基本功能时主要有三个模块,即波形选择控制模块、波形输出显示模块、数码管显示模块。

在实现创新功能时,在原有三大模块的基础上增加了低通滤波模块。

具体模块的设计思路如下:

1、波形选择控制模块。

通过P1口和开关K0-K8相连接来控制各种波形输出以及变化功能。

根据K1-K4键状态进行输出波形的选择。

根据K5-K6键状态进行方波占空比调节,K7-K8键状态进行波形频率变化的调节。

开关键向下接“0”,相应的控制键产生作用输出相应波形或者进行波形变化,向上拔接“1”,无波形输出或波形变化。

 

2、波形输出显示模块。

主要由DAC0832芯片,滑动电阻和运算放大器组成。

通过P2口和DAC0832芯片相连接输出波形。

滑动变阻器将DAC0832输出电流转换成电压值并通过电阻的变化控制相应电压的变化,再通过运算放大器后输出实现输出波形的幅值大小变化。

3、数码管显示模块。

该模块的实现比较简单。

通过数码管各管脚与单片机相连接,同时添加一个上拉电阻控制数码管的静态输出。

4、低通滤波模块。

该模块是在实现创新要求时添加的。

由于方案设计中正弦波,三角波,锯齿波的实现是由采样不同电压值输出实现的,添加低通滤波模块可以缓解输出波形的阶梯化。

5、整体电路设计。

波形选择控制模块、波形输出显示模块、数码管显示模块、低通滤波模块组成。

由AT89S52单片机和DAC0832芯片,直接连接键盘和显示。

P1口是连接键盘,P0口接显示电路,P2口连接DAC0832输出波形。

滑动变阻器接0832将输出电流转换成可调电压,也就完成了输出波形的幅值控制。

5、软件设计

本实验在软件实现方面采用的是C语言实现,在一定程度上增强了程序的易理解性。

利用Proteus软件结合Keil实现C语言程序的调试以及单片机波形的仿真。

1、模块介绍:

本方波发生器的软件设计中主要包含主要程序结构除了主函数外,分为延时控制子函数、正弦波发生子函数、方波发生子函数、锯齿波发生子函数、三角波发生子函数、波形选择控制键子函数。

(1)主程序主要完成初始化、检查有无按键按下、以及调用显示等等。

主程序的流程图如下所示。

 

 

(2)、正弦波发生子程序主要是循环输出事先定义的数值形成。

定义256个正弦波采样值然后等间隔采样且循环输出。

正弦波频率变化也是由采样间隔的变化控制的。

 

 

(3)方波发生子程序:

通过恒定幅值的负电压,与零电压相互交替输出形成方波。

电压的输出时间由延时控制子函数控制。

同时其占空比和频率变化也是由延时控制子函数控制的。

 

 

(4)三角波发生子程序:

和正弦波发生原理类似,三角波发生子程序主要是循环输出事先定义的数值形成。

定义256个三角波采样值然后等间隔采样且循环输出。

三角波频率变化也是由采样间隔的变化控制的。

 

 

(5)锯齿波发生子程序:

和三角波发生原理类似,锯齿波发生子程序主要是循环输出事先定义的数值形成。

定义128个锯齿波采样值然后等间隔采样且循环输出。

锯齿波频率变化也是由采样间隔的变化控制的。

 

延时控制子程序:

延时设置主要靠for循环完成。

延时时间不等于0时,每自减1程序执行126个循环知道延时时间减为0跳出循环,结束延时。

 

 

 

(7)、波形选择控制键子程序:

该程序主要通过判断S1~S8的按键是否按下执行相应的程序。

当判断某一按键按下时,设置数码管的静态显示值,同时定义S的值,使主函数在运行时能执行相应的case产生相应的波形或者变换。

另外,波形控制子函数的每次按键选择后都会对n,p进行初始化设置,使每个波形形成时的初始采样间隔恒定。

在频率以及占空比变化时再通过改变p的值实现采样间隔的控制,实现频率或者占空比的大小可变。

 

2、程序的源程序代码

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbits1=P1^0;//定义S1~S8控制单片机P1口输入

sbits2=P1^1;

sbits3=P1^2;

sbits4=P1^3;

sbits5=P1^4;

sbits6=P1^5;

sbits7=P1^6;

sbits8=P1^7;

uintd1,d2;

uints,p;

uintn;

ucharcodebxnum[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,//设置数码管初始化

0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

ucharcodesintab[256]=//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

};

ucharcodejctab[128]=//128个采样点取值输出锯齿波

{

0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,

0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,

0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,

0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e,

0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,

0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e,

0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,

0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e,

0x80,0x82,0x84

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1