基于AT89C51单片机的数字式简易低频信号发生器.doc

基于AT89C51单片机的数字式简易低频信号发生器.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AT89C51单片机的数字式简易低频信号发生器

电子设计应用软件训练总结报告 任务说明: 本次课设的任务是基于AT89C51单片机的数字式简易低频信号发生器的设计,要求实现用程序产生方波、正弦波、锯齿波、阶梯波四种信号,并可以键控切换,而且需在Proteus电子设计平台上对设计方案进行仿真。本次设计采用 了AT89C51 单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)来实现模数转换,从而输出正确的波形,设计中还连接了按键电路来实现键控。波形的频率为200Hz,用调整延时来实现。设计简单,性能良好,具有一定实用性。 二、原理图绘制说明 1、原理图绘制过程说明 (1)运行proteus7.5,进入绘图页面。 图1 proteus绘图页面 (2)查找元器件,按动键盘按键P,进入Pick Devices页面,在关键字项中输入元件名称。如查找AT89C51。 图2 查找元件 (3)放置元器件并连线。 2、原理图说明 (1)单片机晶振电路 对于MCS-51一般的晶振可以在1.2MHZ-12MHZ之间选择,这时电容C1、C2可以选择在10pf-30pf之间。在本设计中,电容选择25pf,晶振选择12MHZ。电路如下图: 图3 单片机晶振电路原理图 (2)单片机复位电路 复位时单片机的初始化工作,复位后中央处理器CPU和单片机内部的其他功能部件都处在一定的初始状态,从这个状态开始工作。电路如下图: 图4 单片机复位电路原理图 (3)总线电路 本设计中,将P0并行口作为波形数据输出口,通过数据总线与DAC0832的D0-D7连接。P2.7与0832的片选端/CS连接,使用时可由地址译码提供。P3.6与0832的2管脚外部数据存储器写选通相连。电路如下图: 图5 总线电路 (4)键控电路 本设计中的键控部分引入了外部中断0中断来实现对波形的切换,用按键与P3.2连接来实现。在该管脚上加上一10k的上拉电阻,用来提高输出电平,加大输出引脚的驱动能力。电路如下图: 图6 键控电路 (5)DAC0832电路 在本设计中,DAC0832选择了直接工作方式。0832中的电源电压VCC、输入寄存器的锁存信号端ILE、基准电压端VREF接高电平。模拟电路接地端、数字电路接地端GND、写信号2端/WR2、传递控制信号端/XFER接地。D/A输入电流1、2端与反馈信号输入线RFB连接运算放大器。这里的运算放大器选用了LM324型号。电源电压设置为-6~+5V。 电路图如下: 图7 DAC0832电路 三、流程图绘制以及说明: 单片机的内部数据只有0、1之分,所产生的信号也都是离散信号。为了让单片机输出所需的数字信号,采用对信号采样、量化的方法来实现由单片机产生所需信号。 (1)主函数 主函数调用了各个子程序的初始化,通过对按键次数的判断来实现不同的功能,输入波形。数值为0、1、2、3时分别输出方波、正弦波、阶梯波、锯齿波。 图8 主函数流程图 (2)按键计数函数流程图 在按键计数函数中,对key进行循环加1的操作,每按一次,数值加1。数值加到3时,再按动按键,数值跳回1。 图9 按键计数函数流程图 (3)波形子程序调用函数 在设计中,对正弦信号进行采样,通过查表来实现输出不同的幅度值。对于方波,赋予初值FFH,延时一段时间后,赋值00H,再延时一段时间后,输出FFH,以此循环。在实现阶梯波时,通过查表和延时来实现。锯齿波则是通过256个采样点赋值依次减1得以实现。为满足设计要求中输入频率为200hz这一要求,在程序中在对波形各个采样点赋值之外,还设计了相应的延时。波形子程序的调用就是对这两项进行调用。四种波形的流程图如下。 图10 方波子程序调用流程图 图11 正弦波子函数调用流程图 图12 阶梯波子程序调用 图13 锯齿波子函数调用流程图 四、Proteus仿真说明: 连接好原理图后,双击AT89C51芯片,将后缀为.hex的文件添加到单片机中,点击运行。 图14 添加程序 正确运行后,示波器中显示正弦波。频率约为200hz。波形如下 图15 方波波形 按动按键一下,波形转变成正弦波。皮率约为200hz。波形如下 图16 正弦波波形 再按动一次按键,波形转换成阶梯波。频率约为200hz。波形如下 图17 阶梯波波形 再按动一次按键,波形转变成锯齿波。频率为200hz。波形如下 图18 锯齿波波形 再按动一次按键,波形回到最初显示的方波。 五、体会及合理化建议 通过这次的课设,我熟悉了基于AT89C51单片机的数字式简易低频信号发生器的设计,学会了如何利用数模转换器DAC0832来实现波形,和通过按键控制切换波形。 在这次课程设计的过程中遇到了一些难题,比如键控部分。起初的构想是用P1口来控制按键,

文档评论(0)

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

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

1亿VIP精品文档

相关文档