51单片机-波形发生器.doc

上传人:b****1 文档编号:173782 上传时间:2022-10-05 格式:DOC 页数:16 大小:2.29MB
下载 相关 举报
51单片机-波形发生器.doc_第1页
第1页 / 共16页
51单片机-波形发生器.doc_第2页
第2页 / 共16页
51单片机-波形发生器.doc_第3页
第3页 / 共16页
51单片机-波形发生器.doc_第4页
第4页 / 共16页
51单片机-波形发生器.doc_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

51单片机-波形发生器.doc

《51单片机-波形发生器.doc》由会员分享,可在线阅读,更多相关《51单片机-波形发生器.doc(16页珍藏版)》请在冰豆网上搜索。

51单片机-波形发生器.doc

实用文档

单片机课程设计报告

题目波形发生器

专业电子信息科学与技术

班级2008级1班

学生姓名*****

学号3080422***

指导老师*****

2011年7月8日

目录

一、设计目的……………………………………………………-2-

二、设计的主要内容和要求……………………………………-2-

2.1基本内容和要求…………………………………………………………-2-

2.2创新部分…………………………………………………………………-2-

三、整体设计思路………………………………………………-2-

3.1设计思路…………………………………………………………………-2-

3.2元件选型…………………………………………………………………-3-

3.3功能原理图………………………………………………………………-3-

四、方案论证……………………………………………………-3-

五、硬件电路设计………………………………………………-4-

5.1硬件连线图 ………………………………………………………………-4-

5.2主要芯片介绍……………………………………………………………-6-

六、软件设计………………………………………………………-8-

6.1正弦波的产生过程………………………………………………………-9-

6.2方波产生过程……………………………………………………………-9-

6.3锯齿波的产生过程……………………………………………………-9-

6.4三角波的产生过程……………………………………………………-9-

6.5通过开关实现波形切换和调频…………………………………………-9-

6.7附程序代码………………………………………………………………-10-

七、调试与仿真 ……………………………………………………-12-

八、总结……………………………………………………………-13-

九、参考文献……………………………………………………-14-

波形发生器

一、设计目的

(1)利用所学单片机机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。

(2)我们这次的课程设计是以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、方波、梯形波等)且频率、幅度可变的波形发生器。

(3)掌握各个接口芯片(如0832等)的功能特性及接口方法,并能运用其实现一个简单的单片机应用系统功能器件。

(4)在平时的学习中,我们所学的知识大都是课本上的,在机房的练习大家也都是分散的对各个章节的内容进行练习。

因此,缺乏一种系统的设计锻炼。

在课程所学结束以后,这样的课程设计十分有助于学生的知识系统的总结到一起。

(5)通过这几个波形进行组合形成了一个波形发生器,使得我对系统的整个框架的设计有了一个很好的锻炼。

这不仅有助于大家找到自己感兴趣的题目,更可以锻炼大家单片机知识的应用。

二、设计的主要内容和要求

1.1基本内容和要求

(1)设计一款能够产生3种波形的波形发生器;

(2)设计波形选择按钮;

(3)LED或LCD显示波形代号(如:

1为正弦波,2为方波,3为锯齿波,4为三角波);

(4)其他功能(创新部分)。

1.2创新部分

(1)波形频率调节;

(2)波形幅值调节;

(3)方波占空比调节;

(4)滤波。

三、整体设计思路

3.1设计思路

1、课设需要各个波形的基本输出。

如输出正弦波、方波、锯齿波、三角波。

这些波形的实现的具体步骤:

(1)正弦波:

通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。

当需要时,只要按照顺序进行输出即可。

这种方法比在软件中计算速度快且曲线的形状修改灵活。

在本设计中将一个周期(360度)分为256个点,则每两个点之间的间隔为1.4度,然后计算出每个点电压对应的数字量,形成数组。

只要反复输出这组数据到DAC0832,就可以在系统输出端得到想要的正弦波。

(2)方波:

按照设定的周期值将输出的电压改变即可。

(3)锯齿波:

也使用查表法。

将三角波的一个周期(360度)分为256个点,相邻点等差,生成数组。

反复输出前128个数据到DAC0832,就可以在系统输出端得到想要的锯齿波。

(4)三角波:

将(3)中的数组256个数据全部输出到DAC0832,循环,就可以在系统输出端得到想要的三角波。

2、通过P1口和轻触开关S1-S4相连接来切换波形输出(如按S1键输出正弦波,按S2键产生方波,按S3键产生锯齿波,按S4键产生三角波)。

用P0口控制数码管静态显示波形代号。

用P2口向DAC0832发送数据,经DAC0832转换后,再把信号放大,最后接到示波器上显示。

3.2元件选型

单片机AT89S52系统,DAC0832一片,PC机一台,运算放大器。

3.3功能原理图

波形输出

P1

P2

P0

AT89S52

键盘控制

数码管显示

DAC0832

运放

图1

四、方案论证

波形发生器的实现方法通常有以下几种:

方案1:

用分立元件组成的波形发生器:

通常是单函数发生器且频率不高,其工作不很稳定,不易调试。

方案2:

可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。

早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。

方案3:

利用专用直接数字合成DDS芯片的波形发生器:

能产生任意波形并达到很高的频率。

但成本较高。

方案4:

采用AT89S52单片机和DAC0832芯片,直接连接键盘和显示。

该种方案主要对AT89S52单片机的各个I/O口充分利用。

P1口是连接键盘,P0口接显示电路,P2口连接DAC0832输出波形。

这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片,从而减小了系统的成本。

也对按照系统便携式低频信号发生器的要求所完成。

占用空间小,使用芯片少,低功耗。

综合考虑,方案4各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案4。

五、硬件电路设计

5.1电路连线图

通过P1.0-P1.3口和轻触开关S1-S4相连接来切换波形输出(如按S1键输出正弦波,按S2键产生方波,按S3键产生锯齿波,按S4键产生三角波),P1.4、P1.5接方波占空比调节开关,P1.6、P1.7接波形频率调节开关,如图2所示。

用P0口控制数码管静态显示波形代号,如图3所示。

用P2口向DAC0832发送数据,经DAC0832转换后,再把信号放大,最后接到示波器上显示如图4所示。

图2按键电路图3显示电路

图4DAC0832连接图和幅值调节电路

图5总电路图

图6滤波电路图

注:

波形的幅值调节,使用硬件方法实现,如图4中DAC0832的VREF口接一滑动变阻器,通过改变DA转换的参考电压来实现波形幅值的改变。

5.2主要芯片介绍

(1)51单片机的内部结构

基本组成部分:

1一个8位的CPU

2128B或256B单元内数据存储器(RAM)

34KB或8KB片内程序存储器(ROM或EPROM)

44个8位并行I/O接口P0~P3。

5两个定时/计数器。

65个中断源的中断管理控制系统。

7一个全双工串行I/O口UART(通用异步接收、发送器)

8一个片内振荡器和时钟产生电路。

图751单片机引脚

管脚说明:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

 /PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

 /EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

(2)DAC0832芯片

DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器。

DAC0832输出的是电流,一般要求输出是电压,所以还必

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1