课程设计 基于单片机的音乐播放器 联系客服

发布时间 : 星期五 文章课程设计 基于单片机的音乐播放器更新完毕开始阅读3f94330190c69ec3d5bb752b

1

1 设计课题任务、功能要求说明及总体方案介绍

1.1 任务

设计一个具有特定功能的音乐播放器。该音乐播放器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该音乐播放器可以播放多首音乐,曲目选择可以由键盘控制,曲目名称可以显示在显示器上。

1.2 功能要求说明

设有四个按键,其中两个能实现多首音乐的选择,另一个能实现开始功能

和单曲重播的功能,最后一个能实现复位和关闭歌曲的功能。设有一位数码管,每选择一首曲子能在数码管上显示当前的曲目(只是数字)。设有八位二极管,能随歌曲频率闪烁。

1.3 总体方案介绍及工作原理说明

1.3.1 总体方案介绍

作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“--等音阶在内的各种频率声音。在此设计中我们采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由喇叭发出声音。

乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的对应关系也可以从两者关系表中得到。

定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0进行工作。

1.3.2 工作原理说明

(1) 要生产音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除

以2,即为半周期的时间.利用定时器计时这个半周期时间,每当计时到后就将输

1

2

出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲.

(2) 利用8051的内部定时器使用其工作在计数器模式MODE1下,改变计数值THO及TLO以产生不同频率的方法.

(3) 例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次计数956次时将I/O反相,就可得到中音DO (523Hz). 计数脉冲值与频率的关系公式如下:

N=Fi÷2÷Fr?????????????????1.1

N: 计算值; Fi: 内部计时一次为1us, 故其频率为1MHz; (4) 其计数值的求法如下:

T=65536-N=65536-Fi÷2÷Fr ???????????1.2 例如: 设K=65536, F=1000000=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/1047=65059

(5) C调各音符频率与计数值T的对照表如表1所示.

音符 低1 DO #1 DO# 低2 RE #2 RE# 低 3 M 低 4 FA # 4 FA# 低 5 SO # 5 SO# 低 6 LA # 6 低 7 SI 中 1 DO

表1.1 C调各音符频率与计数值T的对照表

频率(HZ) 简谱码(T值) 音符 频率(HZ) 262 63628 # 4 FA# 740 277 63731 中 5 SO 784 294 63835 # 5 SO# 831 311 63928 中 6 LA 880 330 64021 # 6 932 349 64103 中 7 SI 988 370 64185 高 1 DO 1046 392 64260 # 1 DO# 1109 415 64331 高 2 RE 1175 440 64400 # 2 RE# 1245 466 64463 高 3 M 1318 494 64524 高 4 FA 1397 523 64580 # 4 FA# 1480

简谱码(T值)

64860 64898 64934 64968 64994 65030 65058 65085 65110 65134 65157 65178 65198

(6) 每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音

符的节拍,表2为节拍与节拍码的对照.如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间.假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推.所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定.

2

3

2 硬件系统的设计

2.1 硬件系统各模块功能简要介绍

2.1.1 单片机最小系统

图2.1 单片机最小系统

(1) 时钟源电路

单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图2.1。可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择22pF左右的瓷片电容。 (2) 复位电路

单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其结构如图2.1。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键将电阻R1与VCC接通来实现。

2.1.2 发光二极管

3

4

图2.2 发光二极管

当接通电源,单片机运行时,八个二极管随着不同的调子闪烁,增加美感。

2.1.3 一位数码管

图2.3 一位数码管

当有键按下时,数码管显示当前的曲目

2.1.4 蜂鸣器发声

4