解析单片机课程设计 数字音乐盒
单片机最小系统设计
一、本人专业从事电子设计,电子产品复制,电子产品功能破解,设计,毕业论文设计,程序编写,扣扣:一六三四一八九二三八 电子产品功能猜测,加密解密更多相关资料请加扣扣:一六三四一八九二三八
单片机课程设计
课程设计题目: 数字音乐盒
课程设计组: 计算机科学与技术(网络方向)专业
0601班 第1组
课程设计组成员:吉彩霞(2006100102)
李 磊(2006100116)
肖海燕(2006100126)
王 臻(2006100138)
单片机最小系统设计
2009年11月
数字音乐盒
摘要:本文是应用AT89S51单片机原理和控制理论来设计音乐盒的硬件电路,并利用C51单片机语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐,再利用延迟来控制发音时间的长短。该程序通过把乐谱转化成相应的定时常数来驱动发音设备演奏出悦耳动听的音乐。这种控制电路结构简单,可靠性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。对单片机和音乐爱好者有一定的借鉴价值。
关键词:AT89C51单片机 音乐盒 C51语言
一、 方案的设计与论证
1.方案设计
方案1:
用四个按键控制音乐的播放。3个按键选择3首不同的音乐播放,另一个按键控制音乐的停止。按下播放键,用一点简单的控制之后,才开始播放音乐。比如,用定时器控制,亮灯倒计时10秒然后触发音乐播放。
方案2:
用4*4小键盘来实现音乐的选择播放,1~A按键控制播放10首音乐,C~F按键分别实现欢迎页面、上一首、下一首、停止播放。
方案3:
为了充分利用实验板的功能,进一步扩充音乐盒的功能。设计开机时用七段显示数码管LED显示英文欢迎提示字符HELLO,播放时显示歌曲序号。一个按键控制播放音乐,按下一次按键播放一首歌曲,另外三个按键分别实现上一首、下一首、暂停。考虑到实验的复杂度和时间上的局限,不再使用亮灯倒计时10秒才出发播放的构思。使用方案三。
2.方案论证
1) 在方案1中,共用了4个按键,其中3个按键控制播放3首音乐,另一
个键控制音乐播放的停止。但是我们却只能选择3首音乐,局限性太强
了。
单片机最小系统设计
2) 在方案2中,由于个人所学知识有限、实践经验太少等原因,我们仅实
现了歌曲的播放、开机画面、停止,未能实现歌曲的上一首、下一首选
择播放。由于
二、 单片机控制电路的设计
本设计中用到了89C51单片机,4*4键盘,蜂鸣器,16*2 LCD,七段显示数码管LED。
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。也可在LED显示歌曲号。
(1) 硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。
(2) 用P0.0~P0.7,P2.0~P2.7控制LED,其中P0.0~P0.7控制七段码a,b,c,d,e,f,g,用P2.0~P2.7为数码管位选信号。
(3) 用,P2.0~P2.2作为LCD的RS,R/W,E的控制信号。用P0.0~P0.7作为LCD的D0~D7的控制信号。
(4) 用P3.7口控制蜂鸣器。
(5) 电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。
单片机最小系统设计
三、 软件实现
音乐产生的方法:
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表4.1所示:
表4.1 高中低音符与单片机计数T0相关的计数值
音符 频率(HZ) 简谱码(T值) 音符 频率(HZ)
低1 DO 262 63628 # 4 FA# 740
#1 DO# 277 63731 中 5 SO 784
低2 RE 294 63835 # 5 SO# 831
#2 RE# 311 63928 中 6 LA 880
低 3 M 330 64021 # 6 932
低 4 FA 349 64103 中 7 SI 988
# 4 FA# 370 64185 高 1 DO 1046
低 5 SO 392 64260 # 1 DO# 1109
# 5 SO# 415 64331 高 2 RE 1175
低 6 LA 440 64400 # 2 RE# 1245
# 6 466 64463 高 3 M 1318
低 7 SI 494 64524 高 4 FA 1397
中 1 DO 523 64580 # 4 FA# 1480
# 1 DO# 554 64633 高 5 SO 1568
中 2 RE 587 64684 # 5 SO# 1661
简谱码(T值) 64860 64898 64934 64968 64994 65030 65058 65085 65110 65134 65157 65178 65198 65217 65235
单片机最小系统设计
# 2 RE# 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 # 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283
如表4.2所示:音乐的音拍,一个节拍为单位(C调)
表4.2 音乐的音拍
对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。发音部分代码在程序中实现,靠单片机的一个管脚输出,考虑到声音可能不够大所以我们加入了功放电路,利用LM386来对声音信号进行放大。音频输出信号由ADU OUT引出,信号可经功放电路LM386输出到扬声器或耳机。电路如图4-1所示。
图1-6放音电路
流程图如图1-7所示:
单片机最小系统设计
图1-7流程图
单片机最小系统设计
四、 测试结果
1.使用说明:
键盘如下:
K1:开始,显示HELLO欢迎画面
K2:结束,停止播放,并且LED左右来回移动
K3:下一首歌曲(共有6首歌曲)
K4:上一首歌曲
2.程序调试中出现的问题及解决的办法:
1) 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最
后我们发行是因为程序中有的指令书写得不规范导致的。
2) 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
3) 编程过程中要注意加注释或分割线,否则,在程序过长时容易变得
很乱,不便于查找或更改。
4) 程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序
更加清晰化。
5) 编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思
路完全可以按着MP3的工作方式列写流程图。
6) LCD计时正常显示的解决办法:
a. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时
器1设定在方式3,计250us,由于定时中断过于频繁,使CPU负
载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:
将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改
观。但还有问题。
b. 当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,
LCD显示和音乐播放都会好一些。
c. 另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,
托因时间较长,当定时器T1此时来中断时,就会对歌曲播放产生
影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果
变差。
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




