音乐盒毕业设计.docx
- 文档编号:10656767
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:32
- 大小:157.05KB
音乐盒毕业设计.docx
《音乐盒毕业设计.docx》由会员分享,可在线阅读,更多相关《音乐盒毕业设计.docx(32页珍藏版)》请在冰豆网上搜索。
音乐盒毕业设计
摘要
社会在进步,人们对视觉、听觉方面的享受提出了越来越高的要求。
小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。
本文设计的音乐盒主要运用汇编语言及PC机中的8255A,8253芯片实现音乐的播放。
通过PC机硬件的发声以及软件编译,从而设计制造出一个多功能音乐盒。
本音乐盒共有三首歌曲,当程序开始运行后,在屏幕上会出现欢迎词及歌曲名单,可以按下相应的提示键播放对应的歌曲,播放过程中可以按下任意键停止并返回主菜单。
程序中的乐曲丰富,本文设计的音乐盒体积小,重量轻,不但可以演奏和旋音乐,而且功能多,使用方便,可以批量生产,具有一定的商业价值。
关键词:
音乐盒,汇编语言,8255A,8253
目录
绪论2
1.音乐盒的发音原理3
1.1PC机发声原理3
1.1.1PC机发声系统3
1.1.2发声控制3
1.2音符频率的产生3
1.3节拍频率的产生4
2.硬件原理5
2.18253的原理和结构5
2.1.18253的内部结构5
2.1.28253的控制字6
2.1.38253的工作方式7
2.28255A的原理和结构8
2.2.18255的内部结构8
2.2.28255A的控制字9
2.2.3Intel8255A的方式选择10
3.软件设计11
3.1发声程序原理11
4.设计任务及调试12
4.1设计任务12
4.1.1设计要求12
4.1.2设计思想12
4.2调试12
结束语15
致谢16
参考文献17
附录一程序设计流程图18
附录二源程序代码19
绪论
1.音乐盒的发音原理
1.1PC机发声原理
1.1.1PC机发声系统
PC机发声系统以8253的2号计数器为核心。
系统初始化时,2号计数器工作在“方波发声器”方式,初值为二进制数,写入顺序为先低后高,CLK2为1.193182MHz当计数器初值为533H时,OUT2输出的方波大约为900Hz,经过简单的滤波之后,送至扬声器。
改变2号计数器的记数初值就可以使扬声器发出不同的频率的音响。
1.1.2发声控制
发声系统受8255A芯片(口地址为60H~63H)的两根输出线PB0和PB1的控制,PB0输出的高电平使计数器正常工作,PB1输出高电平打开输出控制门,因此执行下面的OPEN子程序可以打开扬声器,执行下面的CLOSE子程序可以关闭扬声器。
1.2音符频率的产生
在汇编语言的音乐盒设计中需要应用到一定的乐理知识,在此加以介绍PC机中的芯片通过音乐对应的频率来播放乐曲种中不同的音高,然后再通过定义的不同时间去确定乐曲某个音符锁发声的长短。
我们通过一定的表格来表示,更加的清晰,容易查找。
如表1-1所示:
表1-1各音高对应的频率
高音
7
6
5
4
3
2
1
987
880
783
698
659
587
523
中音
7
6
5
4
3
2
1
494
440
392
349
330
294
262
低音
7
6
5
4
3
2
1
247
220
196
175
165
147
131
8253计数器的计数初值与发出声音的频率之间的关系如下关系式:
时钟频率
计数初值=----------------
发出声音的频率
1.3节拍频率的产生
乐谱不仅表示音高同样表示节拍,与汇编语言中的对应关系如下:
表1-2常用音符对应的节拍表
4
7/2
3
5/2
2
100
87
75
62
50
3/2
1
3/4
1/2
1/4
37
25
18
12
6
本表选用250ms作为1拍,则半拍是125ms,程序是以10ms为单位的,所以1拍和半拍的音符,可以通过分别重复执行25次和12次演示程序来得到所需的乐音持续时间。
具体时间可通过延时程序的时间来进行调节。
2.硬件原理
2.18253的原理和结构
2.1.18253的内部结构
图2.18253的内部结构图
Intel8253是一种常用的可编程控制器/计数器接口芯片。
8253具有三个独立的功能完全相同的16位减法计数器,24脚DIP封装,由单一的+5V电源供电。
主要功能:
(1)每片8253上有三个独立的16位减法计数器,最大技术范围为0~65535。
(2)每个计数器上都可按二进制或二一十进制计数
(3)每个通达都有六中不同的工作方式
(4)计数脉冲的频率可达2MHz
(5)输入/输出与TTL兼容
表2-1PC机的端口地址
/cs
/wr
/rd
A1
A0
操作功能
PC机口地址
0
0
1
0
0
计数初值写入计数器0
40H
0
0
1
0
1
计数初值写入计数器1
41H
0
0
1
1
0
计数初值写入计数器2
42H
0
0
1
1
1
写入控制字寄存器
43H
0
1
0
0
0
读计数器0当前计数值
40H
0
1
0
0
1
读计数器1当前计数值
41H
0
1
0
1
0
读计数器2当前计数值
42H
在8253的使用中/cs、/wr、/rd、A1和A0决定着PC机口地址的,选择相应的功能
2.1.28253的控制字
D7
D6
D5
D4
D3
D2
D1
D0
图2-28253的控制字
8253控制字的各位的详细意义如下:
D7、D6用于选择工作的计数器
D7D6=00:
选择计数器0工作;
D7D6=01:
选择计数器1工作;
D7D6=10:
选择计数器2工作;
D7D6=11:
无效。
D5、D4规定读/写操作格式或类型。
D5D4=00:
计数器锁存命令,把写本命令时的当前计数器值,以便以后读写;
D5D4=01:
8位计数器,只写低位字节,高位字节自动为0;
D5D4=10:
16位技术,只写高位字节,地位字节自动为0;
D5D4=11:
16位计数器,先写低位字节,后写高位字节。
D3、D2、D1用于选择工作方式。
D3D2D1=000:
使计数器工作于方式0;
D3D2D1=001:
使计数器工作于方式1;
D3D2D1=010:
使计数器工作于方式2;
D3D2D1=011:
使计数器工作于方式3;
D3D2D1=100:
使计数器工作于方式4;
D3D2D1=101:
使计数器工作于方式5。
D0是计数器俺二进制计数或二十一进制(BCD码)计数。
D0=0:
按二进制计数;
D0=1:
按二十一进制计数。
2.1.38253的工作方式
1方式0:
计数到零可申请中断
2方式1:
可编程单拍脉冲
3方式2:
N分频器
4方式3:
方波速率发生器
5方式4:
软件触发选通
6方式5:
硬件触发选通
7六种工作方式小结
上面已经分别介绍了Intel8253可编程定时器/计数器接口芯片的六种工作方式,下面再对它们的共同点和不同点进行简单总结。
1)OUT的输出波形
在六种工作方式中,只有方式0在写入控制字后,OUT输出为低电
其他五种方式OUT输出都为高电平。
方式2、方式4和方式5都是输出宽度为一个CLK周期的负脉冲,输出波形相同,但方式2是连续工作的,方式4是由软件出发的,方式5是由硬件门控制脉冲触发的。
计数初值和输出的波形有很大的关系。
2.28255A的原理和结构
2.2.18255的内部结构
由图可知,8255A由以下几个部分组成:
1.数据端口A、B、C
8288A有三个8位的数据端口:
端口A、端口B、端口C。
可用程序把它们设计成输入端口或输出端口。
端口A:
端口A包含一个8位的数据输入锁存器和一个8位的数据输出锁存器/缓冲器。
因此,不管用端口A作输入口还是输出口,数据均能受到锁存。
端口B:
端口B包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器/缓冲器。
因此,端口B作输入口时,数据不能受到锁存;端口B作输出口时,数据能受到锁存。
端口C:
端口C包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器/缓冲器。
因此,端口C与端口B一样,作输入口时数据不受锁存,作输出口数据能受到锁存。
2.A组控制、B组控制
这两组控制电路,用来接收来自CPU和读/写控制逻辑电路发来的控制字和读/写信号,实现对8255A的数据端口的读/写控制。
其中,A组控制电路控制端口A和端口C的高四位的工作方式和读/写控制;B组控制电路控制端口B和端口C的低四位的工作方式和读/写控制。
3.读/写控制逻辑
读/写控制逻辑控制8255A的数据传输。
它接收来自系统地址总线的A1、A0、地址译码输出的片选信号和系统控制总线的信号,将这些信号进行组合后,得到A组控制和B组控制的控制命令,从而实现数据的传输。
4.数据总线缓冲器
这是一个双向的8位数据缓冲器,可直接与系统的数据总线相连,用来传送输入数据、输出数据以及CPU发给8255A的控制信息。
2.2.28255A的控制字
C端口置1置0控制字:
端口C的数位常常作为控制位来使用,所以,在设计8255A芯片时,应使端口C中的各位可以用置1置0控制字来单独设置。
其具体格式如下图所示。
重要说明:
C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。
2.2.3Intel8255A的方式选择
通过对方式选择控制字的方式分析可以知道:
端口A可以工作于方式0、方式1、方式2工三种方式,可以作为输入端口或输出端口;
端口B可以工作于方式0、方式1两种方式,可以作为输入端口或输出端口;
端口C可分为高四位(PC7~PC4)和低四位(PC3~PC0),可分别设置成输入端口或输出端口;端口C的高四位与端口A配合组成A组,端口C的低四位与端口B配合组成B组。
D7=1表明是设定方式选择控制字。
表3-18255的端口地址
A1
A0
/RD
/WR
/CS
操作功能
0
0
0
1
0
读端口地址A
0
1
0
1
0
读端口地址B
1
0
0
1
0
读端口地址C
0
0
1
0
0
写端口地址A
0
1
1
0
0
写端口地址B
1
0
1
0
0
写端口地址C
1
1
1
0
0
写方式控制字
X
X
X
X
1
无操作(高阻抗)
X
X
1
1
0
无操作(高阻抗)
1
1
0
1
0
非法状态
3.软件设计
3.1发声程序原理
;打开扬声器子程序
openproc
pushax
inal,61h
oral,03h
out61h,al
popax
ret
openendp
;关闭扬声器子程序
closeproc
pushax
inal,61h
andal,0fch
out61h,al
popax
ret
closeendp
4.设计任务及调试
4.1设计任务
用汇编语言编程来实现一个简单的音乐盒功能。
4.1.1设计要求
功能要求:
1、程运行后首先在屏幕上显示出乐曲菜单。
2、用键盘输入相应的提示键选择相应的音乐后,便开始播放原先编制好的音乐。
3、输入错误时要有适当提示,并允许重新输入。
4、音乐播放过程中可按任意键停止播放,并回到主菜单。
4.1.2设计思想
首先进入DOS系统,运用masm,link软件对其汇编,链接。
汇编链接成功后,进入程序的初始界面,然后运用1号功能检测键盘的输入,并选择相应的操作,若是无效操作则选取相应的提示,反则播放对应的乐曲,播放过程中,可以按任意键停止并回到初始状态。
4.2调试
程序的初始页面,见图4.2.1
图4.2.1
当我们输入“1”时,名为“songbie”的歌曲开始响起,同时窗口的提示也发生了变化,具体如下提示:
图4.2.2音乐播放图
当输入错误的代码时,会有相应的提示,同时窗口提示信息放大如下:
图4.2.3输入错误提示信息
在播放歌曲过程中,按下任意键歌曲会暂停并回到主菜单,如,播放歌曲“pengyou”时,按下“d”键,则会出现以下提示:
图4.2.4“pengyou”歌曲播放中
图4.2.5按下任意键回到主菜单
如果我们输入“Q”时,程序就推出了:
结束语
经过这段时间的努力奋斗,这次的毕业设计即将完成。
课程的设计让我了解到编写程序时必须很细心。
此次课程设计使我感受颇深,以下是我总结的几个方面:
这次做论文的经历会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是自己真正的学习过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
自此之前,自己学习的理论知识面不够广。
通过这次毕业设计,使我第一次系统性的回顾了之前所学的所有课程内容。
从中我懂得了所学知识的重要性,知识掌握的越多,设计的作品功能也就越强大。
希望这次的经历能让我在以后的学习中激励我继续进步。
我经过这次系统的毕业设计,大致地了解了对以设计进行系统研究、设计及制作的全过程。
这些认识使我在将来的工作和学习当中都会有很大的帮助。
在以后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识补充最新的知识。
毕业设计培养了严肃认真和实事求是的科学态度,而且培养了吃苦耐劳的精神以及严谨的作风,提高了交流沟通和团体写作能力,这对我以后的工作都有非常大的帮助的。
虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。
当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。
我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
致谢
经过近一段时间的忙忙碌碌,这次基于汇编的音乐盒设计就要接近尾声了。
在这次的汇编课程设计过程中,无论是在理论学习阶段,还是在设计选题、查询资料和撰写的每一个环节,我都得到了许多人的悉心指导和帮助。
尤其要感谢我的论文指导老师------唐民丽老师,谢谢您这段时间对我的指导和帮助。
在闲聊中她总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面她也总会以“专业标准”严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,唐老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨,热忱鼓励。
正是在唐老师的无私指导和鼓励下,我的设计书才能更快的顺利完成。
另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。
在此,向帮助和指导过我的各位老师表示崇高的敬意和衷心的感谢!
感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版过程中提供热情的帮助。
正是由于你们的帮助和支持,我才能一个一个克服困难、解明疑惑,直至本文顺利完成,在这里请接受我诚挚的谢意。
谢谢我的父母,没有他们辛勤的付出也就没有我的今天,在这一刻,将最崇高的敬意献给你们!
在未来的日子里,我会更加努力的学习和工作,不辜负父母对我的殷殷期望!
感谢这篇论文所涉及到的各位学者。
本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。
在此,向各学术界的前辈们致敬!
在论文即将完成之际,我的心情无法平静。
相信等待我的是一片充满机遇、风险与快乐的土地;也相信我和同仁们的事业必将如涅磐之凤、浴火之凰;更加相信,不朽的民族精神终将引领我们创造新的奇迹!
参考文献
[1]陈章龙,陈泽文.IBM-PC机软硬件接口及实验.北京:
人民邮电出版社,1993
[2]邵时.微机接口技术.北京:
清华大学出版社,2000
[3]贾世文.USB2.0硬件设计.北京:
清华大学出版社,2002
[4]钱晓捷,陈涛等.微型计算机原理及接口技术.北京:
机械工业出版社,1999
[5]刘乐善,欧阳星明,曹计昌等.微型计算机与接口技术.武昌:
华中科技大学出版社,2001
[6]马平,姚文业,王炳谦.微机原理及应用.北京:
中国电力出版社,2002
[7]艾德才,姚佳康,龚涛.微机接口技术实用教程.北京:
清华大学出版社,2002
[8]刘星等.计算机接口技术.北京:
机械工业出版社,2003
[9]李广军,王厚军.实用接口技术.成都:
电子科技大学出版社,1997
[10]丁辉.汇编语言程序设计.北京:
电子工业出版社,2001
[11]陈伟芳.汇编语言程序设计实训教程.北京:
科学出版社,2004
附录一程序设计流程图
附录二源程序代码
发声程序代码:
datasegment
lab0db'$'
lab1db'---mynameisliangbo.From301classofelectronicinformation.No2009060121!
---$'
lab2db'----------------------Welcomeyou!
Pleaseselectasong:
----------------------$'
lab3db'1.songbie$'
COUNT1equlab3
lab4db'2.buxiangzhangda$'
COUNT2equlab4
lab5db'3.pengyou$'
COUNT3equlab5
lab6db'Q.exit$'
lab7db'pleaseinputrightsongcodename$'
lab8db'themusichasbeginthatyouchoice$'
lab9db'themusicwasend,pleasechoosetheanother$'
mus_freq1dw392,330,392,523
dw440,523,392
dw392,262,294,330
dw294,262,294
dw392,330,392,523,494
dw440,523,392
dw392,294,330,349,247,262
dw440,523,523
dw494,440,494,523
dw440,494,523,440,440,392,330,262,294
dw392,330,392,523,494,440,523,392
dw392,294,330,349,247,262
dw-1
mus_time1DW25,13,13,50
dw2DUP(25),50
dw25,13,13,25
dw13,13,100
dw25,13,13,38,13
dw2DUP(25),50
dw25,13,13,38,13,100
dw2DUP(25),50
dw25,13,13,50
dw8DUP(13),100
dw25,13,13,38,13,25,25,50
dw25,13,13,38,13,100
mus_freq2dw220,330,330,330,294,330,294,262,220,220
dw330,330,349,330,294,220
dw294,294,294,294,294,262,247,262
dw294,294,330,294,262,220
dw392,392,392,392,392,349,330,349
dw392,392,440,392,349,349
dw440,440,440,440,440,392,349,294
dw330,330,330,349,330,330,220
dw330,330,330,294,330,294,262,220,220
dw330,330,349,330,294,220;50
dw294,294,294,294,294,262,247,262
dw294,294,330,294,262,220
dw392,392,392,392,392,349,330,349
dw392,392,440,392,349,349
dw8DUP(440)
dw494,494,494,523,494,494
dw349,330,330,349,330,330,349,330,330,523,523,494,440,440,392,349,349,330,294
dw330,294,294,330,294,294,330,294,294,494,494,440,392,392,349,330,330,294,262
dw349,330,330,349,330,330,349,330,330,523,523,494
dw440,440,494,523,494,523,587,440,494
dw523,523,523,440,494,523,523,523,440,523
dw494,494,494,440,494
dw-1
mus_time2dw13,13,13,13,7,7,13,13,13,13
dw13,13,13,13,38,13
dw13,13,13,13,13,13,13,13
dw13,13,13,13,38,13
dw13,13,13,13,13,13,13,13
dw13,13,13,13,38,13
dw13,13,13,13,13,13,13,13
dw13,13,13,13,13,13,25,13
dw13,13,13,7,7,13,13,13,13
dw13,13,13,13,38,13
dw13,13,13,13,13,13,13,13
dw13,13,13,13,38,13
dw13,13,13,13,13,13,13,13
dw13,13,13,13,38,13
dw8DUP(13)
dw5DUP(13),25
dw7,7,13,7,7,13,7,7,13,25,7,7,13,7,7,13,7,7,38
dw7,7,13,7,7,13,7,7,13,25,7,7,13,7,7,13,7,7,38
dw7,7,13,7,7,13,7,7,13,25,7,7
dw13,7,7,13,7,7,38,7,7
dw13,13,13,7,7,13,13,13,7,7
dw13,13,13,13,38
mus_freq3dw294,330,262,294,330,294,330,392,440,392,330,330
dw294,330,262,294,330,196,294,330,294,220,262,262,262
dw294,330,262,294,330,262,294,330
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐盒 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)