您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > 微机原理课程设计-音乐播放器
南京信息工程大学微机技术综合实验设计报告设计课题:音乐播放器专业班级:学生姓名:学生学号:团队编号:指导教师:成绩:二○一二年十二月二十日音乐播放器的设计一、设计目的1、提高学生应用能力、创新能力2、进一步掌握定时/计数器8253A的使用3、通过这个课程设计来加深对《微机原理与接口技术》所学内容的理解和融会贯通。4、掌握一定的汇编语言知识,培养自己的动手操作能力。5、学习程序设计的基本思路和方法二、设计要求1、自行设计电路实现音乐播放器功能。2、利用8253作为音阶频率发生器,对一段音乐进行编码后存入音符表,程序中可调用音符表自动播放音乐,从中了解音乐播放的原理。3、使用汇编语言编写音乐播放程序。三、设计思路系统以8253为核心。系统初始化时,8253工作在“方波发生器”方式,初值为二进制数,写入顺序为先低后高,经过放大电路以后,送至扬声器。改变计时器的初值就可以使扬声器发出不同频率的音响。设计程序时,数据段设置两张“表”。一张是频率表,将与音符对应的频率值依次写入表中,另一张是时间表,依次存放每个音符的单位时间。当然,频率表和时间表的表项要一一对应,不能错位,频率表最后一个表项为0,作为重复演唱或停止演唱的标志。在接通扬声器的情况下,依次取出频率表中的频率值,转换成计数初值写入计数器,依次取出时间表中的单位时间,然后再调用延时子程序即可得到延时时间,也就是音符演奏时间。通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序,之后再将扬声器即可。MUSIC子程序是音乐子程序,SI指向曲中的频率,BP指向曲中的时间节拍。从SI的指向的音节表中取一个频率,只要不是0,即有效就再读取时间,然后调用SPEAKER子程序,计算计数初值送入计数器,产生各种频率信号,再送至扬声器,根据所取的时间调用若干次延时子程序。这段时间扬声器就发出该频率的声音,延时结束,再修改SI和BP,指向下一个频率,重复上面的工作。播放三首音乐后自动循环。图1程序流程图四、电路及连线设计4.18253引脚图及控制字端口设置图28253引脚图1、D7~D0:双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。2、RD:来自于CPU的读控制信号输入引脚,低电平有效。3、WR:来自于CPU的写控制信号输入引脚,低电平有效。4、CS:芯片选择信号输入引脚,低电平有效。5、A1、A0:地址信号输入引脚,用以选择8253芯片的通道及控制字寄存器。6、VCC及GND:+5V电源及接地引脚7、CLKi:i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。8、GATEi:i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。9、OUTi:i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。图38253控制字说明:1、8253A每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。2、8253A编程时先写控制字,再写时间常数。4.2音乐播放电路设计思路音乐播放器用到相关硬件:1、定时/计数器8253A2、扬声器和喇叭驱动模块硬件连接:1、定时/计数器8253A芯片模块的CLK2接时钟频率为5000HZ的方波信号。2、定时/计数器8253A芯片模块的GATE2接+5V,提供高电平。3、定时/计数器8253A芯片模块的OUT2接放大电路,并与扬声器相连。8253A的CLK2接方波信号,方波的频率为5000HZ。图4扬声器电路4.3protues仿真连线图图5总电路图五、程序设计CODESEGMENTASSUMECS:CODEORG1000HSTART:JMPMUSIC;跳转进MUSICMUSIC:LEASI,FREQ;取FREQ的偏移地址LEABP,TIME;取TIME的偏移地址LOP:MOVDI,[SI];把[SI]的内容放到DICMPDI,0;0用于判断是否结束歌曲JEMUSIC2;结束则跳转MOVBX,[BP];把[BP]的内容放到BXCALLSPEAKERADDSI,2;取下一频率值ADDBP,2;取下一时间节拍值JMPLOP;跳回LOP循环MUSIC2:;音乐2子程序LEASI,FREQ2LEABP,TIME2LOP2:MOVDI,[SI]CMPDI,0JEMUSIC3;MUSIC2结束后转到MUSIC3MOVBX,[bp]CALLSPEAKERADDSI,2ADDBP,2JMPLOP2MUSIC3:;音乐3子程序LEASI,FREQ3LEABP,TIME3LOP3:MOVDI,[SI]CMPDI,0JEMUSIC;MUSIC3结束后转到MUSICMOVBX,[BP]CALLSPEAKERADDSI,2ADDBP,2JMPLOP3;_________-音乐子程序-____SPEAKERPROCPUSHAX;保存堆栈PUSHBXPUSHCXPUSHDXPUSHDI;___________初始化部分__________MOVAL,10110110B;对计数器写控制字OUT46H,ALMOVDX,00H;设置被除数MOVAX,5000DIVDI;(DI)=频率,商→AL,余数→AHOUT44H,AL;先送LSB最低有效位,44H为8253的通道2端口MOVAL,AHOUT44H,AL;后送MSB最高有效位WAIT1:MOVCX,6;设循环次数6DELAY1:LOOPDELAY1DECBX;循环BX次,即传进来的节拍时间JNZWAIT1POPDI;恢复堆栈POPDXPOPCXPOPBXPOPAXRETSPEAKERENDP;_______歌曲乐谱_____________;歌曲1:《两只老虎》FREQDW2DUP(262,294,330,262);歌曲频率DW2DUP(330,349,392)DW2DUP(392,440,392,349,330,262)DW2DUP(294,196,262),10dup(-1),0TIMEDW8DUP(10000);歌曲时间节拍值DW2DUP(10000,10000,20000)DW12DUP(9000)DW6DUP(18000)DW10DUP(10000);歌曲2:《MERRYCHRISTMAS》FREQ2DW7DUP(330),392,262,294,330,4DUP(349),2DUP(330),330,294,294,262,294,392DW7DUP(330),392,262,294,330,4DUP(349),2DUP(330),392,392,349,294,262,0TIME2DW2DUP(25*400,25*400,50*400),4DUP(25*400),100*400,2DUP(25*400,25*400,50*400)DW4DUP(25*400),2dup(50*400),2DUP(25*400,25*400,50*400)DW4DUP(25*400),100*400,2DUP(25*400,25*400,50*400),4DUP(25*400),100*400;freq3DW1DUP(659,784,523,578,659,392,523,578,659,784,578,578)DW1DUP(659,784,523,578,659,440,578,784,578,659,523,523)DW1DUP(880,784,880,523,659,440,659,784,578,578)DW1DUP(659,784,523,578,659,440,578,784,578,659,523,523)DW10DUP(-1),0;歌曲频率time3DW2DUP(20000,20000,40000),4DUP(20000),2DUP(40000)DW2DUP(20000,20000,40000),4DUP(20000),2DUP(40000)DW4DUP(40000),4DUP(20000),2DUP(40000)DW2DUP(20000,20000,40000),4DUP(20000),2DUP(40000)DW10DUP(20000);歌曲时间节拍值MOVAH,4CHINT21HCODEENDSENDSTART六、设计总结从老师布置任务以来,经过全组成员的努力,认正学习实验总结芯片知识,在此基础上,大家认真的总结讨论,最终我们决定做了如上的音乐循环播放器,通过查找资料,激烈讨论,认真构图,在写完基本的程序后,经过大家的讨论,调试,最终将程序编写成功,并能实现基本的设想功能,在此基础上,我们觉得这个播放器还有进一步完善的空间。回顾起此次微机原理课程设计,至今我组成员仍感慨颇多。从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟是我们第一次做硬件设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8255A芯片的使用,PROTUES软件的应用技巧,对汇编语言掌握得不好……通过这次课程设计之后,我们把以前所学过的知识又重新温故了一遍,起到了课程设计的预期效果。七、人员分工八、参考文献[1]张颖超,叶彦斐等编著.微机原理与接口技术,北京:电子工业出版社2011.2[2]程勇,戚梅等编著.微型计算机技术实验教程,北京:北京航空航天大学出版社2008.10[3]张仁杰,秦晓梅编著.微机原理与接口技术综合实验教程,大连:大连理工大学出版社2004.5[4][5][6][7]
本文标题:微机原理课程设计-音乐播放器
链接地址:https://www.777doc.com/doc-7260631 .html