logo资料库

单片机-课程设计音乐播放器.doc

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
设计名称:基于单片机控制的音乐播放器
院 部:物理与电气工程学院
1引言……………………………………………………………………3
2任务设计……………………………………………………………3
2.1 设计任务…………………………………………………………3
2.2设计要求……………………………………………………3
2.3发挥部分…………………………………………………………3
3方案论证………………………………………………………………4
3.1显示部分…………………………………………………………4
3.2按键部分……………………………………………………4
4总体方案…………………………………………………………………4
4.1总体方案介绍…………………………………………………4
4.2工作原理……………………………………………………5
5.1STC89C52RC单片机最小系统………………………………7
5.2蜂鸣器模块……………………………………………7
5.3LED模块…………………………………………………7
5.4 显示模块……………………………………………8
5.5按键模块…………………………………………………8
5.6整体电路………………………………………………8
7.1使用单片机资源情况………………………………………9
7.2程序框图……………………………………………………10
7.3程序……………………………………………………11
8误差分析………………………………………………………16
1引言
2任务设计:
2.2设计要求:
2.3发挥部分:
3.1.显示部分:
4总体方案:
4.2 工作原理
5系统硬件设计(单元电路设计及分析):
5.1 STC89C52RC单片机最小系统:
5.2蜂鸣器模块
5.4 显示模块
6功能及使用说明:
7软件设计
7.1使用单片机资源情况
7.2程序框图
7.3程序
9设计心得体会:
物理与电气工程学院课程设计报告 设计名称:基于单片机控制的音乐播放器 院 部:物理与电气工程学院 专业班级:10 级 电信(4)班 学生姓名:丁林 080210196 余克伟 080210217 孟献强 080210238 郁林 080210239 指导老师:张朝龙 完成时间:2012 年 6 月 6 号 评阅意见: 丁林 080210196 余克伟 080210217 孟献强 080210238 郁林 080210239 评阅教师 日期
目录 1 引言……………………………………………………………………3 2 任务设计……………………………………………………………3 2.1 设计任务…………………………………………………………3 2.2 设计要求……………………………………………………3 2.3 发挥部分…………………………………………………………3 3 方案论证………………………………………………………………4 3.1 显示部分…………………………………………………………4 3.2 按键部分……………………………………………………4 4 总体方案…………………………………………………………………4 4.1 总体方案介绍…………………………………………………4 4.2 工作原理……………………………………………………5 5 硬件设计………………………………………………………7 5.1STC89C52RC 单片机最小系统………………………………7 5.2 蜂鸣器模块……………………………………………7 5.3LED 模块…………………………………………………7 5.4 显示模块……………………………………………8 5.5 按键模块…………………………………………………8 5.6 整体电路………………………………………………8 6 功能使用说明………………………………………………9 7 软件设计……………………………………………………9 7.1 使用单片机资源情况………………………………………9 7.2 程序框图……………………………………………………10 7.3 程序……………………………………………………11 8 误差分析………………………………………………………16 9 心得与体会……………………………………………………16 - 2 -
摘要 本设计是一个基于 STC89C52RC 系列单片机的音乐盒,依据单片机技术原理,通过 硬件电路制作以及软件编译,设计一个多功能音乐盒。该音乐盒主要由按键电路,发光 二极管电路,数码管显示电路以及蜂鸣器组成。本设计利用KEIL编程软件进行编程 并调试,配合 PROTEUS 仿真软件对硬件进行仿真调节,节约了设计时间。 关键字:音乐盒;STC89C52RC;KEIL;PROTEUS; 1 引言 利用单片机演奏音乐大概是单片机爱好者感兴趣的问题之一。利用单片机控制音乐播放 也多不胜举.音乐芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛。它有功能 多﹑价格优﹑外围电路简单的特点,备受音乐爱好者及音乐芯片制造商的青昧。用 AT89S51 单电机及少数外围电路控制音乐播放,产生几首不同的歌曲。 对于单片机产生音乐,关键是控制频率的输出。我们知道,不同的声音对应不同的频率, 产生有规律的频率输出就可以得到相应规律的声音。采用了 T0 中断的方法产生不同频 率,采用 THO 产生中断进行歌曲选播,复位键进行重新开始,也可以通过选择键来选 择。 本文应用单片机和音乐发声的相关知识设计了一个简单的音乐播放器。所谓音乐播放 器,由单片机进行信息处理,再经过信号放大,由耳机或扬声器(喇叭)放出乐曲声。 我们知道,振动产生声音,振动频率不同,所发出的声音也就不同,有规律的振动发出 的声音叫“乐音”,音乐由音频和节拍构成,音频即发声的频率,节拍即延时的长短, 因此利用单片机的定时器/计数器产生一定频率的方波,本文比较详细地介绍了音乐播放 器的原理、设计思路、硬件的选择及相关作用、软件的实现方法及详细的程序清单、还 包括进行了软、硬件调试和测试,耳熟能详的歌曲的依次、轮回播放。 实现,而且还具有一定的创新功能。 关键字: STC89C52RC 单片机、8051 单片机,中断,编程,音乐,音乐播放器 2 任务设计: 2.1 设计任务:制作一个单片机控制的音乐播放器。 2.2 设计要求: (1)利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏歌曲。 (2)采用共阳七段数码管或 LCD 显示当前播放歌曲的序号。 (3)可以通过按键实现三首歌之间换歌的基本操作。 2.3 发挥部分: 1.暂停按键 2.暂停时可以使用上一曲键或下一区键切换歌曲 3.播放或暂停时可以通过按键重新播放正在播放的歌曲 4.可以通过“第一首歌曲按键 S9”,“第二首歌曲按键 S10”,“第三首按键 S11” - 3 -
实现播放相应的的歌曲 3 方案论证: 3.1.显示部分: 显示部分是本次设计的重要部分,一般有以下两种方案: 方案一: 采用 LED 显示,分静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很 多,引线多而复杂,且可靠性也较低。而对于动态显示方式,虽可以避免静态显示的问 题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。 方案二: 采用 LCD 显示。LCD 液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功 耗小等优点,对于信息量多的系统,是比较适合的。 鉴于上述原因,且设计使用的开发板单片机没有液晶显示屏,我们采用方案一。 3.2 按键部分: 方案一:独立按键 跳帽 J11 连接左边构成独立按键 分别为 S1,S2,S,3,S4 方案二: 矩阵按键 跳帽 J11 连接右边构成矩阵键盘 为 S1,S2,S3……………………S15,S16 由于使用按键较多,而独立按键只有四个,所以采用矩阵键盘 4 总体方案: 4.1 总体方案介绍 作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号, 也可以产生包括“Do“、“Re“、“Me“--等音阶在内的各种频率声音。在此设计中我们采用 12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由喇叭发 出声音。 乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应 的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏 出音符。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的 - 4 -
定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的对应 关系也可以从两者关系表中得到。 定时器 T0 工作在定时方式 1,改变 TH0 及 TL0,产生不同的音频频率。要编写的 乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的 内容来实现的。主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序 和音长子程序,启动定时器 T0 进行工作。 4.2 工作原理 (1) 要生产音频脉冲,只要算出某一音频的周期(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.1 C 调各音符频率与计数值 T 的对照表 音符 频率(HZ) 简谱码(T 值) 音符 频率(HZ) 简谱码(T 值) 低 1 DO 262 63628 # 4 FA# 740 64860 - 5 -
#1 DO# 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 # 5 SO# 831 64934 #2 RE# 311 63928 中 6 LA 880 64968 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 # 4 FA# 1480 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节拍的时间设定. - 6 -
8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 5 1 A 7 4 1 A 6 3 1 A 5 2 1 A 4 1 1 A 3 0 1 A 2 / / / / / / . . . . . . 2 P 2 P 2 P 2 P 2 P 2 P 9 A 1 / 8 A 0 / . . 2 P 2 P 2 3 3 3 5 3 4 3 6 3 7 3 5 系统硬件设计(单元电路设计及分析): U1 AT89C51 5 D A 5 4 D A 4 3 D A 3 2 D A 2 1 D A 1 0 D A 0 7 D A 7 6 D A 6 / / / / / / / / 8 3 9 3 . . . . . . . . 0 P 0 P 0 P 0 P 0 P 0 P 0 P 0 P A E E L A N E S P 1 3 0 3 9 2 5.1 STC89C52RC 单片机最小系统: T S R 2 L A T X 1 L A T X 9 8 1 9 1 C1 22pF X1 CRYSTAL C1 22pF R2 10k R3 10k 复位键 X2 CRYSTAL 单片机真正可用的最简单配置的应用系统 5.2 蜂鸣器模块 Q1 MMBTA93 LS1 扬声器 R1 1k 利用单片机的 P2.7 口 产生不同音调所对应的方波来使蜂鸣器发声,使用 PNP 三级管来驱动。 5.3 LED 模块 . 0 1 P . 1 1 P . 2 1 P . 3 1 P . 4 1 P . 5 1 P , 6 1 P . 7 1 P 当接通电源,单片机运行时,八个二极管随着不同的调子闪烁,增加美感。 - 7 -
5.4 显示模块 U2 OE LE 1 11 9 8 7 6 5 4 3 2 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 7 D A 7 6 D A 6 5 D A 5 4 D A 4 3 D A 3 2 D A 2 1 D A 1 0 D A 0 / / / / / / / / . . . . . . . . 0 P 0 P 0 P 0 P 0 P 0 P 0 P 0 P D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 12 13 14 15 16 17 18 19 74HC573 U1 AT89C51 C1 D1 1N4007 5 2 4 2 3 2 2 2 1 2 3 1 A 5 2 1 A 4 1 1 A 3 0 1 A 2 / / / / . . . . 2 P 2 P 2 P 2 P 9 A 1 / 8 A 0 / . . 2 P 2 P E L A A E N E S P 0 3 9 2 XTAL2 XTAL1 AT89C51 当有键按下时,数码管显示当前的曲目 22pF 2 L A T X 1 L A T X T S R 9 8 1 9 1 5.5 按键模块 P3.7/RD P3.6/WR P3.5/T1 P3.4/T0 P3.3/INT1 P3.2/INT0 P3.1/TXD P3.0/RXD 17 16 15 14 13 12 11 10 播放第一首S9 上一曲S13 播放第二首S10 下一曲S14 播放第三首S11 重播 S15 暂停/播放 S16 P2.7/A15 P2.6/A14 P2.5/A13 按下上一曲开关 S13 跳到上一曲播放,按下下一曲开关 S14 跳到下一曲播放 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 按下重播键 S15 重新播放该曲,按下暂停键 S16 实现暂停并使 LED 灯循环向右点亮 S9,S10,S11 按键可分别选曲 28 27 26 25 24 23 22 21 Q1 MMBTA93 5.6 整体电路: P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 32 33 34 35 36 37 38 39 - 8 -
分享到:
收藏