音乐盒毕业设计.doc
《音乐盒毕业设计.doc》由会员分享,可在线阅读,更多相关《音乐盒毕业设计.doc(29页珍藏版)》请在三一办公上搜索。
1、 摘要社会在进步,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。本文设计的音乐盒主要运用汇编语言及PC机中的8255A,8253芯片实现音乐的播放。通过PC机硬件的发声以及软件编译,从而设计制造出一个多功能音乐盒。本音乐盒共有三首歌曲,当程序开始运行后,在屏幕上会出现欢迎词及歌曲名单,可以按下相应的提示键播放对应的歌曲,播放过程中可以按下任意键停止并返回主菜单。程序中的乐曲丰富,本文设计的音乐盒体积小,重量轻,不但可以演奏和旋音乐,而且功能多,使用方便,可以批量生产,具有一定的商业价值。关键词:音乐盒,汇编语言,8255A,825
2、3目录绪论21.音乐盒的发音原理31.1 PC机发声原理31.1.1 PC机发声系统31.1.2 发声控制31.2 音符频率的产生31.3 节拍频率的产生42.硬件原理52.1 8253的原理和结构52.1.1 8253的内部结构52.1.2 8253的控制字62.1.3 8253的工作方式72.2 8255A的原理和结构82.2.1 8255的内部结构82.2.2 8255A的控制字92.2.3 Intel 8255A的方式选择103.软件设计113.1发声程序原理114.设计任务及调试124.1设计任务124.1.1设计要求124.1.2设计思想124.2 调试12结束语15致谢16参考文
3、献17附录一 程序设计流程图18附录二 源程序代码19绪论1.音乐盒的发音原理1.1 PC机发声原理1.1.1 PC机发声系统PC机发声系统以8253的2号计数器为核心。系统初始化时,2号计数器工作在“方波发声器”方式,初值为二进制数,写入顺序为先低后高, CLK2为1.193182MHz当计数器初值为533H时,OUT2输出的方波大约为900Hz,经过简单的滤波之后,送至扬声器。改变2号计数器的记数初值就可以使扬声器发出不同的频率的音响。1.1.2 发声控制发声系统受8255A芯片(口地址为60H63H)的两根输出线PB0和PB1的控制,PB0输出的高电平使计数器正常工作,PB1输出高电平打
4、开输出控制门,因此执行下面的OPEN子程序可以打开扬声器,执行下面的CLOSE子程序可以关闭扬声器。1.2 音符频率的产生在汇编语言的音乐盒设计中需要应用到一定的乐理知识,在此加以介绍PC机中的芯片通过音乐对应的频率来播放乐曲种中不同的音高,然后再通过定义的不同时间去确定乐曲某个音符锁发声的长短。我们通过一定的表格来表示,更加的清晰,容易查找。如表1-1所示:表1-1 各音高对应的频率高音7654321987880783698659587523中音7654321494440392349330294262低音76543212472201961751651471318253计数器的计数初值与发出声
5、音的频率之间的关系如下关系式: 时钟频率 计数初值=- 发出声音的频率 1.3 节拍频率的产生乐谱不仅表示音高同样表示节拍,与汇编语言中的对应关系如下:表1-2 常用音符对应的节拍表47/235/22100877562503/213/41/21/4372518126本表选用250ms作为1拍,则半拍是125ms,程序是以10ms为单位的,所以1拍和半拍的音符,可以通过分别重复执行25次和12次演示程序来得到所需的乐音持续时间。具体时间可通过延时程序的时间来进行调节。2.硬件原理2.1 8253的原理和结构2.1.1 8253的内部结构 图2.1 8253的内部结构图Intel 8253是一种常
6、用的可编程控制器/计数器接口芯片。8253具有三个独立的功能完全相同的16位减法计数器,24脚DIP封装,由单一的+5V电源供电。主要功能: (1)每片8253上有三个独立的16位减法计数器,最大技术范围为065 535。(2)每个计数器上都可按二进制或二一十进制计数(3)每个通达都有六中不同的工作方式(4)计数脉冲的频率可达2MHz (5)输入/输出与TTL兼容 表2-1 PC机的端口地址/cs/wr/rdA1A0操作功能PC机口地址00100计数初值写入计数器040H00101计数初值写入计数器141H00110计数初值写入计数器242H00111写入控制字寄存器43H01000读计数器0
7、当前计数值40H01001读计数器1当前计数值41H01010读计数器2当前计数值42H 在8253的使用中/cs、/wr、/rd、A1和A0决定着PC机口地址的,选择相应的功能2.1.2 8253的控制字 D7D6D5D4D3D2D1D0图2-2 8253的控制字8253控制字的各位的详细意义如下:D7、D6用于选择工作的计数器D7D6=00:选择计数器0工作;D7D6=01:选择计数器1工作;D7D6=10:选择计数器2工作;D7D6=11:无效。D5、D4规定读/写操作格式或类型。D5D4=00:计数器锁存命令,把写本命令时的当前计数器值,以便以后读写;D5D4=01:8位计数器,只写低
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.3 8253的工作方式1 方式0:计数到零可
9、申请中断2 方式1:可编程单拍脉冲3 方式2: N分频器4 方式3:方波速率发生器5 方式4:软件触发选通6 方式5:硬件触发选通7六种工作方式小结 上面已经分别介绍了Intel 8253可编程定时器/计数器接口芯片的六种工作方式,下面再对它们的共同点和不同点进行简单总结。1) OUT的输出波形在六种工作方式中,只有方式0在写入控制字后,OUT输出为低电其他五种方式OUT输出都为高电平。方式2、方式4和方式5都是输出宽度为一个CLK周期的负脉冲,输出波形相同,但方式2是连续工作的,方式4是由软件出发的,方式5是由硬件门控制脉冲触发的。计数初值和输出的波形有很大的关系。2.2 8255A的原理和
10、结构2.2.1 8255的内部结构由图可知,8255A由以下几个部分组成:1. 数据端口A、B、C 8288A有三个8位的数据端口:端口A、端口B、端口C。可用程序把它们设计成输入端口或输出端口。端口:端口包含一个位的数据输入锁存器和一个位的数据输出锁存器/缓冲器。因此,不管用端口A作输入口还是输出口,数据均能受到锁存。端口B:端口B包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器/缓冲器。因此,端口B作输入口时,数据不能受到锁存;端口B作输出口时,数据能受到锁存。端口C:端口C包含一个8位的数据输入缓冲器和一个8位的数据输出锁存器/缓冲器。因此,端口C与端口B一样,作输入口时数据不受锁
11、存,作输出口数据能受到锁存。2. A组控制、B组控制这两组控制电路,用来接收来自CPU和读/写控制逻辑电路发来的控制字和读/写信号,实现对8255A的数据端口的读/写控制。其中,A组控制电路控制端口A和端口C的高四位的工作方式和读/写控制;B组控制电路控制端口B和端口C的低四位的工作方式和读/写控制。3. 读/写控制逻辑读/写控制逻辑控制8255A的数据传输。它接收来自系统地址总线的A1 、A0、地址译码输出的片选信号和系统控制总线的信号,将这些信号进行组合后,得到A组控制和B组控制的控制命令,从而实现数据的传输。4. 数据总线缓冲器这是一个双向的8位数据缓冲器,可直接与系统的数据总线相连,用
12、来传送输入数据、输出数据以及CPU发给8255的控制信息。2.2.2 8255A的控制字C端口置1置0控制字: 端口C的数位常常作为控制位来使用,所以,在设计8255A芯片时,应使端口C中的各位可以用置1置0控制字来单独设置。其具体格式如下图所示。重要说明:C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。2.2.3 Intel 8255A的方式选择通过对方式选择控制字的方式分析可以知道:端口A可以工作于方式0、方式1、方式2工三种方式,可以作为输入端口或输出端口;端口B可以工作于方式0、方式1两种方式,可以作为输入端口或输出端口;端口C可分为高四位(PC
13、7PC4)和低四位(PC3PC0),可分别设置成输入端口或输出端口;端口C的高四位与端口A配合组成A组,端口C的低四位与端口B配合组成B组。D7=1表明是设定方式选择控制字。表3-1 8255的端口地址A1A0/RD/WR/CS操作功能00010读端口地址A01010读端口地址B10010读端口地址C00100写端口地址A01100写端口地址B10100写端口地址C11100写方式控制字XXXX1无操作(高阻抗)XX110无操作(高阻抗)11010非法状态3.软件设计3.1发声程序原理;打开扬声器子程序open proc push ax in al,61h or al,03h out 61h,
14、al pop ax retopen endp;关闭扬声器子程序close proc push ax in al,61h and al,0fch out 61h,al pop ax retclose endp 4.设计任务及调试4.1设计任务用汇编语言编程来实现一个简单的音乐盒功能。4.1.1设计要求功能要求:1、程运行后首先在屏幕上显示出乐曲菜单。2、用键盘输入相应的提示键选择相应的音乐后,便开始播放原先编制好的音乐。3、输入错误时要有适当提示,并允许重新输入。4、音乐播放过程中可按任意键停止播放,并回到主菜单。4.1.2设计思想首先进入DOS系统,运用masm,link软件对其汇编,链接。汇
15、编链接成功后,进入程序的初始界面,然后运用1号功能检测键盘的输入,并选择相应的操作,若是无效操作则选取相应的提示,反则播放对应的乐曲,播放过程中,可以按任意键停止并回到初始状态。4.2 调试程序的初始页面,见图4.2.1图4.2.1当我们输入“1”时,名为“song bie”的歌曲开始响起,同时窗口的提示也发生了变化,具体如下提示:图4.2.2 音乐播放图当输入错误的代码时,会有相应的提示,同时窗口提示信息放大如下:图4.2.3 输入错误提示信息在播放歌曲过程中,按下任意键歌曲会暂停并回到主菜单,如,播放歌曲“peng you”时,按下“d”键,则会出现以下提示:图4.2.4 “peng yo
16、u”歌曲播放中 图4.2.5 按下任意键回到主菜单如果我们输入“Q”时,程序就推出了:结束语经过这段时间的努力奋斗,这次的毕业设计即将完成。课程的设计让我了解到编写程序时必须很细心。此次课程设计使我感受颇深,以下是我总结的几个方面:这次做论文的经历会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是自己真正的学习过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。自此之前,自己学习的理论知识面不够广。通过这次毕业设计,使我第一次系统性的回顾了之前所学的所有课程内容。从中我懂得了所学知识的重要性,知识掌握的越多,设计的作品功能也就越强大。希望这次的经历能让
17、我在以后的学习中激励我继续进步。我经过这次系统的毕业设计,大致地了解了对以设计进行系统研究、设计及制作的全过程。这些认识使我在将来的工作和学习当中都会有很大的帮助。在以后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识补充最新的知识。毕业设计培养了严肃认真和实事求是的科学态度,而且培养了吃苦耐劳的精神以及严谨的作风,提高了交流沟通和团体写作能力,这对我以后的工作都有非常大的帮助的。虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美
18、的甘泉。致谢经过近一段时间的忙忙碌碌,这次基于汇编的音乐盒设计就要接近尾声了。在这次的汇编课程设计过程中,无论是在理论学习阶段,还是在设计选题、查询资料和撰写的每一个环节,我都得到了许多人的悉心指导和帮助。尤其要感谢我的论文指导老师-唐民丽老师,谢谢您这段时间对我的指导和帮助。在闲聊中她总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面她也总会以“专业标准”严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,唐老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨,热忱鼓励。正是在唐老师的无私指导和鼓励下,我的设计书才能更快的顺利完成。另外,在校图书馆查找资料的时候
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐盒 毕业设计

链接地址:https://www.31ppt.com/p-3995206.html