1、 单片机课程设计之音乐播放器 学生姓名学生姓名 学学 号号 所在所在学院学院 专业名称专业名称 班班 级级 指导教师指导教师 成成 绩绩 1 目录 一、设计功能 . 1 (一)基本功能 . 1 (二)扩展功能 . 1 二、设计原理 . 1 (一)单片机产生不同频率脉冲信号的原理: . 1 三、方案与论证 6 四、设计内容 . 7 (一)系统框图和设计原理图 7 (二)软件设计流程图 9 五、总结 12 附录: 13 第 1 页 一、设计功能 (一)基本功能 1. 利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,演奏乐 2. 采用 LED 显示信息 3.3. 播放时显示歌曲序号(
2、或名称) (二)扩展功能 1. 1. 可通过功能键选择乐曲,暂停,播放。 2显示乐曲播放时间或剩余时间。 二、设计原理 (一)单片机产生不同频率脉冲信号的原理: (1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以 2, 即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉 冲的 I/O 反相,然后重复计时此半周期的时间再对 I/O 反相,就可以在 I/O 脚上得 到此频率的脉冲。 (2)利用 8051 的内部定时器使其工作在计数器模式 MODE1 下,改变计 数值 TH0 及 TL0 以产生不同频率的方法如下: 例如,频率为 523Hz,其周期天/5
3、23 S=1912uS,因此只要令计数器计时 956uS/1us=956,在每计数 956 次时就将 I/O 反接,就可得到中音 DO(532Hz)。 计数脉冲值与频率的关系公式如下: 第 2 页 N=Fi/2/Fr (N:计数值,Fi:内部计时一次为 1uS,故其频率为 1MHz,Fr:要产生的频 率 ) (3) 其计数值的求法如下: T=65536-N=65536-Fi/2/Fr 计算举例: 设 K=65536,F=1000000=Fi=1MHz,求低音 DO(261Hz)、中音 DO(523Hz)、高 音 DO(1046Hz)的计数值。 T=65536-N=65536-Fi/2/Fr=6
4、5536-1000000/2/Fr=65536-500000/Fr 低音 DO 的 T=65536-500000/262=63627 中音 DO 的 T=65536-500000/523=64580 高音 DO 的 T=65536-500000/1047=65059 (4)C 调个音符频率与计数值 T 的对照表如下表所示: 表 3-1 C 调各音符频率与计数值 T 的对照表 音 符 频率(Hz) 简谱码(T 值) 音 符 频率(Hz) 简谱码(T 值) 低 1DO 262 63628 #4FA# 740 64860 #1DO# 277 63731 中 5SO 784 64898 低 2RE 2
5、94 63835 #5SO# 831 64923 #2RE# 311 63928 中 6LA 880 64968 低 3M 330 64103 #6 932 64994 低 4FA 349 64103 中 7SI 988 65030 第 3 页 #4FA# 370 64260 高 1DO 1046 65058 低 5SO 392 64260 #1DO# 1109 65085 #5SO# 415 64331 高 2RE 1175 65110 低 6LA 440 64400 #2RE# 1245 65124 #6 466 64463 高 3M 1318 65157 低 7SI 494 64524
6、高 4FA 1397 65178 中 1DO 523 64580 #4FA# 1480 65198 (5)节拍: 每个音符使用 1 个字节,字节的高 4 位代表音符的高低,低 4 位代表音符的节拍, 下表为节拍码的对照。但如果 1 拍为 0.4 秒,1/4 拍是 0.1 秒,只要设定延迟时间 就可求得节拍的时间。假设 1/4 节拍为 1DELAY,则 1 拍应为 4DELAY,以此类推。 所以只要求得 1/4 拍的 DELAY 时间, 其余的节拍就是它的倍数, 如下表为 1/4 和 1/8 节拍的时间设定。 表 3-2 节拍码对照表 1/4 节拍 1/8 节拍 节拍码 节拍数 节拍码 节拍数 1 1/4 拍 1