毕业设计论文基于51单片机的音乐发生器设计_第1页
毕业设计论文基于51单片机的音乐发生器设计_第2页
毕业设计论文基于51单片机的音乐发生器设计_第3页
毕业设计论文基于51单片机的音乐发生器设计_第4页
毕业设计论文基于51单片机的音乐发生器设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文是应用MCS-51单片机原理和控制理论技术设计音乐发生器 的硬件电路,并利用C语言进行软件开发和程序设计。 通过控制单片 机内部的定时器产生不同频率的方波,驱动喇叭发出不同音调的音 乐,再利用延迟控制发音时间的长短。 把乐谱转化成相应的定时常数, 从而达到从发音设备中演奏出悦耳动听的音乐的效果。该音乐盒主要由按键电路、 复位电路、时钟电路以及蜂鸣器组成。 使用两个按键控制音乐盒, 一个用来切换歌曲, 另一个用来切换 8 路 LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。播放歌曲时,蜂鸣器发出某个音调,与之对应的 LED亮起。本设计利用 KEIL编程软件对音乐盒源程序进行编程并

2、调试,配合 PROTEU仿真 软件对硬件进行仿真调试,节约了设计时间。本系统采用C语言进行软件设计。正文中首先简单描述系统硬件 工作原理, 且附以系统硬件设计框图, 论述了本次毕业设计所应用的 各硬件接口技术和各个接口模块的功能及工作过程。 其次阐述了程序 的流程和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件 为基础,来进行各功能模块的编写。关键词单片机;音乐;C语言;STC89C51 KEIL; PROTEUSAbstractIn this paper, The music generator and its hardware circuit is designed by MCS-5

3、1 single-chip microcomputer principleandcontrol theory, and theSoftware development and programmingare based on C language programming. According to control the MCU internal timer to produce different frequency Square wave to drive the horn sounds of different tones of music, then use the delay to c

4、ontrol the length of time. The music Transformationed into the timing constants corresponding so that the sound equipment can play Melodious music.The music box is mainly composed of keypad circuit, reset circuit, clock circuit and a buzzer. Two buttons are used to control the music box, one to swit

5、ch songs, another is used to switch the 8 LED pattern, the music box has two songs, a total of 3 kinds of pattern light pattern. While the music is playing, the buzzer sounded a tone, and the corresponding LEDlights up. The design of programming the music box and debug source code using KEIL program

6、ming software, and to save the design time the PROTEUSsimulation software is used to simulate the hardware debugging.The system uses C language for software design. Firstly,in the text describes the working principle of the system hardware, and attached to the system block diagram of hardware design

7、 to discusse the function and working process of the graduation design and the application of the hardware interface technology and the interface module. Secondly,expound theprocedures and processes to achieve process. The main idea of this writing is a combination of software and hardware, on the b

8、ase of hardware, write to each function module.Key wordsSinglechip; music; C language; STC89C51; KEIL; PROTEUS目录错误!未定义书签1 概述 21.1 课题意义 21.2 国内外研究的现状及发展趋势 21.3 音乐发生器的扩展 31.3.1 设计方案 . 32 51 单片机介绍 32.1 Intel 51 系列单片机 32.1.1 MCS-51单片机简述 32.1.2 8051 与 80C51 的区别 42.1.3 8051 单片机的引脚功能 42.2 51 单片机内部结构 62.3 5

9、1 系列的特性 72.4 并行 I/O 口 72.4.1 P0 端口的结构及工作原理 72.4.2 P1 端口的结构及工作原理 92.4.3 P2 端口的结构及工作原理 102.4.4 P3 端口的结构及工作原理 . 112.5 驱动能力 123 系统总体方案介绍 123.1 系统组成框图 123.2 音乐发生器的功能结构图 123.3 主要设计软件介绍 13331 PROTEUS软件简介 133.3.2 KEIL 简介 134 硬件设计 144.1 总体设计框图 144.2 各部分硬件设计及其原理 154.2.1 STC89C51 简介 154.2.2 LED 显示电路设计与原理 164.2

10、.3 时钟振荡电路 164.3 硬件电路图及功能 175 软件设计 185.1 音调、节拍以及编码的确定方法 185.1.1 音调的确定 195.1.2 节拍的确定 205.1.3 编码 215.2 软件程序设计 225.2.1 程序流程图及相应代码块 235.2.2 程序源代码(见附录 A) . 276 调试 276.1 检查硬件连接 276.2 检查软件系统 276.3 仿真测试结果 276.3.1 总体运行图 286.3.2 花样灯 3 种花样图 287 总结 30致谢: 30参考文献: 3132附录 A: 32程序源代码:音乐电声的一个重要内容就是电子音乐。 电子琴的出现,开辟了 音乐

11、的一个新天地。但是自从电子合成器问世以来,电子音乐就又进 入了一个更高的阶段。目前,由于电子音乐的普及,电子合成器(合成器实际上是一台 声音的频率合成仪,可以制作各种声音,改变各种音色)可以解决相 当一部分的歌唱及舞厅的伴奏问题。可以事先制作伴奏音乐或背景音 乐,而不需要乐队,或者部分代替乐队。由于音乐合成器制作和修改 方便,成本低,音乐丰满,所以市场需求量很大,因此,世界许多国 家的厂商都不断地在发展并推出新的型号, 每年都要更新换代。当前 的发展趋势是不断的采用先进技术,以取得更多、更好的音色。如扩 展容量,这包括扩展槽口,增加软盘驱动器或硬盘,增加最大发音数 目,增大存贮量,扩展琴键等;

12、使功能多样化,如一台合成器可以同 时发二种、四种甚至八种音色,即一台当作几台使用,或者把鼓机的 节奏发生器功能、音序器的编辑功能放入合成器,让合成器代替计算 机的主机等;扩展功能,例如有的合成器有“跟随”功能,即经预置, 每一个音后可以跟随一个二度或三度音,“重叠”功能,轻奏或重奏时可以发不同音调或音色;另外,合成器还向轻便、使用操作方便等 方向发展。随着以法、德、意为代表的欧洲和以美国为代表的电子音乐、计 算机音乐早期的大力发展,国际上许多国家纷纷开始引入电子音乐研究与创作。因此,电子音乐创作作为音乐科技领域发展的重要标志,在风格上也体现出比以往任何时代都鲜明的个性化特征。电脑音乐也许不会成

13、为今后音乐的主流, 但它在整个人类音乐史 上的地位已经不容置疑地确立了,相信它会越来越深入地浸透到音乐 创作和欣赏的领域中,并且将在一定程度上影响人们对音乐的理解和 诠释。用单片机制作的音乐发生器也会越来越多, 这将必然成为一种 趋势。1 概述本设计是以STC89C51芯片的电路为基础,外部加上放音设备,以此来实现 音乐演奏控制器的硬件电路,通过软件程序控制单片机内部的定时器 , 把乐谱转 化成相应的定时常数, 使其演奏出优美动听的音乐。 用户可以按照自己的喜好选 择音乐并将其转化成机器码存入单片机的存储器中。 对于不同型号的单片机只需 要改变相应的地址即可实现功能。 本系统的软件编程和硬件系

14、统设计具有很好的 通用性,具有一定的实际使用价值, 为广大的音乐爱好者提供了利用单片机实现 音乐播放和设计方法和思路提供了较好的借鉴。1.1 课题意义音乐盒的起源, 可追溯至中世纪欧洲文艺复兴时期。 当时为使教会的钟塔报 时,而将大小的钟表装上机械装置,被称为“可发出声音的组钟” 。音乐盒有着 300 多年的发展历史,是人类文明发展的历史见证。传统的音乐盒多是机械音乐盒, 其工作原理是通过齿轮带动一个带有铁钉的 铁桶转动 , 铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。但是,机械式的 音乐盒体积比较大,比较笨重,且发音单调。水、灰尘等外在因素,容易使内部 金属发音条变形, 从而造成发音跑调。

15、 另外,机械音乐盒放音时为了让音色稳定 , 必须放平不能动摇,而且价格昂贵,不能实现大批量生产。本文设计的音乐盒, 是基于单片机设计制作的电子式音乐盒。 与传统的机械 式音乐盒相比更小巧, 音质更优美且能演奏和弦音乐。 电子式音乐盒动力来源是 电池,制作工艺简单,可进行批量生产,所以价格便宜。基于单片机制作的电子 式音乐盒,控制功能强大,可根据需要选歌,使用方便。根据存储容量的大小, 可以尽可能多的存储歌曲。 另外, 可以设计彩灯外观效果, 使音乐盒的功能更加 丰富。1.2 国内外研究的现状及发展趋势随着以法、德、意为代表的欧洲和以美国为代表的电子音乐、 计算机音乐早 期的大力发展, 国际上许

16、多国家纷纷开始引入电子音乐研究与创作。 因此,电子 音乐创作作为音乐科技领域发展的重要标志, 在风格上也体现出比以往任何时代 都鲜明的个性化特征。六十年代,美国物理学家 Robert Moog 研制出了小型实 用的电子合成器。 从此,首先在欧美地区, 合成器作为新型的乐器被音乐家尤其 是流行音乐家所采用并飞快的流行开来。 由于美国雄厚的经济和科技基础, 在早 期计算机音乐获得巨大成功后, 越来越多的音乐家和科学家步入到计算机音乐的 研究与开发的领域中来, 他们一起工作、 共同开展研究, 许多新产品和新设计不 断涌现。1.3 音乐发生器的扩展熟练的运用89C51单片机定时器产生固定频率的方波信号

17、,推动喇叭发出旋 律,按下单键可以演奏预先设置的歌曲旋律, 最重要的是自己还可以通过程序设 计输入自己喜欢的歌曲来演奏中, 本设计采用简易音阶编码直觉式输入法方便设 计音乐旋律,可以扩充其功能如下:1. 设计三个按键操作来更改歌曲的序号;2. 可以按照歌曲的序号来播放歌曲;3. 可以显示播放中歌曲的序号;4. 可以存储多首歌曲;1.3.1 设计方案设计一个基于STC89C51系列单片机的音乐盒,利用按键切换演奏出不同的 乐曲。蜂鸣器发出某个音调,与之相对应的 LED亮起。使用两个按键,一个用来 切换歌曲,另一个切换八路LED的变化花样。1 )电路有两种工作模式:演奏音乐模式和花样灯模式。演奏音

18、乐模式:演奏完整的一首的歌曲,八路 LED随着音乐变化。花样灯模式:八路LED变化出各种花样,蜂鸣器随着发出“嘀嘀”声2)按下按键 1 进入演奏音乐模式,再按切换歌曲,共两首歌曲。3)按下按键2进入花样灯模式,再按切换LED花样,共三种花样。此电路的程序只占用了 1K左右,可编制更多的音乐和LED花样,使系统的 功能更加强大。2 51 单片机介绍2.1 Intel 51 系列单片机2.1.1 MCS-51单片机简述MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片 机包括了好些品种,如 8031,8051,8751,8032,8052,8752 等,其中 8051 是最

19、早最典型的产品,该系列其它单片机都是在 8051 的基础上进行功能的增、 减、改变而来的,所以人们习惯于用 8051来称呼MCS5係列单片机,而8031 是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS5的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中 89C51 就 是这几年在我国非常流行的单片机,它是由美国ATMEI公司开发生产的。MCS-51系列单片机分为两大系列,即51子系列与52子系列。51子系列:基本型,根据片内 ROM勺配置,对应的芯片为8031、8051、8751

20、、 8951;52子系列:增强型,根据片内ROM勺配置,对应的芯片为8032、8052、8752、 8952。2.1.2 8051 与 80C51 的区别80C51 单片机是在 8051 的基础上发展起来的,也就是说在单片机的发展过 程中是先有8051,然后才有80C51的。8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信 号、总线等完全一致(完全兼容) ,也就是说在 8051 下开发的软件完全可以在 80C51 上应用,反过来,在 89C51 下开发的软件也可以在 8051 上应用。这两种 单片机是完全可移植的。8051 与80C51单片机的主要差别就在于芯片的制造工

21、艺上。80C51的制造工 艺是在 8051 基础上进行了改进。8051系列单片机采用的是HMO工艺:高速度、高密度;80C51系列单片机采用的是CHMO工艺:高速度、高密度、低功耗;也就是说 80C51 单片机是一种低功耗单片机。2.1.3 8051 单片机的引脚功能图中给出了 40引脚的 8051 单片机的引脚图, 40 个引脚按引脚功能大致可 分为 4 个种类:电源、时钟、控制和 I/O 引脚PL 0 EPl. 1 匸PL.E CFL 3 PX CPL 5 CPL b Pi i CJET/Vpl t KKD/F3 0 r TTO/F5 1 匚 nrro/K . 2 匚 rtJTi/K 3

22、匚 to /k . <1 rT g 5 匚WK/K G 匚 Kl/K. T XIXL2 C XI All C “ r17dO239338<13f536E357W 803153弓3210005131113012 2987311923id27153616盘IT出is2319222021 v«R) a/JLDO TO. L/AD13 FO 2/AKJ M.5/AIS PO时皿Zl PO 5/Jdfi2 ID HATE2 H)r/wr1 WVkp FSEJK 7/A152 T2.&/Ald 17 5/AL5K 4/ALEZl T2.S/JLL1J K.S/UQZl K L

23、/A9Zl K O/19图2.1 8051单片机的引脚图电源1 ) VCC -芯片电源,接+5V;2 ) VSS -接地端;注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介 于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间 单片机引脚电压仍保持在0v或者5v。时钟时钟:XTAL1、XTAL2 -晶体振荡电路反相输入端和输出端。(3)控制线1) ALE/PROG:地址锁存允许/片内EPROMS程脉冲。 ALE功能:用来锁存 P0 口送出的低8位地址。 PROG功能:片内有 EPROM勺芯片,在E

24、PROM®程期间,此引脚 输入编程脉冲。2) PSEN夕卜ROM读选通信号。3) RST/VPD:复位/备用电源。 RST( Reset )功能:复位信号输入端。 VPD 功能:在 Vcc 掉电情况下,接备用电源。4)EA/Vpp:内外ROM选择/片内EPROMS程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有 EPROM芯片,在EPROM编程期间,施加编 程电源 Vpp。(4)I/O 线80C51共有4个8位并行I/O 端口: PO、P1、P2、P3 口,共 32个 引脚。P3 口还具有第二功能,用于特殊信号输入输出和控制信号(属控制 总线)。P3 口第二功能为 :P3.

25、0 RXD串行输入口P3.1 TXD串行输出口P3.2 INT0外部中断0(低电平有效)P3.3 INT1外部中断1 (低电平有效)P3.4 T0定时计数器0P3.5 T1定时计数器1P3.6 WR 外部数据存储器写选通(低电平有效)P3.7 RD 外部数据存储器读选通(低电平有效)2.2 51 单片机内部结构振荡器及定 时器电路4K程序存储128B数据存/Hz味储器2个16位定 时/计数器LAAAV V _V64K总线扩展 可编程I/O可编程串行口控制图2.2 51单片机内部结构图从内部结构简图可以看出,51单片机内部有以下主要部分:振荡器及定时电路 数据存储器 总线扩展控制 可编程串行口1

26、) CPU512)3)4KB程序存储器4) 128B5) 2个16位定时/计数器6) 64KB7)可编程I/O8)9)中断系统2.3 51系列的特性1) 片内存储器容量较小,一般内部 ROM 8KB以下,内部RAM 256KB以下2) 可靠性高3) 易扩展4) 控制功能强5) 易于开发2.4 并行 I/O 口51单片机有四个并行I/O 口: PO, P1,P2,P3。2.4.1 P17 端口的结构及工作原理P0 端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及V1、V2场效应管驱动电路构成。在 P0 口中,有两个三态的缓冲器,在其的输出端可以是高电平、低电平, 同时还有一种就是高阻状

27、态 (或称为禁止状态) ,上面一个是读锁存器的缓冲器, 下面一个是读引脚的缓冲器,读取 P0.X 引脚上的数据,要使这个三态缓冲器有 效,引脚上的数据才会传输到内部数据总线上。 在 51单片机的 32根 I/O 口线中 都是用一个D触发器来构成锁存器的。D端是数据输入端,CP是控制端(也就是 时序控制信号输入端),Q是输出端,Q非是反向输出端。在51单片机中,不需 要外扩展存储器时, P0 口可以作为通用的输入输出端口(即 I/O )使用,对于 8031 (内部没有ROM的单片机或者编写的程序超过了单片机内部的存储器容量, 需要外扩存储器时,P0 口就作为地址/数据总线使用。这个多路选择开关就

28、 是用于选择是做为普通 I/O 口使用还是作为数据 /地址'总线使用的选择开关 了。当多路开关与下面接通时,P0 口是作为普通的I/O 口使用的,当多路开关 是与上面接通时,P0口是作为地址/数据总线使用的。P0口的输出是由两个 MOS管组成的推拉式结构,也就是说,这两个 MOS管一次只能导通一个,当 V1 导通时,V2就截止,当V2导通时,V1截止。P0 口作为 I/O 端口使用时,多路开关的控制信号为 0'(低电平), V1 管截止,多路开关是与锁存器的 Q非端相接的(即P0 口作为I/O 口线使用)。 作为地址/数据线使用时,多路开关的控制信号为 1',V1管由地

29、址/数据线决 定,多路开关与地址 /数据线连接。输出过程:当写锁存器信号CP有效,数据总线的信号一锁存器的输入端 X 锁存器的反向输出Q非端一多路开关一 V2管的栅极一 V2的漏极到输出端P0.X。 这时多路开关的控制信号为低电平 0, V1 管是截止的,所以作为输出口时, P0 是漏极开路输出,类似于 OC门,当驱动上接电流负载时,需要外接上拉电阻。 地址输出过程时,控制信号为 1',地址信号为 0'时,与门输出低电平, V1 管截止;反相器输出高电平,V2管导通,输出引脚的地址信号为低电平。反之, 控制信号为 0'、地址信号为 1',“与门”输出为高电平,

30、V1 管导通;反 相器输出低电平,V2管截止,输出引脚的地址信号为高电平。可见,在输出“地 址/数据”信息时,VI、V2管是交替导通的,负载能力很强,可以直接与外设存 储器相连, 无须增加总线驱动器。 作为数据总线的输出过程时, 如果该指令是输 出数据,如MOVX DPTRA(将累加器的内容通过 P0 口数据总线传送到外 部RAh中),则多路开关“控制”信号为 1',“与门”解锁,与输出地址信 号的工作流程类似,数据据由“地址/数据”线反相器V2场效应管栅极V2 漏极输出。输入过程:读芯片引脚上的数据时, 读引脚缓冲器打开, 通过内部数据总线 输入。通过打开读锁存器三态缓冲器,读取锁存

31、器输出端Q的状态。作为数据总 线使用时,在访问外部程序存储器时,P0 口输出低8位地址信息后,将变为数 据总线,以便读指令码(输入)。在取指令期间,“控制”信号为“0”, V1 管截止,多路开关也跟着转向锁存器反相输出端 Q非;CPU自动将OFF( 11111111, 即向D锁存器写入一个高电平 1')写入P0 口锁存器,使V2管截止,在读引 脚信号控制下,通过读引脚三态门电路将指令码读到内部总线,这个过程和 I/O 读引脚过程是一样的。在输入状态下,从锁存器和从引脚上读来的信号一般是一致的, 但也有例外。 例如,当从内部总线输出低电平后,锁存器 Q= 0, Q非=1,场效应管T2开通

32、, 端口线呈低电平状态。 此时无论端口线上外接的信号是低电乎还是高电平, 从引 脚读入单片机的信号都是低电平, 因而不能正确地读入端口引脚上的信号。 又如, 当从内部总线输出高电平后,锁存器 Q= 1, Q非=0,场效应管T2截止。如外接 引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。为此, 8031 单片机在对端口 P0-P3 的输入操作上,有如下约定:凡属于读 - 修改- 写方 式的指令, 从锁存器读入信号, 其它指令则从端口引脚线上读入信号。 读-修改- 写指令的特点是, 从端口输入(读)信号, 在单片机内加以运算 (修改)后,再输出 (写)到该端口上。这样安排的原因在

33、于读 -修改-写指令需要得到端口原输出的状 态,修改后再输出, 读锁存器而不是读引脚, 可以避免因外部电路的原因而使原 端口的状态被读错。当P0作为地址/数据总线使用时,在读指令码或输入数据前, CPU自动向P0口锁存器写入0FFH破坏了 P0口原来的状态。因此,不能再作为 通用的I/O端口。在系统设计时务必注意,即程序中不能再含有以P0 口作为操作数(包含源操作数和目的操作数)的指令。2.4.2 P1 端口的结构及工作原理P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了 P0端 口的场效应管T1,并且输出的信息仅来自内部总线。由内部总线输出的数据经 锁存器反相和场效应管反相后

34、,锁存在端口线上,所以, P1 端口是具有输出锁 存的静态口。 要正确地从引脚上读入外部信息, 必须先使场效应管关断, 以便由 外部输入的信息确定引脚的状态。 为此, 在作引脚读入前, 必须先对该端口写入 l 。具有这种操作特点的输入 /输出端口, 称为准双向 I/O 口。 8051单片机的 P1、 P2、P3都是准双向口。P0端口由于输出有三态功能,输入前,端口线已处于高 阻态,无需先写入 l 后再作读操作。 单片机复位后, 各个端口已自动地被写入了 1,此时,可直接作输入操作。如果在应用端口的过程中,已向P1-P3端口线输出过 0,则再要输入时,必须先写 1 后再读引脚,才能得到正确的信息

35、。此外, 随输入指令的不同,P1端口也有读锁存器与读引脚之分。2.4.3 P2 端口的结构及工作原理P2端口在片内既有上拉电阻,又有切换开关 MUX所以P2端口在功能上兼 有P0端口和P1端口的特点。这主要表现在输出功能上,当切换开关向下接通时, 从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上; 当多路开关向上时, 输出的一位地址信号也经反相器和场效应管反相后, 输出在 端口引脚线上。对于 8031 单片机必须外接程序存储器才能构成应用电路(或者我们的应用 电路扩展了外部存储器),而 P2端口就是用来周期性地输出从外存中取指令的 地址(高8位地址),因此,P2端口的多路开

36、关总是在进行切换,分时地输出从 内部总线来的数据和从地址信号线上来的地址。 因此P2端口是动态的I/O端口。 输出数据虽被锁存, 但不是稳定地出现在端口线上。 其实, 这里输出的数据往往 也是一种地址,只不过是外部 RAM勺高8位地址。在输入功能方面,P2端口与P0和H端口相同,有读引脚和读锁存器之分, 并且P2端口也是准双向口。可见,P2端口的主要特点包括:1)不能输出静态的数据;2)自身输出外部程序存储器的高 8位地址;3)执行MOV指令时,还输出外部RAM勺高位地址,故称P2端口为动态地址端口P2 作为 I/O 端口使用时的工作过程:当没有外部程序存储器或虽然有外部 数据存储器,但容易不

37、大于 256B,即不需要高8位地址时(在这种情况下,不 能通过数据地址寄存器 DPTR卖写外部数据存储器),P2 口可以I/O 口使用。这 时,控制信号为“ 0”,多路开关转向锁存器同相输出端Q,输出信号经内部总线f锁存器同相输出端CH反相器f V2管栅极f V2管9漏极输出。由于V2漏极 带有上拉电阻,可以提供一定的上拉电流,负载能力约为8个TTL与非门;作为 输出口前,同样需要向锁存器写入“ 1”,使反相器输出低电平,V2管截止,即 引脚悬空时为高电平, 防止引脚被钳位在低电平。 读引脚有效后, 输入信息经读 引脚三态门电路到内部数据总线。P2作为地址总线使用时的工作过程:P2 口作为地址

38、总线时,“控制”信号 为 1',多路开关车向地址线(即向上接通),地址信息经反相器f V2管栅极 f漏极输出。由于P2 口输出高8位地址,与P0 口不同,无须分时使用,因此 P2 口上的地址信息(程序存储器上的 A15A8功数据地址寄存器高8位DPH呆 存时间长,无须锁存。2.4.4 P3 端口的结构及工作原理P3 口是一个多功能口,它除了可以作为I/O 口外,还具有第二功能P3端口 和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择。 当处于 第一功能时,第二输出功能线为 1,此时,内部总线信号经锁存器和场效应管输 入/输出,其作用与P1端口作用相同,也是静态准双向I/

39、O端口。当处于第二功 能时,锁存器输出 1,通过第二输出功能线输出特定的内含信号,在输入方面, 即可以通过缓冲器读入引脚信号, 还可以通过替代输入功能读入片内的特定第二 功能信号。由于输出信号锁存并且有双重功能,故 P3端口为静态双功能端口。使P3端口各线处于第二功能的条件是:1)串行 I/O 处于运行状态 (RXD,TXD);2)打开了处部中断 (INT0,INT1);3)定时器 /计数器处于外部计数状态 (T0,T1)4)执行读写外部RAM的指令(RD,WR)在应用中,如不设定P3端口各位的第二功能,则P3端口线自动处于第一功能 状态,也就是静态I /O端口的工作状态。在更多的场合是根据应

40、用的需要,把 几条端口线设置为第二功能,而另外几条端口线处于第一功能运行状态。 在这种 情况下,不宜对P3端口作字节操作,需采用位操作的形式。2.5驱动能力P0端口能驱动8个LSTTL负载。如需增加负载能力,可在 P0总线上增加总 线驱动器。P1,P2, P3端口各能驱动4个LSTTL负载。由于P0-P3端口已映射 成特殊功能寄存器中的P0-P3端口寄存器,所以对这些端口寄存器的读/写就实 现了信息从相应端口的输入/输出。3系统总体方案介绍3.1系统组成框图音乐盒的系统结构以STC89C5单片机位控制核心,加上2个按键、时钟复 位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入,根据输入

41、控制音 乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如图2.1所示。图3.1系统组成框图3.2音乐发生器的功能结构图音乐盒的功能结构如图2.2所示。Keyl负责切换播放歌曲,播放歌曲共 2 首,分别是挥着翅膀的女孩和寂寞沙洲冷。 Key2负责切换LED显示花样,显示 花样共3种,第一种顺序显示,第二种由两边向中间移动然后向两边移动, 第三 种循环显示。图3.2音乐盒功能结构图3.3主要设计软件介绍本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,两种软件的简介如下:3.3.1 PROTEUS软件简介Proteus软件是英国La

42、bcenter electronics 公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDAX具软件 的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器 件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学 的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真, 一键切换到PCB设计,真正实现了从概念到产品的完整设计。 是目前世界上唯一 将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理 器模型支持

43、8051、HC11 PIC10/12/16/18/24/30/DsPIC33 、AVR ARM 8086 和 MSP43C等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处 理器模型。在编译方面,它也支持IAR、Keil和MPLA蒔多种编译器。3.3.2 KEIL 简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序 要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编, 目前已极少使用手工汇编的方法了。 机器汇编是通过汇编软件将源程序变为机器 码,用于MCS-51单片机的汇编软件有早期的 A51,随着单片机开发技术的不断 发展,从

44、普遍使用汇编语言到逐渐使用高级语言开发, 单片机的开发软件也在不 断发展,Keil软件是目前最流行开发 MCS-51系列单片机的软件,这从近年来各 仿真机厂商纷纷宣布全面支持 Keil即可看出。Keil提供了包括C编译器、宏汇 编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案, 通过 一个集成开发环境( uVision )将这些部份组合在一起。运行 Keil 软件需要Pentium或以上的CPU 16MB或更多RAM 20M以上空闲的硬盘空间、WIN98 NT WIN2OO0 WINXP等操作系统。掌握这一软件的使用对于使用 51系列单片机的爱 好者来说是十分必要的,如果你使用

45、C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、 而你买的仿真机也很可能只支持该软件) , 即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿 真调试工具也会令你事半功倍。 Keil C51 生成的目标代码效率非常之高,多数 语句生成的汇编代码很紧凑, 容易理解。 在开发大型软件时更能体现高级语言的 优势。4 硬件设计4.1 总体设计框图图4.1总体设计框图4.2各部分硬件设计及其原理4.2.1 STC89C51 简介STC89C51是一种带4K字节闪存的低电压高性能的可编程可擦除只读存储器(FPEROFlash Programmable and

46、Erasable Read Only Memory ),俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C51是一种高效微控制器。STC89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.2所示:345b78)910II1213L4is 1lb17IS19201Fi.dPLJPQQADOPO.IADIPL3P1.4【WARPl .5FO-4 ADdPL4P0JAD5Pi.7RSTPO.7/AD7E

47、A/VPPP3J/TXDAl 1 4'ROG32 INTOPSENP2.7/A15P3.4/TQP2.6/AI4P5.5TIP2.5Z413PJ.6/WR卩 24/AI2P17/RDXTAL2P2.2/A10XTAL)P2 .I A'iGNDP2.0/A8狒3736353433盟3130站27驚2423in«»2140图4.2 STC89C51系列单片机4.2.2 LED 显示电路设计与原理LED显示电路是由8个LED发光二极管组成,连接方式为共阳极,LED接到 单片机的P1 口,若为低电平,可使LED亮起。发光二极管的亮、灭由内部程序 控制,8个LED发光

48、二极管分别对应不同的音阶,所以 LED会随着音阶的变化按 规律亮、灭。4.2.3时钟振荡电路STC89C5忡有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外 石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1, C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF 1OPF,而如果使用陶瓷振荡器建议选择 40PF 10PF。用户也可

49、以采用外部时钟 采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部 时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个 2分频触发 器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求, 但最小 高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 振荡器电4.3硬件电路图及功能总体硬件电路实现功能如下,如图 3.4所示1) 电路中用P3.2、P3.3控制按键。2) P1.0P1.7 控制 LED3) P2.3控制蜂鸣器。4) 电路为12MHZ晶振频率工作,起振电路中 C1、C2均为30PF。硬件电路图如图所示:U1IirI±

50、护15-一一一亠 一士 二-4-二亠2P9阿Pl 7 PitP3 5TF1Pl 5PI 4P? .VHTTFl 3P:; 2'H1TM2PJ 1/TDPI 1P3 OJpitDPIOP3 7JA15P; 6JA14P:卯忖P:4/*12ALEPSENIP2P2 o/*eHLR5VP0 SJADflPC JQJNACX7AL2PL 2-A&2Pi ijK>rXWLiR:H尸|图4.4硬件电路图5软件设计在本程序中设置了两个标志count1和count2,分别初始化为1和0。按键1使得count1在1和2之间切换,按键2使得count2在14之间切换。程 序检测count1的

51、值,count1等于1时播放第一首歌曲,等于2时播放第二首。另一方面根据count2的值来切换LED的花样。count1和count2的值是互斥的, 设置count1等于1、2时,count2同时设置为0;设置count2等于14时,count1 也同时设置为0。5.1音调、节拍以及编码的确定方法一般说来, 单片机演奏音乐基本都是单音频率, 它不包含相应幅度的谐波频 率,也就是说不能像电子琴那样能奏出多种音色的声音。 因此单片机奏乐只需弄 清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。5.1.1 音调的确定不同音高的乐音是用C、D E、F、G A、B来表示,这7个字母就是音乐

52、的 音名,它们一般依次唱成 DO、 RE、 MI、 FA、 SO、 LA、 SI, 即唱成简谱的 1、 2、 3、 4、 5、 6、 7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音, 所以叫“音调”,即To neo把C D E、F、G A、B这一组音的距离分成12个 等份,每一个等份叫一个“半音” 。两个音之间的距离有两个“半音” ,就叫“全 音”。在钢琴等键盘乐器上,C- D D- E、F-G G- A、A- B两音之间隔着一个 黑键,他们之间的距离就是全音;E-F、B- C两音之间没有黑键相隔,它们之 间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它

53、们 的左上角加上#号或者b号的叫变化音。井叫升记号,表示把音在原来的基础上 升高半音,b叫降记音,表示在原来的基础上降低半音。例如高音DO的频率(1046Hz)刚好是中音DO勺频率(523Hz)的一倍,中音D0的频率(523Hz)刚 好是低音DO频率(266 Hz)的一倍;同样的,高音 RE的频率(1175H0冈収子是 中音RE的频率(587Hz)的一倍,中音 RE的频率(587Hz)刚好是低音RE频率(294 Hz )的一倍。1)要产生音频脉冲,只要算出某一音频的周期( 1/频率),然后将此周期除 以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将 输出脉冲的 I/O 反

54、相,然后重复计时此半周期时间再对 I/O 反相,就可在 I/O 脚上得到此频率的脉冲。2)利用AT89C51的内部定时器使其工作在计数器模式 MODE下,改变计数 值THO及TLO以产生不同频率的方法。此外结束符和休止符可以分别用代码 00H和FFH来表示,若查表结果为00H, 则表示曲子终了;若查表结果为 FFH则产生相应的停顿效果。3) 例如频率为 523Hz,其周期T=1/523=1912us,因此只要令计数器计时 956us/1us=956,在每次技术956次时将I/O反相,就可得到中音 DO( 523Hz)。计数脉冲值与频率的关系公式如下:N=Fi 2 FrN:计算值;Fi :内部计时一次为1us,故其频率为1MHz4)其计数值的求法如下:T=65536-N=65536-Fi 2 Fr例如:设 K=65536F=1000000=Fi=1MHz球低音 D(261Hz)。中音 DQ523HZ。 高音的D0( 1046HZ)的计算值T=65536-N=65536-Fi 2 Fr=65536-1000000 2 Fr=65536-500000/Fr低音 DO的 T=65536-500000/262=63627低音 DO的 T=65536-50

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论