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

摘 要

在电子产品调试和测量领域,常常需要有信号种类多、精度高且频率、幅度等信号参数方便可调的信号源。尤其随着电子、通信、网络行业的发展,频段的分布日趋密集,更要求有高精度、高可靠性的信号源。信号发生器则是一种常用的信号源,广泛地应用于电子电路调试、通信测试、控制系统仿真和教学实验测试等领域。但是目前的产品体积大、电路复杂、价格高,无法满足用户对成本和便携性要求高的波形发生器的需求。
本设计以单片机软件和硬件及外围电路构成了可以产生固定幅值的方波、锯齿波、三角波及正弦波4种的波形的智能化函数信号发生器。该设计在程序运行的过程中,可以调节信号的幅度及频率,并可以实现不同的波形之间的任意切换,并且在波形切换波形时,能够给与相应的指示。本设计结构简单,容易实现,波形的频率可以通过程序进行调节,采用了Proteus仿真,并用示波器测量验证了设计可行性。通过外设按键可以设置信号类型、频率及幅度,此设计对于低成本智能化测试具有较高的实用价值。
系统硬件电路主要以AT89C51单片机为核心,两个数模转换电路为主体,基于DAC0808的数模转换电路用于波形信号的产生,而基于ADC0804的数模转换电路用于信号频率的控制,4位DIP开关用于波形的选择与切换,指示电路用于指示不同的波形。此外,还包括时钟电路,复位电路,放大电路等。
软件部分主要通过Keil编程实现,将程序下载到单片机中,从而实现控制功能。首先是四种波形的生成,通过AT89C51单片机控制DAC0808实现数字调压,产生对应的模拟量电压,即利用单片机并行口输出的数字量,就可以产生四种不同的波形。
在调试过程中,遇到两个问题:
(1)电路中电源设置的问题。该系统电路需要±15V,+5V,接地等电源,而供电网络中只有+5V和接地,无法满足供电需要。
在查阅相关资料后,对供电网络进行了重新的配置。又在关键的电压节点处放置探针,以确保每一个节点处电源的供电正常。
(2)仿真后示波器上无波形输出
在关联的电路节点上都放置探针,观察后发现输出端电压太小,无法产生波形。后将5K的电阻继续增大,达到升高电压的目的,后经调试后发现波形正常产生。

关键词:Proteus仿真 信号发生器 AT89C51单片机 数模转换电路

设计任务与设计目的

1.1 设计目的

(1)熟悉单片机电路的引脚安排。
(2)掌握数模转换芯片的逻辑功能及使用方法。
(3)了解信号发生器的组成及工作原理。
(4)熟悉信号发生器的设计与制作。

1.2 设计任务与指标

本设计以AT89S51单片机为核心,采用由8位ADC0804的A/D转换器和DAC0808的D/A转换器组成的数模转换电路,再利用keil软件进行单片机编程,从而设计出能够产生固定幅值的方波、锯齿波、三角波及正弦波4种波形的信号发生器。且该设计在程序运行的过程中,可以调节信号的幅度及频率,并且在波形切换不同波形时,能够给与相应的指示,并可以实现不同的波形之间的任意切换。
2 系统整体设计

2.1 设计思路

(1)设计信号发生器的基本结构。
(2)设计D/A转换的定时电路。
(3)设计单片机控制及指示电路电路。
(4)设计波形频率设定电路。

2.2 系统整体方案

该波形发生器以AT89C51单片机系统为核心, 通过C语言对单片机编程即可产生相应的正弦波,方波,三角波,锯齿波等波形信号。将所写程序装入单片机的程序存储器中,在程序运行中,当接收到来自外界的命令,需要输出某种波形时调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。 通过LCD1602显示模块实现可视化,通过按键开关可实现各种功能的转换和信号频率的控制。信号发生器总体方框图如图1所示。

3 系统硬件设计与仿真

3.1 硬件电路的总体设计

系统硬件电路主要以AT89C51单片机为核心,两个数模转换电路为主体,基于DAC0808的数模转换电路用于波形信号的产生,而基于ADC0804的数模转换电路用于信号频率的控制。4位DIP开关用于波形的选择与切换,指示电路用于指示不同的波形。此外,还包括时钟电路,复位电路,放大电路等设计,其总体设计图如图2所示。

3.2 单片机系统及指示电路

单片机系统采用8位单片机AT89C5l,32个I/O口,2个定时计数器,2个中断源足够完成该信号发生器的设计由AT89C51芯片构成的最小系统,辅助11.0592MHz的晶振电路、复位电路构成了最小系统。采用外部时钟电路,接单片机的XTAL1和XTAL2再加两个辅助电容构成时钟电路,复位电路为手动按键复位,为典型的RC电路,接法简单。当开关导通后,根据LED的亮灭的不同,可实现指示功能,如图所示。

3.3 D/A转换模块

3.3.1 波形信号产生电路

在单片机测控中,单片机只能输出数字量,但是要想形成波形信号,需要输出模拟量。就需要单片机自带DA功能或者外接DA模块。由于AT89C51不带DA功能,所以需要设计外接DAC模块。集成化的DAC芯片种类很多,本设计选用DAC0808,可以将8位数字量转换成模拟量输出。数字量输入的范围为0到255之间,对应的模拟输出范围在VREF-到VREF+之间。
根据这一特性,利用AT89C51单片机就可以控制DAC0808实现数字调压,单片机只要送给DAC0808不同的数字量,即可实现不同的模拟电压输出,从而产生不同的波形信号。其中8位数字信号输入端接单片机的P0口,D/A转化转化模块电路如图所示。

3.3.2 调频电路

以锯齿波为例,若要调节信号的频率,只需在单片机输出的两个数据之间加入一定的延时即可。通过调节输入ADC0804转换的模拟电压值,从而产生8位二进制数作为延时函数,即可控制输出波形的幅值与频率,基于ADC0804的调频电路如图所示。

3.4 按键调节模块

按键电路与单片机的P3口连接。共4个按键,一端接到单片机的P3.4、P3.5、P3.6和P3.7,另一端接地。开关处于闭合还是打开状态,可通过I/0口的高低电平来决定。所接按键的作用是控制信号发生器的各个波形间的切换。该信号发生器可以产生4种波形、正弦波、三角波、方波和锯齿波,每次按下按键信号就在4种波形中依次循环切换。按键电路虽然设计简单,但却是数字信号发生器实现多功能的关键电路,按键调节电路图如图所示。

4 软件设计

软件部分主要通过Keil编程实现,将程序下载到单片机中,从而实现控制功能。首先是四种波形的生成,通过AT89C51单片机控制DAC0808实现数字调压,产生对应的模拟量电压,即利用单片机并行口输出的数字量,就可以产生四种不同的波形。其次是通过不同按键的选择,可以实现4种波形的切换。其主程序流程图如图3所示,完整程序见附录。

5.1 软件调试

软件调试主要通过结合硬件电路,调试每一个模块的功能,使其能达到工作要求。首先通过Keil软件对程序进行编译调试,检查书写格式、标号未定义或多重定义的错误,检查完成后编译生成HEX文件,装入Proteus仿真软件的51单片机中,运行系统,观察系统运行情况。Keil软件调试完成后的界面如图4所示。

5.2 硬件调试

硬件调试件是在Protues软件中进行的,主要通过探针等工具,测量关键节点的电压,调节电路中一些元器件的参数,逐步排除故障,改善电路,从而完成电路的功能要求。其硬件调试过程图如图5所示。

在调试过程中,遇到问题如下:
问题1:电路中电源设置的问题。该系统电路需要±15V,+5V,接地等电源,而电源网络中只有+5V和接地,无法满足供电需要。
在查阅相关资料后,对供电网络进行了重新的配置。又在关键的电压节点处放置探针,以确保每一个节点处电源的供电正常。
问题2:仿真后示波器上无波形输出
在关联的电路节点上都放置探针,观察后发现输出端电压太小,无法产生波形。后将5K的电阻继续增大,达到升高电压的目的,后经调试后发现波形正常产生。

5.3仿真结果

经过对系统的仿真调试后,该系统可以稳定的输出四种波形,正弦波、方波、三角波、锯齿波,并且可以在不同波形之间的实现任意切换。四种波形图分别如图6、图7、图8、图9所示。

6 结论

本次设计的信号发生器可以实现正弦波、方波、三角波及锯齿波 4种波形的生成。根据该系统设计的电路在Proteus中画出仿真图,并将Keil编程生成的HEX文件下载到仿真图的单片机里,实现了整个系统的仿真。并用虚拟示波器观察各种波形,经过Proteus软件仿真发现波形清晰干扰小,测试频率。最终发现,设计符合要求。但是该设计仍然存在一些问题,如频率范围较小等缺点,希望后期可以采用位数较高的单片机实现频率范围较广和精度更高的信号发生器。该设计生成电路简单,设计灵活,可扩展性强,成本低,在较多的场合具有一定的实用价值。

相关单片机程序和仿真工程文件下载

7参考文献

[1] 周润景等编. PROTEUS原理图仿真与PCB设计实例精解[M]. 北京:电子工业出版社,2016.1
[2] 基于Proteus仿真的51单片机的运用[M]. 北京:北京理工大学出版社,2018.2
[3] 侯建军. 数字电路实验一体化教程[M]. 北京:清华大学出版社,北京交通大学出版社,2005.
[4] 张婷.基于单片机的信号发生器设计[J].山西电子技术,2018年第五期

基于单片机的信号发生器设计相关推荐

  1. 单片机多功能电子琴课设_基于单片机的电子琴设计(最终版)最新版

    <基于单片机的电子琴设计.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的电子琴设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里 ...

  2. c语言压力变送器程序设计,基于单片机的压力变送器设计

    基于单片机的压力变送器设计(任务书,开题报告,外文翻译,论文15000字,代码) 摘要 随着工业化水平的不断提高,新型智能仪表在工业生产过程中运用也越来越广泛,同时对输出数据的准确检测和处理也变得至关 ...

  3. 基于单片机的血压计设计

    设计简介: 本设计家用便携式血压计的设计以血压为研究对象, 根据血压检测控制模块将检测的模拟量输入ADC0832控制模块中, ADC0832将模拟量输入转化成数字量, 最终以STC89C52单片机为主 ...

  4. 【毕业设计】基于单片机的MP3设计与实现 - stm32

    文章目录 1 简介 2 主要器件 3 实现效果 4 设计原理 核心算法:音频解码流程 5 部分实现代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于单片 ...

  5. 基于单片机的倒车雷达系统设计c语言,基于单片机的倒车雷达设计.doc

    基于单片机的倒车雷达设计 毕业设计(论文) 题 目: 基于单片机的倒车雷达设计 系(院): 工业与信息化学院 专业: 电气自动化技术 姓 名: 学号: 校内指导教师: 职称: 讲 师 摘 要 随着社会 ...

  6. 基于 MATLAB 的信号发生器设计

    基于 MATLAB 的信号发生器设计 虚拟仪器能充分利用现有计算机资源,通过配以独特设计的软硬件,实现普通仪器的全部功能以及一些在普通仪器上无法实现的功能的软件或程序.本设计的主要内容就是基于 MAT ...

  7. 基于 FPGA Vivado 信号发生器设计(附源工程)

    今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说, ...

  8. 【毕设】基于单片机的开关电源设计(源码+电路图+全套资料+说明文档)

    主要内容 本内容是基于单片机的开关电源设计 包含: 1 设计源码 2 电路图 3 配套程序 4 全套说明资料 (私聊获取资料) 方案分析 选用STM32F407单片机作为控制芯片,前段整流部分使用直流 ...

  9. android 计步器毕设论文,基于单片机的计步器设计及实现毕业设计论文

    <基于单片机的计步器设计及实现毕业设计论文.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的计步器设计及实现毕业设计论文>相关文档资源请在帮帮文库(www.woc8 ...

最新文章

  1. 升级到asp.net core 3.1遇到的json异常
  2. corpora for america English
  3. 学习开发语言 python 资料
  4. Program terminated with signal SIGSEGV, Segmentation fault.
  5. 写好一份数据分析报告的13个要点
  6. 用 Python脚本实现数据库数据恢复
  7. ecshop flow.php goods_number,修复ECSHOP一重要BUG,当商品设置数量优惠时,加入不同属性的商品数量优惠判断错误...
  8. Linux下抓包工具tcpdump以及分析包的工具wireshark
  9. webpack常用知识点
  10. 怎么把照片做成消消乐_开心消消乐特效怎么制作 制造的几种方式分享
  11. 数据推荐系统系列 8种方法之一 CosSim余弦相识性方式
  12. Python Ubuntu 获取进程信息
  13. 中控指纹考勤机软件登录用户名和密码忘记的解决办法
  14. 安全测试-渗透性测试
  15. PD快速充电协议(转)
  16. django中查询的select_related方法和prefetch_related方法
  17. PTA:运算符重载(最简分数,c++)
  18. 石油石化物资采购杂志石油石化物资采购杂志社石油石化物资采购编辑部2022年第16期目录
  19. 任职母校!C9,迎来新副校长!
  20. eICIC和FeICIC

热门文章

  1. r语言rank降序_常见排序分析方法及R语言实现
  2. CUDA加速计算的基础C/C++
  3. 致童年,那些年我们逝去的岁月
  4. 如何爬取微信公众号的所有文章
  5. java宠物之王-龙灵传说_宠物之王龙灵传说闯关秘籍
  6. 【重识云原生】第一章——不谋全局不足以谋一域
  7. 概念模型(conceptualDataModel)
  8. oracle注册服务到监听,监听程序未启动或数据库服务未注册到该监听程序解决方法-Oracle...
  9. 中国石油大学《催化原理》第三阶段在线作业
  10. 计算机视觉课程设计:基于SSD、Dlib多进程目标检测的对比研究