《数字音乐盒》设计报告.docx
《《数字音乐盒》设计报告.docx》由会员分享,可在线阅读,更多相关《《数字音乐盒》设计报告.docx(26页珍藏版)》请在冰豆网上搜索。
《数字音乐盒》设计报告
《微机原理与接口技术》课程设计
题目:
数字音乐盒
院别:
机电学院
专业:
机械电子工程
姓名:
冯志明
学号:
2008094243039
组员:
刘如杰、程章齐、张炎龙
指导教师:
杨永
日期:
2010.12.13~2010.12.24
设计题目:
数字音乐盒
摘要
本设计设计数字音乐盒播放系统,包括扬声器的选择、电路的设计与调试、软件的设计与调试、实品的焊接与调试,实现数字音乐盒按预定的歌曲进行播放,同时在LED上显示正在播放的曲号,还可以进行自由选歌,系统地阐述了整个数字音乐盒的设计过程。
在系统控制中采用外0中断法对键盘进行扫描,克服了采用定时扫描键盘的一些缺点,通过外0中断扫描键盘,实现音乐盒CPU资源大大地节省,系统用扬声器替代传统的蜂鸣器,用2N2905三极管来实现驱动,使音曲变得优雅动听。
关键词:
数字音乐盒;扩音技术;中断法扫描键盘;中断返回延迟;自由选歌
4.1建立曲谱编码表
1系统设计分析
1.1设计要求
1)以单片机为核心器件组成一个音乐盒。
2)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。
3)音乐盒音符范围,C调低音5——高音5。
4)内部存放十二首可以播放的歌曲。
5)利用键盘选择歌曲,每个按键对应不同的歌曲,还应有停止、上一曲,下一曲功能的按键。
6)采用LED显示歌曲序号
1.2总体设计
选择89C51单片机。
7)用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列
8)用P0.0~P0.7控制LED,显示数字0~9及字母ABCF
9)用P3.7口控制蜂鸣器
10)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf
11)采用上电自动复位
2硬件电路设计及实现
音乐盒的硬件电路由6部分组成:
单片机、时钟与复位电路、选择按键输入电路、音频发生器、音频放大器和扬声器。
音乐盒的硬件电路设计框图如图1-1:
图1-1音乐盒硬件电路设计框图
利用单片机内部定时器/计数器0与P3.7引脚配合,构成音频发生器,2N2905与R2组成音频放大器,驱动扬声器输出。
选择按键通过P1引脚接入,工作在中断方式。
器件的参数选择可以参考硬件电路原理图中给出的值。
音乐盒硬件电路原理图如图1-2
图1-2音乐盒硬件电路原理图
¼
3:
音符频率和节拍的产生方法
3.1音符频率
我们知道,之所以有不同的音调正是因为不同的音符对应不同的频率。
表1-3给出了我们从低音1到高音7所对应的频率。
即在编程时我们要根据音调的变化调整频率的变化。
3.2利用定时器/计数器0产生音符频率
利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。
改变计数初值就可以改变频率。
即要产生音频输出方波,首先要算出某一个音频的周期(1/f),然后将此周期除以2,得到半个周期的时间。
定时器的定时时间等于半个周期,定时时间到就将输出脉冲取反,重复上述过程,就可以在P3.7脚上得某一音频的脉冲。
例如:
中音1(DO)的频率=523Hz,周期T=1/523s=1912毫秒;
定时器/计数器0的定时时间为:
T/2=956毫秒;
定时956毫秒的计数值=定时时间/机器周期=956毫秒/1毫秒=956(时钟频率=12MHz)
装入TH0、TL0的计数初值THTL=65536-956=64580.
将64580装入TH0、TL0寄存器中,启动T1工作后,每计数956次时将产生溢出中断,进入中断服务程序是,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523Hz)的音符频率。
表1-3音符与频率、编码及定时器初值对应表
3.3编码及计数初值
通过上面的分析可见,为了产生音符,必须求出音符低音1到高音7的所有计数初值。
例如:
C调的低音DO的THTL=65536-500000/262=63627,
中音DO的THTL=65536-500000/523=64580,
高音DO的THTL=65536-500000/1047=65059.
为了编码记谱的方便,我们对它们进行了简单的音符编码,也记在在了表1-3中,在编程时,歌曲的音符用音符编码记谱,然后根据音符编码查找对应的计数初值。
3.4节拍的产生
音乐中的节拍用延时时间产生。
例如:
1拍=0.4s,1/4拍=0.1s,以此类推;假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的就是它的整数倍。
如表1-4所示。
为了记谱方便,将节拍数也进行了编码。
表1-4节拍与节拍编码对照表
由于不同的音乐每小节的拍数不同,可以适当调节一个延时时间的长度。
如表1-5所示。
乐谱节拍
1/4拍的延时时间/ms
乐谱节拍
1/8拍的延时时间/ms
4/4
125
4/4
62
3/4
187
3/4
94
2/4
250
2/4
125
表1-5乐谱节拍与1/4拍的延时时间对照表
4:
音乐程序设计
建立了音符编码和节拍编码后,在编程时,每个音符占用一个字节,高4位是音符编码,低4位是节拍编码。
根据上述原则建立乐谱编码表,以及按照音符顺序对应的THTL值表TABLE在程序运行的过程中顺序取出乐曲编码,然后查表找到对应的THTL值。
4.1、建立曲谱编码表
1)按照音符的顺序建立定时器0的计数初值表。
表的首地址位TABLE,表TABLE的内容是C调音符低音5—高音5的计数初值。
TABLE:
DW62991,63268,63515,63631,63838,64023
DW64107,64264,64402,64526,64584,64687
2)歌曲《世上只有妈妈好》的简谱如下图所示,根据曲谱并按照音符编码写出曲谱编码表FIRST3,高4位是音符编码,低4位是节拍编码。
例如:
音符“5”的音符编码为“8”,见图1-6.
DB96H,82H,64H,84H,0B4H,92H,82H,98H
DB64H,82H,92H,84H,64H,42H,22H,82H,62H,58H
DB56H,62H,84H,82H,92H,64H,54H,48H
DB86H,62H,52H,42H,22H,42H,1CH,00
图1-6《世上只有妈妈好》简谱图
参考文献
1江力.单片机原理与应用技术.北京:
清华大学出版社,2006
2韩志军.单片机应该系统设计:
入门向导与设计实例.北京:
机械工业出版社,2005
.
¼
课程设计总结
1)课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
2)回顾起此次单片机课程设计,真可谓是感慨颇多。
的确,其实我们很早就在考虑设计这事,最先要解决的就是选题问题,这决定着你课程设计周要努力的方向,我们经过强烈的讨论,慎重的分析,最终决定做有相当挑战性的音乐盒。
定稿之后,紧张而又从满挑战和乐趣的设计开始了,我们先从图书馆借来了资料,又从网上寻找一切对我们有帮助的信息,从发声原理,到程序设计;从绘制原理图,到焊制电路板,我们倾注了前所未有的热情和心血。
从选题到定稿,从理论到实践,在接近一个星期的日子里,可以说得是苦多于甜。
经过了本学期的刻苦学习,已经对单片机的理论知识有了相对广泛的了解和掌握,可对单片机的硬件设计,软件设计掌握的深度还不够,但通过此次课程设计,真的学到了很多很多的的东西:
首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写单片机的大程序,很有成就感;同时也更加体会到了团队合作的重要性!
¼
公司及产品简介
新人力技术产品开发有限公司(广州热)一直以打造用户回头率最好的数码产品为使命,长期以来同各数码公司保持了良好的交流,并付出了大量艰辛的努力。
现在终于推出了本公司的第一款产品——音乐盒,一定会获得开门红的成功。
实力雄厚,金枪后盾:
新人力技术产品开发有限公司拥有很强大的科研部和技术部,成员不尽可以独挡一面的对公司产品进行设计,还可以扮演多面手的角色。
基于工作人员都具备很好的专业知识和实操能力,此外还有工作工程的合作,本公司雄厚的综合实力在数码领域的全方位发展奠定了良好基础。
精英团队,稳步发展:
我们拥有丰富的人力资源,主要类型有学术研究,软件开发,管理信息技术,图形技术,市场营销等。
公司目前拥有骨干四名,同时扮演着员工角色,其中都是本科生。
公司在产品开发和设计时查阅了不少专家的相关著作和论文,令我公司在科研,开发和市场营销以及售后服务等方面齐头并进。
持续创新,系列服务:
经过很艰辛的努力,我们已经取得了一定的成果,并将在接下来的一段时间推出由本公司自主研发的音乐盒。
同时,我们还会为用户提供相关的技术服务,方案制作和系统开发的服务。
全力以赴,服务用户:
为配合国内加入WTO,促进国内数码和电子的产业的正版化,信息化的进程,我们将会把研发出的产品引入内地省份,通过已开拓的市场,形成规模庞大的销售和服务网络,定会逐步走向高端。
随着我们研发的音乐盒被越来越多的用户认可,我们坚信在推动正版化,信息化的进程中一定会发挥着越来越显著的作用。
音乐盒简介:
我们自主研发的音乐盒是本公司首次推出的产品,随着音乐盒在各地的广泛推广,拥有大量的客户群。
很多公司自然也会对它进行相应的投入,基于如此的竞争,我们本次研发的音乐盒本身具备其他公司推出产品望其项背的优越性。
首先是从程序上来说,本公司的产品可以同时烧录十六首歌曲;这位客户提供了一个选择的余地,还无疑问的亮点将会赢来客户的青睐!
其次,该音乐盒中的歌曲可以随时切换,具备上一曲,下一曲,停止等其他音乐盒不具备的优势;最后的新奇则是,用户可以得到我们良好的售后服务,期间我们可以根据客户的喜好为之改程序换为其喜爱的歌曲。
参照市场当前音乐盒的价位,稍好点的音乐盒都近三位数的人民币,我公司研发的音乐盒成本不过四十,然而具备很多其他同类产品没拥有的优势。
相信在市场上推出一定会获得大获全胜的佳绩!
附录程序清单
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT00
ORG000BH
LJMPT0SEV
ORG0050H
MAIN:
MOVTMOD,#01H
MOVIE,#83H
CLRIT0
MOVP0,#3FH
MOVP1,#0F0H
MOVR6,#00H
KS:
MOVR1,#00H
N0:
MOVR0,#00H
NEXT:
CJNER1,#00H,KS
CJNER6,#00H,A0
SJMPNEXT
A0:
CJNER6,#0FH,A1
SJMPNEXT
A1:
CJNER6,#01H,A2
MOVDPTR,#FIRST1
SJMPBF
A2:
CJNER6,#02H,A3
MOVDPTR,#FIRST2
SJMPBF
A3:
CJNER6,#03H,A4
MOVDPTR,#FIRST3
SJMPBF
A4:
CJNER6,#04H,A5
MOVDPTR,#FIRST4
SJMPBF
A5:
CJNER6,#05H,A6
MOVDPTR,#FIRST5
SJMPBF
A6:
CJNER6,#06H,A7
MOVDPTR,#FIRST6
SJMPBF
A7:
CJNER6,#07H,A8
MOVDPTR,#FIRST7
SJMPBF
A8:
CJNER6,#08H,A9
MOVDPTR,#FIRST8
SJMPBF
A9:
CJNER6,#09H,A10
MOVDPTR,#FIRST9
SJMPBF
A10:
CJNER6,#0AH,A11
MOVDPTR,#FIRST10
SJMPBF
A11:
CJNER6,#0BH,A12
MOVDPTR,#FIRST11
SJMPBF
A12:
CJNER6,#0CH,A13
MOVDPTR,#FIRST12
SJMPBF
A13:
SJMPN0
BF:
MOVA,R0
MOVCA,@A+DPTR
MOVR2,A
CJNEA,#00,NEXT1
CLRTR0
SJMPN0
NEXT1:
MOVA,R2
ANLA,#0FH
MOVR5,A
MOVA,R2
SWAPA
ANLA,#0FH
JNZSING
CLRTR0
SJMPD1
SING:
DECA
RLA
MOV22H,A
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVTH0,A
MOV21H,A
MOVA,22H
ADDA,#1
MOVCA,@A+DPTR
MOVTL0,A
MOV20H,A
SETBTR0
D1:
LCALLDELAY
CLRTR0
INCR0
LJMPNEXT
DELAY:
MOVR7,#03
D2:
MOVR4,#250
D3:
MOVR3,#50H
D30:
DJNZR3,D30
DJNZR4,D3
DJNZR7,D2
DJNZR5,DELAY
RET
INT00:
PUSHACC
PUSHDPH
PUSHDPL
CLRTR0
LCALLKEY
POPDPL
POPDPH
POPACC
RETI
T0SEV:
PUSHACC
PUSHPSW
CLRTR0
MOVTL0,20H
MOVTH0,21H
CPLP3.7
POPPSW
POPACC
SETBTR0
RETI
;--------------------
;键盘扫描
;--------------------
KEY:
MOV30H,#00H
MOV31H,#00H
MOV32H,#00H
MOV33H,#00H
MOV34H,#00H
MOV35H,#00H
MOV36H,#00H
MOV37H,#00H
L1:
MOV33H,#0F7H
MOV31H,#00H
L2:
MOVA,33H
MOVP1,A
MOVA,P1
MOV34H,A
SETBC
MOV35H,#4
L3:
RLCA
JNCKEYIN
INC31H
DJNZ35H,L3
MOVA,33H
SETBC
RRCA
MOV33H,A
JCL2
LJMPTC
KEYIN:
MOV37H,#60
L4:
MOV36H,#248
DJNZ36H,$
DJNZ37H,L4
L5:
MOVA,P1
XRLA,34H
JZL5
MOVA,31H
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV31H,A
MOVDPTR,#GYBM
MOVCA,@A+DPTR
MOVP0,A
NOP;有时数码管好像来不及显示一下,所以延时一下,结果就可以了
NOP
NOP
MOVA,31H
CJNEA,#0DH,B0
CJNER6,#00H,B4
MOVR6,#0CH
MOVP0,#39H
SJMPB2
B4:
CJNER6,#0FH,B5
MOVR6,#0CH
MOVP0,#39H
SJMPB2
B5:
DECR6
MOVA,R6
MOVDPTR,#GYBM
MOVCA,@A+DPTR
MOVP0,A
SJMPB2
B0:
CJNEA,#0EH,B1
CJNER6,#0CH,B3
MOVR6,#00H
MOVP0,#3FH
SJMPB2
B3:
CJNER6,#0FH,B6
MOVR6,#01H
MOVP0,#06H
SJMPB2
B6:
INCR6
MOVA,R6
MOVDPTR,#GYBM
MOVCA,@A+DPTR
MOVP0,A
SJMPB2
B1:
MOVR6,A;把键值存在R6好在主程序里读到
B2:
MOVR1,#01H;把R1作标志位,说明要重新开始放另一首歌了
LJMPTC
TAB:
DB0CH,0DH,0EH,0FH
DB08H,09H,0AH,0BH
DB04H,05H,06H,07H
DB00H,01H,02H,03H
;-------------------------
;共阴数码管编码
;-------------------------
GYBM:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
TC:
MOVP1,#0F0H
RET
;---------------------------
;THTL编码
;---------------------------
TABLE:
DB0F6H,6FH,0F7H,24H,0F8H,1BH,0F8H,8FH
DB0F9H,5EH,0FAH,17H,0FAH,6BH,0FBH,08H
DB0FBH,92H,0FCH,0EH,0FCH,4BH,0FCH,0AFH
DB0FDH,0CH,0FDH,36H,0FDH,84H,0FDH,0C9H
;----------------------------
;广技师校歌
;----------------------------
FIRST1:
DB64H,42H,62H,82H,92H,84H,94H,74H,72H,62H,58H
DB0A6H,42H,54H,84H,82H,72H,72H,82H,58H
DB62H,72H,84H,72H,62H,94H,92H,72H,72H,62H,58H
DB0A6H,42H,54H,74H,62H,52H,82H,52H,44H,44H,9CH
DB82H,72H,8CH,04H,86H,92H,84H,72H,82H,6CH
DB94H,7AH,62H,52H,62H,7CH,04H,56H,52H,0A4H,94H,8CH
DB44H,9CH,82H,72H,8CH,04H,86H,92H,84H,72H,82H,6CH,04H
DB52H,62H,74H,08H,62H,52H,94H,08H,0A6H,82H,54H,52H,62H,52H,4AH
DB00
;---------------------------
;生日快乐
;---------------------------
FIRST2:
DB82H,82H,94H,84H,0B4H,0A8H
DB82H,82H,94H,84H,0C4H,0B8H
DB82H,82H,0F4H,0D4H,0B4H,0A4H,98H
DB0E2H,0E2H,0D4H,0B4H,0C4H,0B8H
DB00
;---------------------------
;世上只有妈妈好
;---------------------------
FIRST3:
DB96H,82H,64H,84H,0B4H,92H,82H,98H
DB64H,82H,92H,84H,64H,42H,22H,82H,62H,58H
DB56H,62H,84H,82H,92H,64H,54H,48H
DB86H,62H,52H,42H,22H,42H,1CH,00
;---------------------------
;同一首歌
;---------------------------
FIRST4:
DB18H,44H,54H,66H,72H,64H,44H,58H,44H,24H,4FH,02H
DB18H,44H,54H,64H,62H,72H,84H
DB44H,76H,62H,84H,52H,62H,62H,52H,5CH
DB68H,84H,0A4H,0A4H,92H,98H
DB84H,82H,92H,0A4H,92H,82H,6CH,04H
DB76H,72H,84H,94H,84H,72H,62H,58H
DB34H,32H,22H,14H,24H,4CH,04H
DB0B8H,98H,76H,82H,96H,0A4H,0A2H,0A2H,0A4H,92H,82H,6CH,04H
DB0B8H,98H,76H,82H,98H,94H,92H,92H,94H,72H,62H,5CH,04H
DB88H,44H,54H,66H,72H,64H,42H,42H,56H,52H,54H,52H,42H,24H,2CH
DB38H,36H,22H,14H,94H,84H,52H
DB52H,76H,72H,74H,62H,52H,8CH,04H,00
;---------------------------
;月亮代表我的心
;---------------------------
FIRST5:
DB12H,46H,86H,42H,36H,62H,84H
DB82H,96H,0A2H,0B6H,92H,92H,82H,88H
DB62H,52H,46H,42H,44H,62H,52H,46H,42H,44H
DB52H,62H,56H,42H,24H,52H,62H,5CH
DB12H,46H,22H,34H,42H,62H,4CH
DB62H,82H,66H,52H,44H,84H,3CH
DB22H,32H,26H,32H,24H,14H,9CH
DB84H,66H,52H,44H,84H,3CH
DB12H,46H,62H,86H,42H,36H,62H,84H
DB82H,96H,0A2H,0B6H,92H,92H,82H,88H
DB62H,52H,46H,42H,44H,62H,52H,46H,42H,44H
DB52H,62H,56H,22H,34H,42H,52H,4CH,00
;---------------------------
;蜗牛与黄鹂鸟
;---------------------------
FIRST6:
DB82H,84H,82H,84H,62H,82H,44H,94H,88H
DB