当前位置:文档之家› 方波发生器

方波发生器

Hyu 组别:25 项目:方波发生器电信学院专业实训报告题目:方波发生器的设计与实现学生姓名:学号:院部:专业班级:指导教师:方波发生器摘要:本次课程设计以AT89S52单片机为核心器件,外围采用按键作为控制和数码管作为显示器所设计的方波发生器。

该方波发生器能实现0-1kHz频率范围、占空比可调的方波输出。

,通过对单片机编程,实现方波发生器,方波周期200ms;方波占空比在1%~99%三挡可用,一档步进10%,二挡步进5%,三挡步进%1,方波占空比可直观显示。

频率也使用按键来进行调节,不同的频率及占空比可以使用不同的按键来实现,而以键盘扫描来实现各键的不同功能;显示部分可以使用ZLG7290芯片及数码管来实现。

由此即可构成一个最小单片机应用系统。

方波发生器的软件设计包括主程序、延时子程序、系统初始化程序、显示子程序、键盘扫描程序、定时器中断子程序。

其中主程序用来控制整个程序的执行,它与各子程序紧密相联,共同实现方波发生器各种功能的执行。

关键词:电路,控制,单片机目录目录 .................................................................................................................................. I V 1引言 (1)1.1选题背景及历史 (1)1.1.1课题背景 (1)1.2研究目的 (1)1.3论文主要结构及安排 (1)1.4本章小结 (1)正文 (2)2.1 总体设计要求 (2)2.2 总体设计方案 (2)2.2.1设计思想 (2)2.3.1控制电路设计 (2)2.3.2 显示电路设计 (2)2.4 组员任务分配和元件清单 (3)2.4.1 组员及其任务分配 (3)2.4.2 元件清单 (3)2.5本章小结 (4)3硬件系统设计 (5)3.1 AT89S52单片机概述 (5)3.2各部分电路原理 (6)3.2.1电源电路 (6)3.2.2 复位电路 (6)3.2.3 显示电路 (6)3.2.5发光二极管 (6)4软件系统设计 (7)4.1KEIL编程环境 (7)4.2理论基础知识 (7)4.2.1定时器原理 (7)4.2.2软件延时原理 (8)4.2.3中断原理 (8)4.3系统设计总体流程图 (9)4.4系统模块源程序及其流程图 (9)4.4.1程序宏定义 (9)5系统仿真及调试 (18)5.1硬件调试 (18)5.1.1静态调试 (18)5.1.2动态调试 (18)5.2软件仿真 (18)5.3实际调试 (19)6 问题发现与解决 (20)结论 (21)致谢 (22)参考文献 (23)附录Ⅰ (24)方波发生器1引言1.1选题背景及历史1.1.1课题背景在电子技术领域中,实现方波发生器的方法有很多种,可以采用不同的原理及器件构成不同的电路,但可以实现相同的功能。

在此次设计中,有些地方与课题原本的具体要求有点不同。

如实现频率调节时,不是按要求利用调整变阻器的阻值来完成的,而是用按键来实现的。

1.2研究目的利用单片机AT89S52,通过对器编程,实现方波发生器。

方波周期200ms,方波占空比在1%~99%三档可调,一档步进10%,二挡步进5%,三档步进1%,方波占空比可以直观显示。

1.3论文主要结构及安排本文通过目的的确定开始,在硬件部分,根据设计要求选择所需的元器件。

软件部分,首先根据整体设计思路编译出整体程序的大框架,再编译子程序模块放入主程序中。

在调试及仿真阶段,硬件部分主要对其进行调试和检查,防止硬件损坏造成的调试失败。

软件部分主要对其编写的程序的可行性及合理性进行仿真检查。

最后,将程序烧录至电路板上进行实际的调试,判断是否符合预期结果。

1.4本章小结本章主要阐述了选题目的以及论文的结构安排,明白了方波发生器在人类社会生活中的重要性,以及方波发生器设计的实际意义。

与此同时阐述了文章的整体结构及安排,说明了文章的整体布局。

正文2.1 总体设计要求利用单片机AT89S52,通过对器编程,实现方波发生器。

方波周期200ms,方波占空比在1%~99%三档可调,一档步进10%,二挡步进5%,三档步进1%,方波占空比可以直观显示。

2.2 总体设计方案本课程设计是设计一个方波发生器,用4位数码管显示方波的频率。

用两位数码管显示占空比。

2.2.1设计思想方波发生器的软件设计包括主程序、延时子程序、系统初始化程序、显示子程序、键盘扫描程序、定时器中断子程序。

其中主程序用来控制整个程序的执行,它与各子程序紧密相联,共同实现方波发生器各种功能的执行。

2.3 各功能模块方案选择2.3.1控制电路设计想要实现项目要求中的占空比和周期可调,必须独立设置两个按键,一个占空比,一个周期。

两个共用键确定加或减,加三个档位,1%,5%,10%,共计六个按键,分别接在P1.2~P1.7 I/o口,一端接地。

控制电路中又分为单片机最小系统-复位路,晶振电路。

其中,复位电路由10uf电容,200Ω,8.2kΩ电阻,按键组成,接在第9引脚,晶振电路由30pf。

晶振片组成,接在18、19引脚,一端接地。

2.3.2 显示电路设计占空比,周期可直观显示采用4位一体和2位一体的7段数码管,仿真图中直接将com端接在P3.0~P3.7,共计6个com端,数据端a-g、dp,分别接在P0.0~P0.7和P2.0~P2.7,中间接300Ω电阻。

P3.5接示波器。

2.4 组员任务分配和元件清单2.4.1 组员及其任务分配2.4.2 元件清单2.5本章小结本章阐述了在设计中整体方案的设计中对不同种方案的选择和论证,在整体方案确认以后对子程序模块的方案设计,与此同时对各个模块中可能会使用的方法和设计理念做出了部分介绍。

还介绍了小组成员的分工和这次实训的元件清单。

清楚的列出了需要的元件和每个人的任务,清楚的分工合作才有高效的工作任务。

与此同时阐述了文章的整体结构及安排,说明了文章的整体布局。

3硬件系统设计3.1 AT89S52单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

本设计选用了市面上较为常见的AT89S52单片机,AT89S52 是一种低电压、高性能CMOS8位微控制器,具有 8K bytes在系统可编程Flash 存储器(RAM)。

使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32位I/O口线,三个16位定时器/计数器,2个全双工串行通信口,2个读写口线。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器 8K 字节在系统可编程 Flash。

AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM)32个外部双向输入/输出(I/O)口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线可以按照常规方法编程,也可以在线编程。

此外, AT89S52设计和配置了低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。

单片机总控制电路如下图3-1:图3-1 单片机总控制电路3.2各部分电路原理3.2.1电源电路单片机工作时需要的+5V电压,本设计采用普通的电源接口,通过5V的电源适配器供电。

电源部分还连接开关和发光二极管,用于判断电源是否正常工作。

需要注意的是,滤波电容对于电路设计非常重要,不加滤波电容会导致系统不稳定。

3.2.2 复位电路AT89S52的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开始执行,在AT89S52的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位操作。

只要RST保持高电平,则单片机循环复位。

只有当RST有高电平变为低电平以后,单片机才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。

3.2.3 显示电路占空比,周期可直观显示采用4位一体和2位一体的7段数码管,仿真图中直接将com端接在P3.0~P3.7,共计6个com端,数据端a-g、dp,分别接在P0.0~P0.7和P2.0~P2.7,中间接300Ω电阻。

P3.5接示波器。

3.2.5发光二极管该系统用2个发光二极管电路原理示意图见图图3-2 电路原理示意图4软件系统设计4.1KEIL编程环境近年来,单片机开发技术不断发展,从普遍使用汇编语言到逐渐使用高级语言,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51 系列单片机程序的软件。

Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分连在一起。

因此该系统的软件部分在Keil 环境下进行程序的编程。

4.2理论基础知识4.2.1定时器原理定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH 和TL中的。

它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。

因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M为计数器模值。

计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。

计算通式变为:T=(M-TC)T0模值和计数器工作方式有关。

在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。

就此可以算出各种方式的最大延时。

如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。

这就是为什么扫描周期为50ms的原因,若使用软件则会耽搁程序流程,显然不可行。

相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。

相关主题