基于单片机STC89C52的数字音乐盒设计.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一、引言

1.1设计的目的

通过课程设计,让学生熟悉单片机微机应用系统开发、研制的过程,软硬件设计的工作方法、工作内容、工作步骤。对学生进行基本技能训练,例如:组成系统、编程、调试、查阅资料、焊接电路板等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。

1.2 设计的基本要求

(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏不同的乐曲(至少3首歌曲);

(2)采用七段数码管显示当前播放的歌曲序号;

(3)可通过功能键选择乐曲,暂停,播放,上一首,下一首;

扩展功能:利用一个循环跟每一个音调同步,每改变一个音调就变换一下彩灯,从而实现音乐控制彩灯的功能。

二、总体设计

2.1基本工作原理

1、播放音乐的原理

发音原理:播放一段音乐需要的是两个元素,一个是音调,另一个是音符。首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。另外,音符的频率有所不同。基于上面的内容,这样就对发音的原理有了一些初步的了解。

音符的发音主要靠不同的音频脉冲。利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

2、音符频率的产生 音符及定时器的初值:

例如:中音1(DO )的音频=523HZ,周期T=1/523s=1912s μ 定时器/计数器0的定时时间为:T/2=1912/2s μ=956s μ

定时器956s μ的计数值=定时时间/机器周期=956s μ/1s μ=956(时钟频率=12MHZ)

计算得到定时器0的初值为65536-956=64580,将初值装入T0的寄存器里,启动T0后,每计数956次后就溢出中断,进入中断服务程序后,只要将I/O 口的输出值取反,就可以得到中音1(DO )的音符音频。只要改变计数初值,就能得到不同频率的音符。表(1)是C 调各音符频率与计数初值的对照表:

表(1)

音符、音符编码及定时器初始值:

为了产生音符必须求出低音到高音的计数初值,而为了便于写谱,必须进行简单的编码,在编程时,根据音符编码查找对应的计数初值,比如说音乐是C调的,低音5(SO)直接写为编码1,低音6(LA)直接写为编码2。表(2)是音符编码表:

3、节拍频率的产生

音乐中的节拍是利用延时产生的。例如:1拍=0.4s,1/4拍=0.1s。如此类推,可得到其他节拍的时间。为了便于写谱,也将节拍进行编码。表(3)是节拍数编码表,表(4)是乐谱节拍编程时间延时表:

在音符编码和节拍编码完成后,编程时,每个音符占一个字节,高4位是音符编码,低4位是节拍编码。

2.2硬件总体设计

本设计是由五部分电路组成的,分别是时钟复位电路、单片机系统、按键电路、显示电路和音频输出电路。硬件的总体框图如图(1)所示:

图(1)

根据系统框图,使用Proteus软件绘制总原理图,总原理图如图(2)所示:

图(2)

原理说明:

(1)当键盘有键按下时,判断键值,启动定时器0,产生一定的频率,驱动蜂鸣器,播放歌曲,启动定时器1,显示歌曲序号;

(2)用P0口控制七段数码管,P1口控制彩灯变化,P2.0控制喇叭,输出音频信号;

(3)电路采用12MHz的晶振工作,起振电路中C1和C2为22pF的电容。2.3软件总体设计

本设计采用Keil软件进行编写程序并进行编译,采用Proteus软件进行仿真调试。

在编写程序之前,首先应该画出该程序的流程图,这样编程起来会比较简单一点,不会那么复杂。音乐盒设计的总程序流程图如图(3)所示:

图(3)

按照主程序的流程图用Keil软件编写系统的主程序。程序清单如附录所示。

三、硬件设计

3.1单片机芯片的引脚及部分功能

本设计采用的单片机型号是STC89C52,其引脚图如图(4)所示:

图(4)

跟51单片机一样STC89C52单片机也是8位的单片机,有32个准双向的I/O 口,存储单元也分为了2种,程序存储器和数据存储器,其中数据存储器是256KB的,可以扩展到64KB,而程序存储器是4KB的,也可以扩展到64KB。STC89C52单片机的中断系统里有5个中断请求源,4个用于中断控制的寄存器IE、IP、TCON和SCON,用来控制中断的类型、中断的开/关和各种中断源的优先级别,而引脚31,当接低电平时,单片机直接访问外部程序存储器,接高电平时,单片机访问片内程序存储器,当程序计数器PC的值超过4KB时,单片机也自动访问片外程序存储器。引脚9是单片机的复位端,当接高电平时,单片机就会复位,而单片机32个I/O口中,P3口具有第二功能,可以实现串行和并行通信的数据接收和发送,也可以控制单片机的中断类型。

3.2 各个模块的硬件电路设计

1、时钟复位电路

时钟电路是由12MHz的晶振和2个22pF的电容组成,给单片机系统提供外部时钟信号源,以保证单片机内部定时器的正常工作。而复位电路采用上电复

位的接法,由一个10k的电阻和10uF的电容组成,在加电的瞬间电容通过充电,使RST端出现正脉冲,从而使单片机复位。时钟复位电路如图(5)所示:

图(5)

2、按键输入电路

本设计采用三个按键来控制音乐的播放,其中按键S1是控制音乐盒播放下一首歌曲,按键S2是控制音乐盒播放上一首歌曲,而按键S3则是控制音乐播放和暂停,按键电路的接法如图(6)所示:

图(6)

相关文档
最新文档