单片机课程设计——波形发生器

上传人:第*** 文档编号:55655577 上传时间:2018-10-03 格式:DOC 页数:23 大小:1.14MB
返回 下载 相关 举报
单片机课程设计——波形发生器_第1页
第1页 / 共23页
单片机课程设计——波形发生器_第2页
第2页 / 共23页
单片机课程设计——波形发生器_第3页
第3页 / 共23页
单片机课程设计——波形发生器_第4页
第4页 / 共23页
单片机课程设计——波形发生器_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机课程设计——波形发生器》由会员分享,可在线阅读,更多相关《单片机课程设计——波形发生器(23页珍藏版)》请在金锄头文库上搜索。

1、1单片机课程设计报告烟台大学烟台大学题 目 波形发生器 专 业 机械设计制造及其自动化班 级 机 1014 学生姓名 同组人员 学 号 指导老师:姜风国机电汽车工程学院2013 年 6 月 6 日目录目录一、设计目的1 二、设计的主要内容和要求1 1.1 基本内容和要求1 三、整体设计思路1 3.1 设计思路1 3.2 元件选型2 3.3 功能原理图2 四、方案论证2 五、硬件电路设计3 5.1 电路连线图.3 5.2 主要芯片介绍4 六、软件设计7 6.1 正弦波的产生过程7 6.2 锯齿波的产生过程7 6.3 三角波的产生过程7 6.4 通过开关实现波形切换和调频7 七、调试与仿真7 6.

2、1 正弦波的仿真结果7 6.2 锯齿波的仿真结果8 6.3 三角波的仿真结果8 八、总结9 九、参考文献9 附录10 附录一:硬件图10 附录二:流程图11 附录三:程序清单121波形发生器波形发生器一、设计目的一、设计目的(1)利用所学单片机机的理论知识进行软硬件整体设计,锻炼学生理论联系 实际、提高我们的综合应用能力。(2)我们这次的课程设计是以单片机为基础,设计并开发能输出多种波形 (正弦波、三角波、锯齿波等)且频率、幅度可变的波形发生器。(3)掌握各个接口芯片(如 0832 等)的功能特性及接口方法,并能运用其实现 一个简单的单片机应用系统功能器件。(4)在平时的学习中,我们所学的知识

3、大都是课本上的,在机房的练习大家 也都是分散的对各个章节的内容进行练习。因此,缺乏一种系统的设计锻炼。在课 程所学结束以后,这样的课程设计十分有助于学生的知识系统的总结到一起。(5)通过这几个波形进行组合形成了一个波形发生器,使得我对系统的整个 框架的设计有了一个很好的锻炼。这不仅有助于大家找到自己感兴趣的题目,更可 以锻炼大家单片机知识的应用。二、设计的主要内容和要求二、设计的主要内容和要求1.1 基本内容和要求基本内容和要求(1)设计一款能够产生 3 种波形的波形发生器; (2)设计波形选择按钮; (3)LED 或 LCD 显示波形代号; (4)其他功能(创新部分) 。 (5)波形频率调节

4、; (6)波形幅值调节;三、整体设计思路三、整体设计思路3.1 设计思路设计思路1、课设需要各个波形的基本输出。如输出正弦波、锯齿波、三角波。这些波形的实现的具体步骤:(1)正弦波:通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。当需要时,只要按照顺序进行输出即可。这种方法比在软件中计算速度快且曲线的形状修改灵活。在本设计中将一个周期(360 度)分为 256 个点,则每两个点之间的间隔为 1.4 度,然后计算出每个点电压对应的数字量,形成数组。只要反复输出这组数据到 DAC0832,就可以在系统输出端得到想要的正弦波。(2)锯齿波:也使用查表法。将三角波的一个周期(3

5、60 度)分为 256 个点,相邻点等差,生成数组。反复输出前 128 个数据到 DAC0832,就可以在系统输出端得到想要的锯齿波。(3)三角波:将(3)中的数组 256 个数据全部输出到 DAC0832,循环,就可以在系统输出端得到想要的三角波。2、通过 P1 口和轻触开关 S1-S4 相连接来切换波形输出(如按 S1 键输出正弦波,按 S2 键产生方波,按 S3 键产生锯齿波,按 S4 键产生三角波) 。用 P0 口控制数码管静态显示波形代号。用 P2 口向 DAC0832 发送数据,经 DAC0832 转换后,再把信号放大,最后接到示波器上显示。3.2 元件选型元件选型单片机 AT89

6、C51 系统,DAC0832 一片,PC 机一台,运算放大器。3.3 功能原理图功能原理图P0P1 P2 四、方案论证四、方案论证任务要求实现波发生器产生正弦波、锯齿波、三角波,由于正弦波的存在,采AT89C51DAC0832LCD 1602运 放按键P3用单片机直接运算是不合理的,故采取按时将存储的数字量送出的方法实现;为简 化编程,锯齿波与三角波也采取按时送数字量的方式实现。 将一个周期分为 256 份,幅值 0 至 255,取数据后分别存入数组。 利用定时器中断函数实现数据按时送出,改变定时器的初值设置即可改变频率。送出的数据由指针循环指向相应数组的值,改变指针的地址,指向不同的数组 首

7、地址即可改变波形。 幅值的改变由 DAC 的参考电压和反馈电阻改变。采用 AT89C51 单片机和 DAC0832 芯片,直接连接键盘和显示。该种方案主要对 AT89C51 单片机的各个 I/O 口充分利用。 P3 口是连接键盘, P2 口接显示电路,P0 口连接 DAC0832 输出波形。这样总体来说,能对单片机各个接口都利用上,而不在 多用其它芯片,从而减小了系统的成本。也对按照系统便携式低频信号发生器的要 求所完成。占用空间小,使用芯片少,低功耗。五、硬件电路设计五、硬件电路设计5.1 电路连线图电路连线图通过 P1.0-P1.5 口和轻触开关相连接来切换波形输出(如按 S1 键输出锯齿

8、波, 按 S2 键产生三角波,按 S3 键产生正弦波) ,P1.4、P1.5 接波形频率调节开关,如 图所示。用 P0 口控制数码管静态显示波形代号,如图所示。用 P0 口向 DAC0832 发 送数据,经 DAC0832 转换后,再把信号放大,最后接到示波器上显示如图所示。图 1 总电路图5.2 主要芯片介绍主要芯片介绍(1)51 单片机的内部结构 基本组成部分: 1 一个 8 位的 CPU 2 128B 或 256B 单元内数据存储器(RAM) 3 4KB 或 8KB 片内程序存储器(ROM 或 EPROM) 4 4 个 8 位并行 I/O 接口 P0P3。 5 两个定时/计数器。 6 5

9、 个中断源的中断管理控制系统。 7 一个全双工串行 I/O 口 UART(通用异步接收、发送器) 8 一个片内振荡器和时钟产生电路。图 7 51 单片机引脚 管脚说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器, 它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/

10、O 口,P1 口缓冲器能接收 输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外 部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验 时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输 出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输 入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上 拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位

11、。在给出地址“1”时,它利用内部上拉优势,当对外部八 位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入, 由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平 时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地 位

12、字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的 频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出 的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一 个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在 外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次

13、有效的/PSEN 信号将 不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH), 不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 (2)DAC0832 芯片 DAC0832 是采样频率为八位的 D/A 转换芯片,集成电路内有两级输入寄存器。DAC0832 输出的是电流,一般要求输出是电压,所以还必须经

14、过一个外接的运算放大器转换成电压。DAC0832 芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路 D/A 异步输入、同步转换等)。所以这个芯片的应用很广泛,关于DAC0832 的引脚功能如下:D0D7:数字信号输入端。ILE:输入寄存器允许,高电平有效。CS:片选信号,低电平有效。WR1:写信号 1,低电平有效。XFER:传送控制信号,低电平有效。WR2:写信号 2,低电平有效。IOUT1、IOUT2:DAC 电流输出端。RfB:是集成在片内的外接运放的反馈电阻。 VREF:基准电压(-1010V) 。VCC:是源电压(+5+15V) 。GND:地。- 7VREF

15、8GND3VCC20CS1WR12DI34DI25DI16D107RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U1DAC0832图 8 DAC0832 芯片图(3)1602 液晶显示器引脚功能如下: 第 1 脚:VSS 为电源地 第 2 脚:VDD 接 5V 电源正极 第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度) 。 第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低

16、电平 0 时选择指令寄存器。 第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第 6 脚:E(或 EN)端为使能(enable)端。 第 714 脚:D0D7 为 8 位双向数据端。 第 1516 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。(4)DAC0832 说明:DAC0832 选用直通方式,所以 CS,XFER,WR1 和 WR2 接地;D0D7 是数据量数据输入线,接收 P0 口输出的数据;VREF 接基准电压,其中串接一个滑动电阻器,通过改变阻值,从而改变电压,达到改变幅值的目的;芯片内已有反馈电阻,所以 RFB 接到运算放大器输出端;GND 接地;VCC 接工作电源;IOUT1 和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号