基于单片机stc89c52的数字音乐盒设计

上传人:Bod****ee 文档编号:47220538 上传时间:2018-07-01 格式:DOCX 页数:29 大小:777.02KB
返回 下载 相关 举报
基于单片机stc89c52的数字音乐盒设计_第1页
第1页 / 共29页
基于单片机stc89c52的数字音乐盒设计_第2页
第2页 / 共29页
基于单片机stc89c52的数字音乐盒设计_第3页
第3页 / 共29页
基于单片机stc89c52的数字音乐盒设计_第4页
第4页 / 共29页
基于单片机stc89c52的数字音乐盒设计_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于单片机stc89c52的数字音乐盒设计》由会员分享,可在线阅读,更多相关《基于单片机stc89c52的数字音乐盒设计(29页珍藏版)》请在金锄头文库上搜索。

1、1基于单片机基于单片机 STC89C52STC89C52 的数字音乐盒设计的数字音乐盒设计一、一、 引言引言1.11.1 设计的目的设计的目的通过课程设计,让学生熟悉单片机微机应用系统开发、研制的过程,软硬件设计的工作方法、工作内容、工作步骤。对学生进行基本技能训练,例如:组成系统、编程、调试、查阅资料、焊接电路板等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。1.21.2 设计的基本要求设计的基本要求(1)利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏不同的乐曲(至少 3 首歌曲);(2)采用七段数码管显示当前播放的歌曲序号;(3)可通过功能键选择乐

2、曲,暂停,播放,上一首,下一首;扩展功能:利用一个循环跟每一个音调同步,每改变一个音调就变换一下彩灯,从而实现音乐控制彩灯的功能。二、二、 总体设计总体设计2.12.1 基本工作原理基本工作原理1、播放音乐的原理发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。 音符的发音主要靠不同的音频脉冲。利用单片机的

3、内部定时器/计数器 0,使其工作在模式 1,定时中断,只要算出某一音频的周期(1/频率),然后将此周期除以 2,即为半周期的时间,利用定时器计时这个半周期时间,每当计2时到后就将输出脉冲的 I/O 反相,然后重复计时此半周期时间再对 I/O 反相,就可在 I/O 脚上得到此频率的脉冲。2、音符频率的产生音符及定时器的初值:例如:中音 1(DO)的音频=523HZ,周期 T=1/523s=1912s定时器/计数器 0 的定时时间为:T/2=1912/2=956ss定时器 956的计数值=定时时间/机器周期=956/1=956(时钟频率sss=12MHZ)计算得到定时器 0 的初值为 65536-

4、956=64580,将初值装入 T0 的寄存器里,启动 T0 后,每计数 956 次后就溢出中断,进入中断服务程序后,只要将 I/O 口的输出值取反,就可以得到中音 1(DO)的音符音频。只要改变计数初值,就能得到不同频率的音符。表(1)是 C 调各音符频率与计数初值的对照表:音符频率(Hz)/初值()s音符频率(Hz)/初值()s低 1DO262/63627中 1DO523/64580高 1DO1042/65056低 2RE294/63835中 2RE589/64687高 2RE1245/65134低 3M330/64021中 3M661/64780高 3M1318/65157低 4FA35

5、0/64107中 4FA700/64822高 4FA1397/65178低 5SO393/64264中 5SO786/64900高 5SO1568/65217低 6LA441/64402中 6LA882/64969高 6LA1760/65252低 7SI495/64526中 7SI990/650313高 7SI1967/65282表(表(1 1)音符、音符编码及定时器初始值:为了产生音符必须求出低音到高音的计数初值,而为了便于写谱,必须进行简单的编码,在编程时,根据音符编码查找对应的计数初值,比如说音乐是C 调的,低音 5(SO)直接写为编码 1,低音 6(LA)直接写为编码 2。表(2)是音

6、符编码表:表(表(2 2)3、节拍频率的产生音乐中的节拍是利用延时产生的。例如:1 拍=0.4s,1/4 拍=0.1s。如此类推,可得到其他节拍的时间。为了便于写谱,也将节拍进行编码。表(3)是节拍数编码表,表(4)是乐谱节拍编程时间延时表:按 1/4 拍为一个延时时间的节拍编码与节拍对应的表按 1/8 拍为一个延时时间的节拍编码与节拍对应的表音符音符编码音符音符编码不发音0低 5SO1低 6LA2低 7SI3中 1DO4中 2RE5中 3M6中 4FA7中 5SO8中 6LA9中 7SIA高 1DOB高 2REC高 3MD高 4FAE高 5SOF高 6LAG4节拍编码节拍节拍编码节拍节拍编码

7、节拍节拍编码节拍11/466/411/866/822/488/422/888/833/4A10/433/8A10/844/4C12/444/8C12/855/4F15/455/8表(表(3 3)乐谱节拍1/4 拍的延时时间乐谱节拍1/8 拍的延时时间4/4125 ms4/462 ms3/4187 ms3/494 ms2/4250 ms2/4125 ms表(表(4 4)在音符编码和节拍编码完成后,编程时,每个音符占一个字节,高 4 位是音符编码,低 4 位是节拍编码。2.22.2 硬件总体设计硬件总体设计本设计是由五部分电路组成的,分别是时钟复位电路、单片机系统、按键电路、显示电路和音频输出电路

8、。硬件的总体框图如图(1)所示:时钟复位电路时钟复位电路按键电路按键电路音频输出电路音频输出电路单片机单片机显示电路显示电路5图(图(1 1)根据系统框图,使用 Proteus 软件绘制总原理图,总原理图如图(2)所示:图(图(2 2)原理说明:(1) 当键盘有键按下时,判断键值,启动定时器 0,产生一定的频率,驱动蜂鸣器,播放歌曲,启动定时器 1,显示歌曲序号;(2) 用 P0 口控制七段数码管,P1 口控制彩灯变化,P2.0 控制喇叭,输出音频信号;(3) 电路采用 12MHz 的晶振工作,起振电路中 C1 和 C2 为 22pF 的电容。2.32.3 软件总体设计软件总体设计本设计采用

9、Keil 软件进行编写程序并进行编译,采用 Proteus 软件进行仿真调试。在编写程序之前,首先应该画出该程序的流程图,这样编程起来会比较简单一点,不会那么复杂。音乐盒设计的总程序流程图如图(3)所示:6图(图(3 3)按照主程序的流程图用 Keil 软件编写系统的主程序。程序清单如附录所示。三、三、 硬件设计硬件设计3.13.1 单片机芯片的引脚及部分功能单片机芯片的引脚及部分功能开始开始初始化初始化设置音节起始位置,设置音节起始位置, 设置节拍间距设置节拍间距节拍结束,彩灯节拍结束,彩灯 停止闪烁停止闪烁显示当前播放歌曲序号,显示当前播放歌曲序号, 彩灯循环闪烁彩灯循环闪烁读取音阶、音符

10、读取音阶、音符结束结束7本设计采用的单片机型号是 STC89C52,其引脚图如图(4)所示:图(图(4 4)跟 51 单片机一样 STC89C52 单片机也是 8 位的单片机,有 32 个准双向的 I/O 口,存储单元也分为了 2 种,程序存储器和数据存储器,其中数据存储器是 256KB的,可以扩展到 64KB,而程序存储器是 4KB 的,也可以扩展到 64KB。STC89C52单片机的中断系统里有 5 个中断请求源,4 个用于中断控制的寄存器IE、IP、TCON 和 SCON,用来控制中断的类型、中断的开/关和各种中断源的优先级别,而引脚 31,当接低电平时,单片机直接访问外部程序存储器,接

11、高电平时,单片机访问片内程序存储器,当程序计数器 PC 的值超过 4KB 时,单片机也自动访问片外程序存储器。引脚 9 是单片机的复位端,当接高电平时,单片机就会复位,而单片机 32 个 I/O 口中,P3 口具有第二功能,可以实现串行和并行通信的数据接收和发送,也可以控制单片机的中断类型。3.23.2 各个模块的硬件电路设计各个模块的硬件电路设计1、时钟复位电路时钟电路是由 12MHz 的晶振和 2 个 22pF 的电容组成,给单片机系统提供外部时钟信号源,以保证单片机内部定时器的正常工作。而复位电路采用上电复8位的接法,由一个 10k 的电阻和 10uF 的电容组成,在加电的瞬间电容通过充

12、电,使 RST 端出现正脉冲,从而使单片机复位。时钟复位电路如图(5)所示:图(图(5 5)2、按键输入电路本设计采用三个按键来控制音乐的播放,其中按键 S1 是控制音乐盒播放下一首歌曲,按键 S2 是控制音乐盒播放上一首歌曲,而按键 S3 则是控制音乐播放和暂停,按键电路的接法如图(6)所示:图(图(6 6)93、显示电路本设计采用七段共阴数码管来显示当前播放歌曲的序号,其中a、b、c、d、e、f、g 分别接到 P0.0-P0.6 口,而公共端接地,由于 P0 口里面没有接上拉电阻,在外部电路里还得接上上拉电阻,以保证 P0 口电平的正常输出。显示电路的接法如图(7)所示:图(图(7 7)4

13、、音频输出电路本设计采用喇叭作为音乐盒的音频输出,但是只有一个喇叭就构成整个音频输出电路的话,播放音乐的声音就会太小声,甚至有时小到连声音都听不到,为了增大喇叭的声音,才用一个放大电路使通过喇叭的电流增大,从而增大喇叭的输出功率。放大电路是采用一个 PNP 型的三极管和两个电阻,其中一个作为反馈回路。音频输出电路如图(8)所示:10图(图(8 8)5、彩灯控制电路彩灯控制电路为本设计的扩展功能,通过音乐的播放,节拍的变化来控制彩灯的循环变化,彩灯电路有 8 个发光二极管和 8 个 200 欧的电阻组成,接到P1 口,通过变化 P1 口的输出电平,控制彩灯的亮灭。彩灯控制电路如图(9)所示:11

14、图(图(9 9)四、四、 软件设计软件设计4.1 本设计可以实现课程设计的基本要求,可以播放 6 首歌,并通过按键控制播放、暂停等功能。主要的子程序框图如图(10)、(11)、(12)所示:主程序主程序初始化变量及数初始化变量及数 码管码管播放并显示歌曲播放并显示歌曲 序号序号初始化定时器初始化定时器检测是有有按检测是有有按 键键播放相应的歌曲播放相应的歌曲显示曲目号显示曲目号NY12音乐播放程序框图音乐播放程序框图 图图(10)(10)中断程序框图中断程序框图 图(图(1111)系统各主要程序的程序清单可见于附录编写完程序后,用 Keil 软件进行编译,看是否有错,如果有错应立刻修改,直到编

15、译正确为止。五、五、 仿真、调试电路仿真、调试电路在 Proteus 软件绘制完原理图和编译完源程续后,将 Keil 软件编译完生成的 Hex 文件加载到 Proteus 软件绘制出的原理图里德单片机里,就可以进行仿真,验证是否能实现课程设计的基本功能。当仿真成功后,就可以购买元器件,开始焊接电路板了,焊完电路板后,利用单片机开发板将程序下载到单片机芯片上进行调试,看是否焊接成功,如果没有同仿真时的结果一样,就得检查一下电路,看哪里出错了,再进行调整,达到预期的要求。六、六、 存在问题和解决方法存在问题和解决方法中断入口中断入口中断返回中断返回保护现场保护现场重装初值重装初值P2.0P2.0

16、反相反相恢复现场恢复现场13在设计过程中,虽然在音频输出电路中加了放大电路,来增大输出的电流,但是在调试过程中喇叭的声音还是有点小声,我认为不要采用单个三极管作为放大电路,而应该采用集成运算放大器,因为集成运放里面已经是由多个三极管组成的多级放大电路了,在外部适当的添加一些电阻和电容就能实现功率的放大。七、七、 总结与体会总结与体会通过这次课程设计,从整体上我对单片机微机应用系统开发、研制过程软硬件设计的工作方法、工作内容、工作步骤更加了解。不仅熟练地掌握了 Keil软件和 Proteus 软件的使用方法,而且提高了我的动手能力和分析问题、解决问题的能力。我觉得这次单片机课程设计是一个综合性的设计平台,除了熟练掌握了一些软件的使用和进行了基本技能的锻炼之外,还巩固了我的单片机知识,在编程方面,我也更加的熟练。而且通过查阅资料,还拓展了我的知识视野,加强了我查阅资料的能力。但是这次单片机课程设计也不是一帆风顺的,在编程和仿真过程中倒是没有出现太大的问题,而在焊接完电路板,进行电路调试时却发现整个电路都不工作。我们检查了两

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

当前位置:首页 > 学术论文 > 毕业论文

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