低频正弦波发生器设计.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计报告 设计题目: 波形发生器设计 学 院 自动化与信息工程学院 专 业 电子信息科学与技术 班 级 电技081 姓 名 学 号 指导教师 一、设计目的 信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域 四、硬件设计 实验硬件设计主要有四个模块。在实现基本功能时主要有三个模块,即波形选择控制模块、波形输出显示模块、数码管显示模块。在实现创新功能时,在原有三大模块的基础上增加了低通滤波模块。具体模块的设计思路如下: 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将输出电流转换成可调电压,也就完成了输出波形的幅值控制。 软件设计 本实验在软件实现方面采用的是C语言实现,在一定程度上增强了程序的易理解性。利用Proteus软件结合Keil实现C语言程序的调试以及单片机波形的仿真。 1、模块介绍:本方波发生器的软件设计中主要包含主要程序结构除了主函数外,分为延时控制子函数、正弦波发生子函数、方波发生子函数、锯齿波发生子函数、三角波发生子函数、波形选择控制键子函数。 (1)主程序主要完成初始化、检查有无按键按下、以及调用显示等等。主程序的流程图如下所示。 (2)、 正弦波发生子程序主要是循环输出事先定义的数值形成。定义256个正弦波采样值然后等间隔采样且循环输出。正弦波频率变化也是由采样间隔的变化控制的。 方波发生子程序:通过恒定幅值的负电压,与零电压相互交替输出形成方波。电压的输出时间由延时控制子函数控制。同时其占空比和频率变化也是由延时控制子函数控制的。 (4)三角波发生子程序:和正弦波发生原理类似,三角波发生子程序主要是循环输出事先定义的数值形成。定义256个三角波采样值然后等间隔采样且循环输出。三角波频率变化也是由采样间隔的变化控制的。 (5)锯齿波发生子程序:和三角波发生原理类似,锯齿波发生子程序主要是循环输出事先定义的数值形成。定义128个锯齿波采样值然后等间隔采样且循环输出。锯齿波频率变化也是由采样间隔的变化控制的。 延时控制子程序:延时设置主要靠for循环完成。延时时间不等于0时,每自减1程序执行126个循环知道延时时间减为0跳出循环,结束延时。 (7)、波形选择控制键子程序:该程序主要通过判断S1~S8的按键是否按下执行相应的程序。当判断某一按键按下时,设置数码管的静态显示值,同时定义S的值,使主函数在运行时能执行相应的case产生相应的波形或者变换。另外,波形控制子函数的每次按键选择后都会对n,p进行初始化设置,使每个波形形成时的初始采样间隔恒定。在频率以及占空比变化时再通过改变p的值实现采样间隔的控制,实现频率或者占空比的大小可变。 程序的源程序代码 #include #include #define uchar unsigned char #define uint unsigned int sbit s1 P1^0; //定义S1~S8控制单片机P1口输入 sbit s2 P1^1; sbit s3 P1^2; sbit s4 P1^3; sbit s5 P1^4; sbit s6 P1^5; sbit s7 P1

文档评论(0)

smdh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档