单片机音乐发生器毕业设计说明书论文_第1页
单片机音乐发生器毕业设计说明书论文_第2页
单片机音乐发生器毕业设计说明书论文_第3页
单片机音乐发生器毕业设计说明书论文_第4页
单片机音乐发生器毕业设计说明书论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书论文I目录摘要1第1章绪论2第2章音乐基础知识321音乐基础322音频脉冲和音乐节拍的实现3221音频脉冲的产生3222音乐节拍的产生5第3章系统方案设计631设计任务632设计目的633设计过程634设计思想6341方案设计与选择7第4章硬件电路设计941电路组成及工作原理9412工作原理942AT89C52单片机介绍944发声驱动电路1245显示电路1246控制电路13第5章软件设计1451程序设计1452程序流程图14第6章系统调试1561常用调试工具15611PROTEU仿真软件介绍15612KEIL编译环境介绍1562系统调试方法15结论17致谢18参考文献19附录20附录1程序清单20附录2单片机音乐发生器电路原理图32毕业设计说明书论文第1页摘要在电子技术日月更新、不断换代,计算机程序设计语言应用广泛,特别是单片机技术日趋发达的情况下,为了培养并增强设计自主性和动手能力强的人才,了解单片机强大的设计功能,我们进行了此次设计。为了实现一首音乐的播放,选择了用单片机来实现音乐的播放,因为它有很多优点,如外部结构简单、实现起来比较方便等。对于单片机产生音乐,关键是控制频率的输出。我们知道,不同的声音对应不同的频率,产生有规律的频率输出就可以得到相应规律的声音。音乐中,有7个基本音符DOREMIFASOLASI,七个不同的音符对应着不同的频率。只要我们对照音符输出相对应的频率,就可以产生美妙的音乐了。在此次设计中主要采用单片机AT89C52和一个SOUNDER(喇叭)来实现音乐的播放,在单片机AT89C52的18号和19号引脚(外接晶振端子,分别是片内反相放大器输入端、片内反相放大器输出端)上外接振荡电路,以此来提供时钟频率(时钟频率为12MHZ);而P3口中的P20端口作为音频输出口;并同时利用P3口中P32、P33、P35端口来控制音乐选择上一曲、下一曲及音乐播放的开始或暂停;与此同时我们还在P1口端接一个八段数码管来显示当前所放歌曲的曲数。关键词音乐发生器;单片机音乐发生器;音乐播放器毕业设计说明书论文第2页第1章绪论现在各种各样的音乐播放器呈现在我们面前,外观越来越精美,功能越来越多,体积越来越小,重量也越来越小、价格越来越便宜。同时,随着当代手机行业的快速发展,许多手机厂商为了能够吸引广大的客户受到消费者的青睐,致此他们开始研究在手机上实现音乐和视频的播放,因此现在的手机都能够轻松的播放音乐了。这样人们就更很容易携带,随时随地都可以听,以便来缓解人们的疲劳、压抑、愉快人们的心情等,甚至有时还可以借着音乐来抒发自己的感情,传达我们对朋友的祝福。因此,在不知不觉中它成为了人们生活的一样必需品,无论到哪里、无论什么时候都可以听到我们想听的音乐。根据现在各大学教学计划的要求,并培养学生综合运用所学的专业知识和基本技能、培养学生分析问题、解决问题能力的教育过程。要求即将毕业的学生必须根据学院要求独立的做出一个毕业设计,而不同专业的学生有不同的设计题目。我们学院也不例外,由各个专业的老师出题(本专业范围内),再由学生(学生根据自身学习情况综合考虑)进行选择设计题目(同时也确定了该学生的毕业设计的指导老师),然后由独立的(可以向指导老师询问)完成。在本设计中要求用单片机实现音乐发生器,主要是利用我们常见的或是比较熟悉的单片机来实现音乐的播放。而本设计主要是利用单片机AT89C52(51系列单片机)来实现的,同是时也利用了共阴极的八段数码管及扬声器(喇叭),共同来实现音乐的播放。本设计共分为六章,第1章是绪论,第2章是音乐基础知识,第3章是系统方案设计,第4章是硬件电路设计,第5章软件设计,第6章是系统调试。在实际中参照单片机相关资料,就可容易的利用单片机设计出一个音乐发生器。在设计过程中人们还可考虑用多种方法进行实现,这样不但很好的发挥了人们的创新精神,还提高了动手能力、综合分析能力及专业知识运用能力。毕业设计说明书论文第3页第2章音乐基础知识21音乐基础音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人耳,听觉系统将神经冲动传达给大脑,进而产生听觉。人耳能听到的声音频率大约在1120000HZ,而音乐使用的音一般在274100HZ。乐音体系中各音级的名称叫做音名,被广泛采用的是CDEFGAB(DOREMIFASOLASI则多用于歌唱,称为唱名)。乐音体系中音高关系的最小计量单位叫做半音,两个半音构成一个全音。乐音中有几十个高低不同的音,但是最基本只有这七个音,其他高、低音名都是在这个基础上变化出来的。乐谱表上用来表示正在进行的音的长短的符号,叫做音符。不同的音符代表不同的长度。音符有以下几种全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符。此外,还有附点音符,它就是指带附点的音符,所谓附点就是记在音符右边的小圆点,表示增加前面音符时值的一半。音持续的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐就是由许多不同的音符组成的,而每一个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延时来构成不同的音乐。22音频脉冲和音乐节拍的实现221音频脉冲的产生音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产生这样的方波频率信号。在本设计中,单片机工作在12MHZ时钟频率下,其时钟周期为1US,因此可以利用AT89C52的内部定时/计数器T0,使其工作模式为1,根据对应音符的不同频率求出计数器的初值T(即是TH0和TL0的值),则TH0T/256,TL0T256。C调各音符频率与计数值T的对照如下表21所示。毕业设计说明书论文第4页表21C调各音符频率与计数值T的对照表音符频率HZ简谱码T音符频率HZ简谱码T低1D0262636284FA740648601D027763731中5SO74864898低2RE294638355S0831649342RE31163928中6LA88064968低3M330640216LA93264994低4FA34964103中7S1988650304FA37064185高1DO104665058低5SO39264260DO1109650855S041564331高2RE117565110低6LA440644002RE1245651346LA46664463高3M131865157低7S149464524高4FA139765178中1DO523645804FA1480651981D055464633高5SO156865217中2RE578646845SO1661652352RE62264723高6LA176065252中3M659647776LA186565268中4FA69864820高7SI196765283毕业设计说明书论文第5页222音乐节拍的产生节拍是指音乐持续的长短,是除音符之外音乐的另一关键组成部分,在单片机系统中可以通过延时来实现。如果1/4拍的延时设为02S,则1拍的时间为08S,依次类推,可以求出其余节拍的值,节拍的延时时间与音乐的曲调值有相对应的关系,下面为不同曲调下的1/4和1/8节拍的时间设定,如下表22所示。表22不同曲调下1/4和1/8节拍的延时表曲调值1/8节拍DELAYMS曲调值1/4节拍DELAYMS调4/462调4/4125调3/494调3/4187调2/4125调2/4250毕业设计说明书论文第6页第3章系统方案设计31设计任务设计一音乐发生器(1)用单片机作为开发工具,至少能储存3首乐曲;(2)能按键选择乐曲序号,每按一次加1键乐曲序号加1,每按一次减1键乐曲序号减1;(3)用LED数码管显示正在播放的乐曲序号;(4)能进行仿真音乐发生器。32设计目的(1)培养学生怎样将综合的理论知识与实际相结合起来的能力(2)培养学生分析问题、解决问题的能力(3)锻炼学生独立、自学的能力及其动手能力33设计过程在毕业设计题目选择后,我积极的查阅相关资料。经过分析、思考及其指导老师的悉心的指导,我最终设计出了三种方案,并对每一种方案进行分析与考虑及各个方案的比较,选择了第一种方案用AT89C52单片机、一个共阴极的八段数码管及扬声器来实现音乐的播放。确定好设计方案后,将整个设计分成了三个步骤一是,设计的硬件电路图的绘制;二是,程序的设计;三是,硬件电路仿真与程序的编译、连接及运行。34设计思想在此次设计中,我查阅了很多相关资料并经过分析、思考得到了以下三种方案。它们分别是用AT89C52单片机、一个共阴极的八段数码管及扬声器实现音乐发生器,用单片机AT89C51、LM386音频功放和扬声器实现音乐发生器,用单片机AT89C52和扬声器实现音乐发生器,但经过我自己的分析总结,最后选择了第一种方案。毕业设计说明书论文第7页341方案设计与选择方案一用单片机AT89C52实现音乐发生器主要运用AT89C52单片机和一个扬声器两个器件组成。在AT89C51单片机外部端子上接晶振电路,单片机的工作时钟为12MHZ,将P3口的P37引脚作为音频输出口直接送给喇叭,再通过程序设计的来计算出将要播放的歌曲的长度,然后在计算出从该首歌中所取出来的音符的长度,在将该音符通过一系列的控制后实现了该音符的播放,在利用延时来实现该音符播放的长度,在该音符播放完后接着取下一个音符,就这样反复的取出下一个音符,从而实现了乐曲的播放。该方案具体的、详细的电路图设计如图31所示。图31方案三的电路图方案二用单片机AT89C51和LM386音频功放实现音乐发生器主要运用AT89C51单片机、音频功放芯片(LM386)和扬声器三部分组成。此方案中电路原理图也是由两部分组成一是ATMEL公司的AT89C51单片机外接晶振电路(单片机的工作时钟12MHZ)及复位电路来实现的;二是美国国家半导体公司的音频功率放大器(LM386)电路。将单片机AT89C51的P00作为音频脉冲输出脚,输入到由LM386组成的音频功放电路中,经过处LM386处理后,从LM386的输出引脚,经过补偿网络(与扬声器相并)主要是为了防止高频自激和过压现象,再毕业设计说明书论文第8页输入到扬声器中,这样单片机发出的不同频率的音频信号就可以通过扬声器发出我们所想要的乐曲。该设计方案的硬件电路图的设计如下所示,如图32所示。图32方案二的电路图方案三用AT89C52单片机、八段数码管及扬声器来实现音乐发生器主要运用单片机AT89C52、一个共阴极的八段数管及扬声器三部分组成。它的主要思想就是将定时器0用于定时,作音符发生器用;定时器1用计数,这里用作中断;同时将所要播放的歌曲存放在指定的地址单元中,单片机来直接驱动扬声器来实现音乐的播放。同时还添加了数码管显示即所播放的歌曲的曲目数显示,还添加了实现上一曲、下一曲、开始/暂停的功能,就能够选择所要的乐曲了。综合以上三种方案都可以实现音乐的播放,比较三种设计方案来说从电路原理图实现相对来说三种方案之中的第一方案比较简单,但是它没有实现音乐播放的其他功能,只能够循环的播放你所存储的音乐。而第二方案与第一方案大同小异,用的单片机不同一个是AT89C51、另一个是AT89C52,并同时方案了利用了一个音频功放电路来放大输入的脉冲信号,这样就比第一方案中产生的音乐好听了。第三方案是用单片机AT89C52、一个共阴极的八段数码管及扬声器,再利用开关按钮来控制音乐播放的开始/暂停、上一曲及下一曲,同时将所播放的乐曲的曲目在八段数管电理工作显示。因此,在此次设计中我选择了第三种方案来实现音乐发生器,单片机音乐发生器电路图见附录2所示。毕业设计说明书论文第9页第4章硬件电路设计41电路组成及工作原理411电路组成对于整个设计的电路由单片机、显示电路、驱动发声电路及歌曲播放控制电路等部分组成,其组成框图如图41所示,其中单片机AT89C52主要是将各个模块连接起来并控制各个模块;时钟电路则是用来产生时钟频率,一般是12MHZ;复位电路则是能够将当前状态变为初始状态;歌曲的曲数显示电路主要是显示当前所播放的歌曲的曲目数;驱动发声电路则是来播放音乐的;歌曲播放控制电路则是来控制歌曲的播放/暂停和选择歌曲;而整个电路组成框图则是用来显示播放歌曲的曲目数同是控制歌曲的选择及音乐的播放。AT89C52单片机时钟电路复位电路显示电路发声驱动电路控制电路图41电路组成框图412工作原理利用单片机AT89C52直接来产生音频脉冲来驱动喇叭来完成音乐的播放。利用了该单片机的内部定时器/计数器T0来定进行定时,同时利用定时器/计数器T1用业计数,并同时利用了该单片机的P2口的P20来作为音频脉冲的输出端。42AT89C52单片机介绍AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8KBYTES的可反复擦写的只读程序存储器(PEROM)和蔼可亲256BYTES的随机存取毕业设计说明书论文第10页数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合,如图42所示。XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P10/T21P11/T2EX2P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C52图42AT89C52引脚图1、主要性能参数与MCS51产品指令和引脚完全兼容8K字节可重擦写FLASH闪速存储器1000次擦写周期全静态操作0HZ24MHZ三级加密程序存储器2568字节内部RAM32个可编程I/O口线3个16位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式2、引脚功能毕业设计说明书论文第11页VCC电源电压GND接地P0口P0口是一个8位双向I/O接口,也即地址/数据总线复用口。在访问外部数据存储器时,这组口线分时转换地址低8位和数据总线复用。P1口P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。P2口P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。在访问外部存储器时,P2口送出高8位地址数据。P3口P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表41所示。表41P3口的第二功能表端口引脚第二功能P30RXD串行输入口P31TXD串行输出口P32INT0外中断0P33INT1外中断1P34T0(定时/计数器0)P35T1(定时/计数器0)P36WR外部数据存储器写选通P37RD外部数据存储器读选通RST复位信号输入端。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG地址锁存有效信号输出端。当访问片外部存储器时,ALE(地址锁存允许)输出脉冲用于位锁存低8地址PSEN程序存储允许输出端。是片外程序存储器的读选通信号。EA/VPP行内部程序存储器中的指令。FLASH存储器编程时,该引脚加上12V的编程允许电源VPP,这必须是该器件是使用12V编程电压VPP。XTAL1振荡器反相放大器的及内部时钟发生器的输入端。毕业设计说明书论文第12页XTAL2振荡器反相放大器的输出端。通过XTAL1、XTAL2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。在AT89C52片内存储器中,80HFFH共128个单元为特殊功能寄存器(SFR),其中包括B寄存器、累加器、程序状态寄存器(PSW)、定时/计数器控制、中断优级控制寄存器(IP)、P3口锁存寄存器、中断允许控制寄存器(IE)、串行口控制寄存器等。它们可运用来设置片内电路的运行方式,记录电路的运行状态,MCS51单片机对特殊功能寄存器采取与片内RAM统一编址的方法,可按字节地址直接寻址。44发声驱动电路主要是采用一个三极管来驱动扬声器来产生音乐。在单片机的P2口上的P20的端子上连接发声驱动电路,其中要先连接一个10K的电阻主要是用业限制电流过大,然后连接一个三极管来驱动扬声器以致放出的音质较好,再连接扬声器,因为用到一个扬声器所以就可以不能区分它的正负极性了,它的电路框图如43图所示。R910KLS1SOUNDERQ1NPN图43发声驱动电路45显示电路显示部分主要是由一个共阴极的八段数码管和八个限流电阻共同来组成的。它们接在AT89C52单片机P1口上,用一组电阻都为220、330或100来对P1口输出的电压进行分流,从而来确定了八段数码管拥有正常的电压,不会因电流过大而被烧坏。这样数码管就可以正常显示所播放的歌曲的曲目数了,具体的显示器电路图如图44所示。毕业设计说明书论文第13页R2220R3220R4220R5220R6220R7220R8220图44显示电路46控制电路这部分电路主要是用来控制歌曲的播放/暂停及选择。采用了三个按钮来进行控制来实现歌曲播放的上一曲、下一曲及开始/暂停的功能,同时还接一个上拉电阻,它的阻值一般是51K、47K、10K三个阻值,共同实现了音乐播放歌曲的控制。如图45所示。上一曲下一曲开始/暂停R1051KR1151KR1251K图45控制电路图毕业设计说明书论文第14页第5章软件设计51程序设计详细的程序设计见附录152程序流程图如图51所示。开始设置歌曲的入口地址及对变最初始化判断按键的值及歌曲是否播放结束图51主程序图毕业设计说明书论文第15页第6章系统调试61常用调试工具611PROTEU仿真软件介绍PROTEU仿真软件用来画硬件电路原理图,在其中我们可以同时调用各样的单片机,但是其中存放的是普通的单片机可能不存在我们所要的芯片,因此我们也可以用AUTOCAD或PROTEL99来画此硬件电路图,而我在此次设计中采用了PROTEU这个软件。在画图过程中一定要注意的是,元器件之间的连接线不可以是非线一定要导线,因此完成电路图后再调试这个硬件电路是否能实现它的功能。具体的操作是打开电路原理图后双击单片机芯片在弹出的对话窗口中把我们在KEIL编译软件中编译生成的后缀名为HEX文件调入其中,而该单片机的工作时钟频率我们可以在此改变,设置好后点击OK就可以了,再点击原理图左下角的运行就可以正常运行了,若要暂停或是恢复则点击相应的按钮就好了。612KEIL编译环境介绍KEIL编译软件用来编程,可以用汇编语言也可以用C语言来进行编程实现某些功能。当打开KEIL后,首先新建一个项目保存在相应位置,后再新建一个文本,将你已经编好的程序复制到这个文本中或是在这个文本进行编写程序,之后一再将其保存为一个以ASM或是C作为后缀名的文本,再在我们建立的组中将程序文件添加到工程中,再经过编译,然后生成HEX文件再编译,若提示没有出现错误ERRORS(不含警告WARNINGS)则说明调试成功,反之则应该对程序进行检查分析,直到调试成功为止。62系统调试方法(1)打开电路仿真的应用程序ISISPROFESSIONAL,在其中选择该设计所需的的单片机或是元件,然后将其放置到要画图的区域中,你可以双击该元件改变它相应的属性及参数。2、用带电气性的连接线来连接各个元件,从而构成了完整的电路图并保存毕业设计说明书论文第16页在为DSN为后缀名的文件,放在你所需的地方。3、打开程序仿真或调试应用程序KEILUVISION2,首先要建一个工程,再将程序添加到该工程中,再保存。4、再进行程序的编译与连接,检查程序是否正确,如果不正确,则进行分析直到正确为止;如果正确,则可以生成HEX文件。5、点击PROJECT菜单,选择OPTIONSFORTARGET项或是直接点击常用工具栏中的图标打开对话框进行设置,则就可以生成HEX文件了。6、再打开电路仿真的应用程序ISISPROFESSIONAL,然后双击该电路图中的主的单片机,同时弹出一个对话框,在对话框中进行选择所生成的HEX文件,并还可以进行单片机的频率设置,再单击确定。7、点击运行检查是否可以运行正确。毕业设计说明书论文第17页结论通过这次比较完整的单片机音乐发生器的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,同时也提高我查阅文献资料、设计规范以及电脑画图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,并且意志品质力。这是我们都希望看到的也正是我们进行毕业设计的目的所在。在此次设计中我学到了很多东西,包括对单片机的更进一步的认识、一些关于音乐的基础知识的了解、汇编语言的应用的学习等等。首先,在这次毕业设计中,通过上网或、图书馆或是上书店翻阅相关的单片机资料,同时也在帮同学查看和解决一些问题(毕业设计中的硬件问题)时,更加清楚地认识了单片机,让在我原来的硬件基础知识的基础上又认识了解几款单片机(AT89S52)及它的原理。其次,就是在此次毕业设计中关系到了音乐的一些基础知识,音乐是由不同的音符组成,不同的音符对应着不同的频率产生,产生有规律的频率乐音。了解音乐的产生,音乐体系中中音高关系的最小计量单位及音符的定义,同时也知道了音符又分为了以下几种全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分符。最后,让我感受最大的是将理论和实践相结是要解决很多问题经过一定的挫折才能很好的完成任务,因此在其过程中考虑问题时一定要谨慎、全面,出现问题时不应该气馁,要沉着思考或是向同学、老师请求帮忙。只要坚持不懈我们就一定能克服任何困难完成任务。毕业设计说明书论文第18页致谢经过两个多月的努力,我的毕业设计顺利完成了。在这里,我向所有指导过我的老师、帮助过我的同学和一直关心支持着我的家人,对他们表示深深的谢意。在毕业设计选题后,胡老师要求我们一定要抓紧时间积极地查询、搜索毕业设计相关资料。胡老师不畏工作的繁荣,要求他指导的学生定时的到他那里给他说明下毕业设计的进展及在此过程中我们遇到的困难与疑惑,并且他会给我们一一耐心的讲解。在整个毕业设计过程中,胡老师不断对我得到的结论进行总结,并提出新的问题,使得我的毕业设计课题能够深入地进行下去,也使我接触到了许多理论和实际上的新问题,使我做了许多有益的思考。正如古人云“师者传道授业解惑者也”,这正是胡老师的写照,对于导师授予的做学术和做人的道理,我将会铭记在心对今后学习和生活中定会大有裨益在此谨向尊敬的导师致以由衷的感谢和崇高的敬意。毕业设计到最后的成稿,都得到了指导老师的热情鼓励和悉心指导,凝聚了导师许多心血。他渊博的学识,严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在老师的精心指导和帮助下,开阔了视野,分析和解决问题等方面的能力有了长足的进步。此次毕业设计很好的运用了我三年来所学的专业知识和基本技能,让我体会了学以致用的道理,真真的感受到了无论我们学什么,无论它是否现在对我们有帮助,但它终究会有一天它都会成为我们前进的力量,它就像一支无形的手在你的背后推动着你前进。更是让我深深的体会到理论联系实际的复杂,其实我们平时学习理论知识时,老师要求我们联系实际去想一想,但大多数人都不会去思考。经过这次毕业设计后,让我学会了更加全面性的考虑问题、分析问题、解决问题,让我们在这个过程中学到更多的东西。感谢大学期间授我业、解我惑的全体老师。没有你们的谆谆教导,我就不可能具备扎实的道路与桥梁工程的专业知识。毕业设计说明书论文第19页参考文献1樊明龙、任丽静单片机原理与应用化学工业出版社,20012谢嘉奎电子线路高等教育出版社,20023马家辰、孙玉德MCS51单片机原理及接口技术哈尔滨工业大学出版社,20014李华MCS51单片机接口技术与运用北京航天航空大学出版社,20035胡汉才单片机接口技术与运用清华大学出版社,20016何立民单片机高级教程北京航空航天大学出版社,20017赵晓安MCS51单片机原理及应用天津大学出版社,200138李广第单片机基础北京航空航天大学出版社,19999徐惠民、安德宁单片微型计算机原理接口与应用北京邮电大学出版社,199610夏继强单片机实验与实践教程北京航空航天大学出版社,2001毕业设计说明书论文第20页附录附录1程序清单OUTBITP20定义音频输出端口,P20NEQU3歌曲总数OUT_NUMEQUP1数码管显视当前所放歌曲曲数ORG0000HAJMPMAINORG0003HAJMPLAST_SONG外部中断0用于接上一曲歌按键ORG000BHAJMPF_T0定时器0用于定时,作音符发生器用ORG0013HQ4AJMPNEXT_SONG外部中断1接下一曲歌按键ORG001BHAJMPSTART_PAUSE定时器1用计数,这里用作中断,接开始/暂停键,初值为0FFH,方式2ORG0030HMAINMOVSP,60HMOVDPTR,TABLEDPRT指向每首歌曲的入口地址的地址。MOVR0,30HR0中存入数据30H,这里在以30H开始的单元存放每首歌曲的入口地址,其中30H,31H存放歌曲的节拍入口地址,32H,33H存放歌曲音符入口地址,每首歌占用四个存储存单元。MOVR5,00HR5中存放表TABLE中正在执行操作的序号MOVR6,1R6存放正在设置入口信息的歌曲数毕业设计说明书论文第21页SET_TABMOVA,R5设置每首歌曲的入口信息,存放在以30H开始的存储单元中。MOVCA,ADPTRMOVR0,AINCR5INCR0MOVA,R5MOVCA,ADPTRMOVR0,AINCR5INCR0MOVA,R5MOVCA,ADPTRMOVR0,AINCR0INCR5MOVA,R5MOVCA,ADPTRMOVR0,AINCR0INCR5INCR6设置完一首歌曲后,歌曲数加一CJNER6,N1,SET_TAB是否设置完,没有便继续,否则进行下面的操作对中断,计数器的相关参数进行设置MOVTMOD,61H计数器0工作方式1,计数器1工作方式2MOVTH1,0FFH给计数器1置初值0FFH,又由于是工作方式2,所以MOVTL1,0FFH计数器计数为1,相当于一外部中断。SETBET1允许计数器1中断SETBET0允许计数器具0中断毕业设计说明书论文第22页CLRPT0计数器0为低优先级SETBPT1计数器1为高优先级SETBIT0外部中断0为跳沿触发SETBPX0高优先级SETBIT1外部中断1为跳沿触发SETBPX1高优先级SETBEX1允许外部中断1中断SETBEX0允许外部中断定0中断SETBEA开中断总开关SETBTR1定时器1开始工作,作中断用SETBOUT音频输出端口初始化设置结束CLRF0设置F00,用来作暂停/播放的标置位用MOV22H,01H22H单元中存放正在播放的歌曲编号MOVDPTR,OUT_TAB将正在播放的歌曲编号送数码管显视MOVA,22HMOVCA,ADPTRMOVOUT_NUM,AMOVR7,00HR7中存放歌曲总信息的入口地址START0MOVR4,00HR4存放当前正在播放歌曲的第几个节拍数MOVR0,30H30H开始的单元中存放歌曲的入口信息MOVA,R7将歌曲的节拍表的入口地址送到DPTRADDA,R0MOVR0,AMOVDPH,R0INCR0MOVDPL,R0INCR0毕业设计说明书论文第23页MOVA,R4INCR4MOVCA,ADPTR取出第一节拍数,其实第一个节拍不是歌曲的第一个节拍,而是表示几分音符MOV26H,A将取出的音符数节拍数保存在职26H单元中NEXTMOVR0,30H开始取出歌曲的第一个数据MOVA,R7ADDA,R0MOVR0,AMOVDPH,R0INCR0MOVDPL,R0INCR0MOVA,R4INCR4MOVCA,ADPTR放在A中JZEND0若为0,则表示为休止符,不唱,本次音符不唱,MOVR1,A不为0,取出节拍数ANLA,0FHMOVR2,AMOVA,R1SWAPAANLA,0FHJNZSING音符不为0,唱毕业设计说明书论文第24页CLRTR0为0,不唱,关频率发生器SJMPSING1SINGDECA开始唱,进行相应的数据处理MOVR3,ARLAMOVDPH,R0INCR0MOVDPL,R0INCR0MOVCA,ADPTRMOV21H,AMOVTH0,AMOVA,R3RLAINCAMOVCA,ADPTRMOV20H,AMOVTL0,ASETBTR0开唱SING1LCALLDELAY每个音符唱多久JBF0,FOR是否暂停,AJMPNEXT没有暂停,继续FORCLRTR0暂停,不唱JBF0,等待播放AJMPNEXT开始播放END0CLRTR0不唱MOVA,22H唱完处理CJNEA,N,WW是不是全部歌曲都唱完MOV22H,01H全部唱完,则从第一首开始再唱MOVR7,00H毕业设计说明书论文第25页MOVOUT_NUM,06H数码管显视第一首歌曲编号AJMPWWWWWMOVA,R7没有全部唱完,唱下一首,歌曲的入口信息调整ADDA,4MOVR7,AINC22HCLREAPUSHDPHPUSHDPLMOVA,22HMOVDPTR,OUT_TABMOVCA,ADPTRMOVOUT_NUM,A数码管显视相应的歌曲编号POPDPLPOPDPHWWWSETBEAAJMPSTART0开始下一首的演唱F_T0MOVTH0,21H定时器0置初值MOVTL0,20HCPLOUT频率产生RETINEXT_SONGPUSHACC下一曲中断程序处理,保护现场PUSHDPHPUSHDPLCLREA关中断MOVA,22H毕业设计说明书论文第26页CJNEA,N,Q是最后一首吗MOVR7,00H是最后一首,则R7指向第一首,演唱第一首MOV22H,01HAJMPBACKQINC22H不是最后一首,唱下一首,R7内容加4,歌曲数加1MOVA,R7ADDA,4MOVR7,ABACKMOVR4,00H数码管显视相应的歌曲编号MOVA,22HMOVDPTR,OUT_TABMOVCA,ADPTRMOVOUT_NUM,AMOVB,R0对下首要演唱的歌曲的几分拍进行调整,同时对R0中的内容进行保护MOVR4,00HMOVR0,30HMOVA,R7ADDA,R0MOVR0,AMOVDPH,R0INCR0MOVDPL,R0INCR0MOVA,R4INCR4MOVCA,ADPTRMOV26H,A结果存入26H单元中DECR4毕业设计说明书论文第27页MOVR0,B恢复R0中的内容POPDPL恢复现场POPDPHPOPACCSETBEARETI中断返回LAST_SONGPUSHACC上一曲中断程序处理开始,保护现场PUSHDPHPUSHDPLCLREA关中断MOVA,22H曲目数送ACJNEA,1,QQ是否是第一首MOV22H,N是第一首歌曲MOVB,4将R7指向最后一首歌曲MOVA,N1MULABMOVR7,AAJMPBACK2处理结束QQDEC22HMOVA,R7R7减4SUBBA,4MOVR7,ABACK2MOVR4,00HMOVA,22HMOVDPTR,OUT_TABMOVCA,ADPTRMOVOUT_NUM,A数码管显视相应歌曲的编号毕业设计说明书论文第28页MOVB,R0对下首要演唱的歌曲的几分拍进行调整,同时对R0中的内容进行保护MOVR4,00HMOVR0,30HMOVA,R7ADDA,R0MOVR0,AMOVDPH,R0INCR0MOVDPL,R0INCR0MOVA,R4INCR4MOVCA,ADPTRMOV26H,A结果存入26H单元中DECR4MOVR0,BR0中的内容恢复POPDPL恢复现场POPDPHPOPACCSETBEARETI中断返回START_PAUSECPLF0开始/暂停中断处理程序,将标置位取反JBF0,RETURN为1返回SETBTR0为0则播放RETURNRETI中断返回DELAYMOV27H,26H音符演奏时间控制D2MOV28H,125D3MOV29H,248毕业设计说明书论文第29页DJNZ29H,DJNZ28H,D3DJNZ27H,D2DJNZR2,DELAYRETOUT_TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,DB77H,7CH,39H,5EH,79H,71H,73H共阴数码管显视用TABLEDWSONG1,TABLE1,SONG2,TABLE2,SONG3,TABLE3TABLE1DW64580,64684,64777,64820,64898,64968,65030DW63628,63835,64021,64103,64260,64400,64524SONG1DB04H1C2/4军港之夜DB32H,54H,52H,32H,54H,52H,32H,12H,12H,32H,32H,54H,52H,32H,52H,DB52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14HDB0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,DB32H,52H,52H,32H,52H,54H,32H,34H,31H,21H,12H,24H,24HDB34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,DB0D1H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4HDB22H,0D1H,11H,0E2H,0D2H,0C4H,0C4H,32H,52H,52H,32H,62H,5H,DB61H,54H,31H,52H,31H,12H,31H,31H,32H,54H,52H,32H,52H,52H,32HDB32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52,DB32H,62H,51H,61H,54H,31H,52H,31H,12H,32H,12H,32H,32H,54H,52HDB32H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,DB0D1H,0E1H,0D2H,0C2H,14H,14HDB32H,52H,52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14HDB0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,DB52H,32H,52H,54H,32H,34H,31H,21H,12H,24H,24HDB34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0D1H,0E1H,DB0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4HDB22H,0D1H,11H,0E2H,0D2H,0C4H,0C4H,32H,52H,52H,32H,62H,5H,61H,毕业设计说明书论文第30页DB54H,31H,52H,31H,12H,31H,31H,32H,54H,52H,32H,52H,52H,32HDB32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52,DB32H,62H,51H,61H,54H,31H,52H,31H,12H,32H,12H,32H,32H,54H,52HDB32H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,DB0E1H,0D2H,0C2H,14H,14HDB32H,52H,52H,32H,32H,21H,31H,24H,74H,0D2H,0C2H,14H,14H,14H,14HDB00HTABLE2DW63835,64021,64103,64260,64400,64524,64580,64684,64777DW64820,64898,64968,65030,65058,65110,65157,65178SONG2DB02H1C4/4死了都要爱DB04H,94HDB0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,DB84H,84H,92H,92H,94H,92H,02HDB0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4HDB04H,0C2H,0C2H,0D4H,0C2H,0D2H,0D8H,0D4H,0D2H,92HDB0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,DB84H,84H,92H,92H,94H,92H,02HDB0A4H,0A2H,0B2H,0B4H,0C4H,0E8H,0D8HDB0C8H,0C8H,08H,08H,78H,28H,38H,34H,24HDB24H,64H,64H,24H,64H,72H,72H,78H,58H,54H,44H,38H,34H,DB14H,34H,84H,74H,74H,62H,62H,0D8H,78H,28H,38H,34H,24HDB24H,64H,64H,24H,64H,72H,72H,72H,94H,92H,94H,DB0A4H,58H,58H,54H,44H音不准DB58H,58H,58H,58H,0A8H,0A8H,0A4H,0B4H,0A4H,84H,0A4H,94H,98H,98H,08HDB84H,82H,82H,82H,82H,94H,0A2H,94H,92H,82H,74H,72H,74H,DB72H,72H,72H,72H,92H,91H,91H,94H,54H,74H,94HDB0A8H,0A4H,0A2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论