基于51单片机控制的函数波形发生器word档p内容摘要:

计是基于 Keil C和 Proteus软件联合调试实现的。 首先在 Keil C 软件环境下写入源程序然后建立工程文件编译运行无误后使其生成相应的 .HEX 文件,接着在 Proteus 软件环境中将生成的 .HEX 文件加载进入 51单片机中 ,在电路连接无误的情况下进行调试运行即可 【 6】。 软件工具简介 Proteus 简介 英国 Labcenter 公司推出的 Proteus 软件是一款极好的单片机应用开发平台,它以其特有的 虚拟仿真技术很好地解决了单片机及其外围电路的设计和协同仿真问题 , 可以在没有单片机实际硬件的条件下,利用 PC以虚拟仿真方式实现单片机系统的软、硬件同步仿真调试,使单片机应用系统设计变得简单容易。 Proteus 软件涵盖了 PIC、 AVR、 MCS805 68HC1 ARM 等微处理器模型,以及多种常用电子元器件,包括 74系列、 CMOS 4000 系列集成电路、 A/D和 D/A 转换器、键盘、 LCD 显示器、 LED 显示器,还提供示波器、逻辑分析仪、通信终端、电压 /电流表、 I2C/SPI 终端等各种虚拟仪表,这些都可以直接用于仿真设计,极大地提高了设计效率和设计水平。 Proteus 软件已有 20多年的历史,在国外应用较为普遍,尤其在教育界的口碑极佳。 近年来 Proteus 软件被引入国内,在多所高等工科院校中得到成功应 9 用。 在单片机教学中采用 Proteus 软件,使单片机的学习过程变得直观形象,可以直接在基于原理图的虚拟模型上进行编程,并实 现源码级的程序仿真调试,如有显示及输出,还能看到程序运行后的输出效果,配合各种虚拟仪表来展现整个单片机系统的运行过程,很好地解决了长期以来困扰单片机教学过程中软件和硬件无法很好结合的难题。 采用 PC进行虚拟仿真实验要比采用单片机实验箱更为有效,因为用户可以根据需要随时对原理电路图进行修改,并立即获得仿真结果。 由于在 PC上修改原理电路图要比在实验箱上修改硬件电路容易得多,而且还可以根据设计要求采用不同元器件,或者修改元器件参数以获得不同输出结果,在成功进行虚拟仿真并获得期望结果的条件下,再制作实际硬件进行在线 调试,可以获得事半功倍的效果。 学生普遍反映,在 Proteus 软件平台上学习单片机知识,比以往单纯学习书本知识更易于接受,以原理图虚拟模型进行程序仿真调试,更易于提高单片机编程能力,还可以通过绘制和修改原理电路图增加很多实践经验。 Proteus 组合了高级原理布图、混合模式 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 模型 . Keil C 简介 Keil 软件是目前最流行开发 MCS51 系列单片机的软件, Keil 提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境( uVision)将这些部份组合在一起。 运行 Keil 10 软件需要 Pentium 或以上的 CPU, 16MB 或更多 RAM、 20M 以上空闲的硬盘空间、WIN9 NT、 WIN20 WINXP 等操作系统。 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C语言软件开发系统,与汇编相比, C 语言在 功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后再使用 C来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。 Keil C51 标准 C编译器为 8051 微控制器的软件开发提供了 C语言环境 ,同时保留了汇编代码高效 ,快速的特点。 C51 编译器的功能不断 增强 , 使你可以更加贴近 CPU 本身 ,及其它的衍生产品。 C51 已被完全集成到 uVision2 的集成开发环境中 ,这个集成开发环境包含:编译器 ,汇编器 ,实时操作系统 ,项目管理器 ,调试器。 uVision2 IDE 可为它们提供单一而灵活的开发环境。 软件设计结构图及程序流程图 软件设计结构图 软件 设计中,先确定设计 方案及 功能,然后在 Keil C 中编译程序,最后进行 Proteus 仿真。 如图 8所示。 图 8软件设计结构图 软件设计程序流程图 本文中 子程序的调用是通过按键 的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。 Keil C 编译行生成 .HEX 文件 Proteus仿真 电路 载入 编译运行 示波器输出 确定设计方案及功能 11 主程序的流程图如图 9 所示 ,在程序开始运行之后,首先是对单片机进行初始化,之后判断按键值,如符合所需的按键 ,则重置时间常数,并通过显示器显示出来,不符则 返回。 在中断结束后,还要来判断波形是否符合,如符合,则调用子程序 ,不符则返回,重新判断。 图 9 主程序流程图 图 10 为各波形子程序的流程图。 如图所示,在中断服务 子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是正弦波后,则转向对方波的判断,如此反复。 如果选择的是正弦 波,则用查表的方法求出相应的数据,并通过 D/A 转换器将数据转换成模拟信号,形成所需波形信号。 12 图 10 子程序的流程图 图 11为各波形 频率调节子程序 流程图。 图 12为 方波占空比 调节子程序 流程图。 图 11 波形频率调节子程序流程图 图 12 方波占空比调节子程序流程图 13 4 软硬件联调 软硬件输出结果对比 ( 1) 软硬件输出正弦波 对比 ,如图 13,图 14 所示。 图 13 软件正弦波输出 图 14 硬件 正弦波输出 ( 2)软硬件输出方波 对比 ,如图 15,图 16所示。 图 15 软件方波输出 图 16 硬件方波输出 ( 3)软硬件输出方波占空比增加,如图 17,图 18所示。 图 17 软件输出 方波占空比增加 14 图 18 硬件输出方波占空比增加 ( 4)软硬件输出方波 占空比减少,如图 19,图 20所示。 图 19 软件输出 方波占空比减少 图 20 硬件输出 方波占空比减少 ( 5) 软硬件输出锯齿波 对比 ,如图 21,图 22 所示。 图 21 软件输出锯齿波 图 22 硬 件输出锯齿波 ( 6)软硬件输出三角波对比,如图 23,图 24 所示。 图 23 软件输出三角波 15 图 24 硬件输出三角波 软 硬 件实现过程及结果分析 软件 设计过程中遇到问题颇多:首先对软件 Keil C 和 Proteus 不了解,以前没有接触过。 在查阅资料和请教老师后才解决了 软件安装问题。 接着在 Keil C软件中编译源程序,由于是初次在其中编程,不了解头文件的应用及程序编排格式,在运行程序时错误百出, 经过看书和同学讨论后才将程序编译无误。 再次,用 proteus 仿真时起初一些 元器件找不到,在查阅资料后才将电路图连接出来。 当再调试仿真时发现 51 芯片中未加载程序,在将 Keil C 环境下生成的 .HEX 文件 加载入 51芯片后仿真波形才出现。 硬件实现过程中遇到的主要问题是焊接问题。 由于焊接电路板采用的是万用板,因此在焊接时要自己电线搭建电路,这就为焊接带来麻烦。 焊接过程中出现了虚焊和错焊问题,导致输不出波形。 在经过检测和排查后,才将实物电路焊接完成。 软硬件输出结果由图 13 至图 24 对比分析可知:软件输出结果良好,硬件输出结果有一定失真,由此可见理论与实践是有差距的。 在实物 输出中,输出波形抖动且一定失真,其原因可能是电源输出电压不稳或者数模转换电路频率与晶振频率不匹配,也有可能是电路还存在虚焊。 结论 此次毕业设计基本实现了设计要求,产生了设计需要的正弦波,方波,三角波,且各波形频率幅度可调,并在此基础上多增加一种波形 —— 锯齿波,又增加一种功能 —— 方波占空比可调 和自制一个 9v电源。 美中不足的是实物输出波形时 无法消除抖动现象,分析其原因可能是自制电源输出电压不稳或数模转换时频率不匹配。 16 小结 回顾 此次 毕业 设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在 一两个月 的日子里, 可以说得是苦多于甜,但是学到很多的东西,同时不仅可以巩固以前所学过的知识,而且 还 学到了很多在书本上所没有学过的知识。 通过这次课程设计使我懂得了理论与实际相结合的 重要性 ,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。 在设计的过程中遇到问题,可以说得是困难重重,毕竟 是 第一次做 这么大的系统 ,难免会遇到过各种各样的问题,同时在设计的过程中。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。