




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、课程设计的任务和目的课程设计题目:音乐播放器课程设计的实现目的:本课程设计主要是通过汇编语言用软件编程的方法实现简单的音乐播放功能。通过在《微机原理与接口技术》课程上所学的汇编知识和8253/8254芯片相关知识,来完成本课程设计;用汇编程序完成键控音乐播放器的,用8253/8254定时器来产生声音。该播放器有若干首歌曲可以选择,开始时输出说明,要用户选择要播放的歌曲,然后根据用户按键进行播放、退出或出错提示。通过课程设计环节来加强对所学知识的理解和应用。二、课程设计相关知识2.1定时/计数器8253/58254在微机及控制系统中,经常要用到定时信号。如系统的日历时钟,动态存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询等。定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU执行延迟子程序的时间就是定时时间。缺点:执行延迟时,CPU—直被占用,降低了CPU的效率。硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。突出优点为计数时不占用CPU时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU效率。作为定时器可用8253或者8254,二者功能基本相同,知识工作的最高频率不一样。本实验就采用了8254,其主要功能为:每片上有3个独立的16位的减计数器通道。对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。每个通道都有6种工作方式,都可以通过程序设置或改变。每个计数器的速率可高达10MHz。主要部分有:数据总线缓冲器、读/写控制逻辑、控制字寄存器、计数通道0#、1#、2#:内部结构如下图:8254内部结构2.28254外部引脚8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。8254芯1文档收集于互联网,如有不妥请联系删除.文档来源为文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.文档收集于互联网,如有不妥请联系删除.感觉无法下手,没办法只能硬着头皮啃下去,多看几个和音乐播放有关的汇编程序,然后我就能慢慢看懂了并理解了别的作者的设计思路。然后再根据自己的思路,对照本人在图书馆借的汇编语言指导书慢慢编写符合自己思路的程序。一次写出来的程序肯定不会是正确的,还需要进一步调试它。检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。调试程序中,学习了DEBUG的使用,DEBUG对检查程序的错误作用很大。同时,也要灵活使用各种调试方法,来缩小寻找错误的范围。书到用时方恨少。在课程设计过程中,我才体会到这句话的深意。课堂上学的8254的知识和汇编语言都太少,还不足以完成本次课设,为此我经常跑图书馆借了各种各样的工具书。有的书用处较大,有的书仅能用到一小块知识,就是这样,一步步在知识的海洋里我寻觅着自己需要的东西,确实克服了不少困难,解决了不少问题。或许坎坷才能更好的使人成长。在这次的课程设计中,我的收获是不但做出了一个符合要求的音乐播放器,而且为自己积累了一些宝贵的经验。同时我也对音乐方面的频率知识有了一些认识,我想如果不是本次课程设计中用到这方面知识,我这辈子可能没有机会去接触这方面的知识了。这,或许也是我比别的同学多出的一点收获吧!六、附录1、源程序代码:SSEGSEGMENTPARASTACK'stack'dw100hdup(0);Resizethestackbychangingthenumber'100'SSEGENDSDSEGSEGMENTINFO1DB0DH,0AH,'',0DH,0AH,'THEREARE3SONGS:',0DH,0AH,0DH,0AH,'$'INFO2DB'1.HAPPYBIRTHDAY',0DH,0AH,'$'INFO3DB'2.SHEEP',0DH,0AH,'$'INFO4DB'3.RIVER',0DH,0AH,'$'INFO5DB'0.EXIT',0DH,0AH,'$'INFO6DB'YOUHAVECHOSEN:$'INFO7DB'THANKYOUFORYOURUSE',0DH,0AH,'$'INFO8DB'',0DH,0AH,'PRESSTHEKEYTOSELECTSONG!',0DH,0AH,'$'INFO9DB0DH,0AH,'',0DH,0AH,'|INVALIDSELECTION|',0DH,0AH,'',0DH,0AH,'$'FREG1DW2dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349;曲1的频率DW330,294,466,266,440,349,392,349,-1TIME1DW1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4;曲1的时间FREG2DW330,294,262,294,3DUP(330);曲2的频率DW3DUP(294),330,392,392DW330,294,262,294,4DUP(330)DW294,294,330,294,262,-1TIME2DW6DUP(1),2;曲2的时间DW2DUP(1,1,2)DW12DUP(1),4FREG3DW330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294;曲3的频率DW262,262,220,196,220,262,294,332,262,-1TIME3DW3DUP(2),1,1,2,1,1,4DW2DUP(2,2,1,1),4DW3DUP(2,1,1,1),4DSEGENDSCSEGSEGMENTassumecs:CSEG,ds:DSEG,es:DSEG,ss:SSEGINITPROCmovax,dsegmovds,axmoves,axINITENDPMAINPROCcallINITRE:MOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALLEADX,INFO1MOVAH,09HINT21HLEADX,INFO2INT21HLEADX,INFO3INT21HLEADX,INFO4INT21HLEADX,INFO5INT21HLEADX,INFO8INT21HMOVAH,01HINT21H;曲3的时间;初始化程序;程序入口;关闭扬声器;输出说明信息;读取按键CMPAL,'1'
JEMUSIC1CMPAL,'2'
JEMUSIC2CMPAL,'3'
JEMUSIC3CMPAL,'0'JEEXITLEADX,INFO9MOVAH,09HINT21HJMPREMUSIC1:MOVSI,OFFSETFREG1MOVBP,OFFSETTIME1CALLPLAYJMPREMUSIC2:MOVSI,OFFSETFREG2MOVBP,OFFSETTIME2CALLPLAYJMPREMUSIC3:MOVSI,OFFSETFREG3MOVBP,OFFSETTIME3CALLPLAYJMPREEXIT:MOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALLEADX,INFO7MOVAH,09HINT21Hmovax,4c00hint21hMAINENDPPLAYPROCL1:MOVBX,DS:[SI]CMPBX,-1JEL0;根据不同的按键播放不同的曲子;无效选择,输出错误提示;指向曲1的表;指向曲2的表;指向曲3的表;关闭扬声器;输出欢迎使用信息,增加界面友好度;Theendoftheprogram,returntothesystem;PLAY子程序,功能上面介绍过;取频率;看是否有效;无效就退出MOVCX,DS:[BP]MOVCX,DS:[BP]MOVDL,CLADDDL,30HMOVAH,02HINT21HMOVDX,0FHMOVAX,4240HDIVBXMOVBX,AXMOVDX,283HMOVAL,36HOUTDX,ALMOVDX,280HMOVAX,BXOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXNOTALMOVDX,288HOUTDX,ALROD:CALLDELAYLOOPRODMOVDX,28BHMOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALCALLDELAY_OFFADDSI,2ADDBP,2JMPL1L0:RETPLAYENDPDELAYPROCPUSHAXPUSHBXPUSHCXPUSHDX;读取时间;保存时间;计算计数初值,1M的十六进制为OF4240H;设置计数器工作方式;输入计数初值;开扬声器;延时;关扬声器;音节间延时;延时子程序;循环这么多次;循环这么多次LL1:MOVCX,0FFFFHLOP:LOOPLOPDECBXJNZLL1POPDXPOPCXPOPBXPOPAXRETDELAYENDPDELAY_OFFPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVBX,0FHLL2:MOVCX,0CFFFHLOP2:LOOPLOP2DECBXJNZLL2POPDXPOPCXPOPBXPOPAXRETDELAY_OFFENDPCSEGENDSENDMAIN2、各个音符的对应频率表音符频率/HZ半周期/us音符频率/HZ半周期/us低1D02621908#4FA#7400676#1DO#2771805中5SO7840638低2RE2941700#5SO#8310602#2RE#3111608中6LA8800568低3M3301516#6LA#9320536低4FA3491433中7SI9880506#4FA#3701350高1DO10460478低5S03921276#DO#11090451#5SO#4151205高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售目标达成情况表-销售目标达成统计
- 劳动能力与收入状况确认书(5篇)
- 文化创意产业文化产品分类表
- 第6课《个性化网页设计》课件 2024-2025学年岭南美版初中美术九年级下册
- 2025年北京东城区九年级中考二模数学试卷试题(含答案详解)
- 玫红青扁平风网络安全教育模板
- 预测分析与数据科学提升商业决策的准确性
- 音乐节目的舞台灯光色彩设计与观众互动
- 非物质文化遗产在小学生心中的价值与意义
- 防灾科技在灾害应对中的应用
- 梨园助手:全年病虫害防治历
- JBT 8473-2014 仪表阀组标准规范
- 【编制说明】电力电缆通道用防火隔板及槽盒技术规范
- 分布式光伏经济评价规范
- 振动力学期末试卷-06.07.08期末-上海交大
- MOOC 大学物理(上)-西北工业大学 中国大学慕课答案
- 伊朗钢结构包装专项方案
- 小升初数学知识点总结(小考复习精编专项讲义)六年级数学小升初复习系列:数与式知识点梳理大全
- E+H-压力变送器培训
- 统编版高中语文必修下册《跨媒介阅读与交流》标准课件
- 重庆市地质灾害专业监测预警技术要求(试行)
评论
0/150
提交评论