好文档 - 专业文书写作范文服务资料分享网站

基于51单片机的简易音乐播放器

天下 分享 时间: 加入收藏 我要投稿 点赞

基于单片机的电子琴课程设计

一:课程目的以及要求

用51单片机作为主控电路设计一个电子琴,实现能通过切换不同的键盘按键来切换歌曲。

二:课程设计背景:

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要容是用STC89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块。

本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。

三:系统硬件设计

3.1系统框图

按键键盘

. . .

51单片机 AT89C51 音频输出 3.2 51单片机产生音符原理

MCS-5l单片机有两个定时器/计数器。系统使用定时器/计数器0产生方波。定时器/计数器l刖用于记录音符的时长,即按键持续的时问。定时器/计数器0的工作方式是l,即为16位定时器/计数器。16位定时器/计数器被赋予一个初值,并开始记数。当记数溢出,产生中断后,中断服务程序将与蜂鸣器连接的引脚电平置反,并且对定时器/计数器再赋初值,重新开始记效。之后产生中断,引脚电平再被置反,如此周而复始,在引脚上就能产生一个频率与定时初值有关的方波信号。而定时初值与音符频率有关,相应频率的确定,可参照12平均律,相邻两个半音A和B的频率之间的关系为:A=B√2[1]。 定时器/计数器l的作用为记录音符的时长,工作方式为l,即16位定时器/计数器。在12MHZ的晶体振荡器F,单片机的机器周期为l“S。本系统中,定时器/计数器l以10ms的时长为l定时单位,记录音符持续了多少个定时单位,如此,使用一个unmgnedchar型变量既可以记录2.55s的时长,这在用于记录一般弹奏的音符时是足够的。而若一个音符的时长超过2.55S,则程序将在数组该位记满时强制跳转,并复制此音符信息至教组下一位来记录该音符剩余的时长,实现一种。无缝连接”。如此以来,在存储空间允许的情况下,系统允许记录任意时长的音符。音乐是由音符和时长组成,单片机将一连串音符和时长的时间序列以两组对应的敬组的形式保存起来,也就是保存了一段音乐[2]。

. . .

12

四 系统软件设计

4.1 单片机产生音符过程:

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这

样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。

若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。

利用STC89C52的部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式(如式2-1所示)是:

N=fi÷2÷fr

式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下: T=65536-N=65536-fi÷2÷fr

例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、

. . .

高音DO(1046Hz)的计数值。

T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr

低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1046=65059 4.2 程序编写流程图

五:调试过程 5.1 软件仿真调试

. . .

开始 P1.0=0 键盘扫描是否有键被按下?并检测确定按键 执行输出电路, 读相应程序 进行放歌 软件仿真调试主要是针对单片机部分进行调试。

在软件运行前,先确保电路中连线正确,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要通过目测,用来完成检测电路中是否存在断路或者短路情况等。

在确保软件仿真电路正常,无异常情况(断路或短路)方可进行软件运行,在本次设计中,主要检测单片机的程序功能是否正确在理论上编写的程序是否可以实现。确保自己的电路板在理论上是可实现的。

5.2实物调试过程:

1.先确保电路板是否每条铜线支路都是导通的才能进行下一步调试 2.在检测好每条通路没有断路的的情况下还要排除短路的情况,因为在焊接时会有可能将焊锡丝掉到两根铜线之间。

3.将下好程序的单片机安装好后上电检测单片机的主要管脚电压值以确定单片机是否正常工作。

4.在所有上诉步骤都正确的情况下,要是功能为实现就要考虑软件编写是否正确。

5.3 本次出现的一些问题以及解决方法

1.电路断线情况比较多,是由于腐蚀和转印的过程出现了一些问题 2.开始设计的时候在每个按键的之路上添加一个红色二极管作为指示功能,但未考虑到编写的程序是按键扫描过程是检测单片机引脚是否为低电平,当加了一个二极管的时候会产生一个管压降,导致引脚不能产生低电平。所以该指示灯不能直接加到引脚处。 六:体会:

. . .

基于51单片机的简易音乐播放器

基于单片机的电子琴课程设计一:课程目的以及要求用51单片机作为主控电路设计一个电子琴,实现能通过切换不同的键盘按键来切换歌曲。二:课程设计背景:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现
推荐度:
点击下载文档文档为doc格式
5mykh1izmb1emx02sb8q8qp2012imx011cq
领取福利

微信扫码领取福利

微信扫码分享