微型计算机音乐发生器,基于51单片机的音乐发生器的设计最终版(全文完整版)...

本文介绍了一款基于51单片机的音乐发生器,包含创新的花样灯控制和实时音乐播放功能。通过矩阵键盘切换模式,三种独特灯效随音乐节奏变换,同时支持简谱选择和无缝歌曲切换。设计过程详述了硬件连接、软件编程及调试方法,强调了设计与实际应用的结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《基于51单片机的音乐发生器的设计.doc》由会员分享,可免费在线阅读全文,更多与《基于51单片机的音乐发生器的设计(最终版)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、GFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSwhile(){if(count!=)音乐停止,花样灯开始按照花样闪烁{switch(count){case:for(x=;xlt;x++){P=huayang[x];bee();delay();if(count!=)eak;}eak;case:for(x=;xlt;x++){P=huayang[x];bee();delay();if(count!=)eak;}eak;case:for(x=;xlt;x++){P=huayang[x];bee();delay();if(count!=)eak;}eak;}}else{song();delay();}}}DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DS播放音乐子程序流程图图播放音乐子程序流程图播放音乐子程序代码:voidsong(){uinttem;DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSucharj;j是简谱i=;while(){if(count==){eak;}if(count==)选曲tem=qnzl[i];播放千年之恋if(count==)tem=jmszl[i];播放寂寞沙洲冷if(tem==xff)结束标志eak;j=tem;取数的高位duan=;P=yinyue[j];duan=;if(j!=){timeh=cuzhi[j*];timel=cuzhi[j*+];}else{TR=;fm=;关蜂鸣器}delay(tem%);取数的低位TR=;唱完一个音停MSfm=;delay();TR=;i++;}TR=;fm=;}延时程序代码:voiddelay(uintz)延时MS,即十六分音符{uintx,y;for(x=z;xgt;x)for(y=;ygt;y);}DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSvoiddelay(uintz)延时MS{uintx,y;for(x=z;xgt;x)for(y=;ygt;y);}程序源代码(见附录A)调试检查硬件连接在PROTUES检查各硬。

2、向D,然后D熄灭,以此往复循环。与第一种方式的不同之处为:当D移向D时,D不熄灭,再从D移向D时,D也不熄灭,以此类推:图第中花样DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DS总结单片机的设计至今为止已经进入了令人鼓舞的阶段,在进行了长达两个多月的时间的摸索与实验,使我不仅仅是对于单片机入门软件与硬件的常用设计与功能有了较深入的理解,还使我对于一项设计研究的制作过程所需要的详细步骤和具体的方法具有了全面的掌握。当然在这次宝贵的毕业设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的将来被实现。总之,这次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。曾经为程序的编写而查阅大量的资料,为解决一个难题而冥思苦想,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过,但最终我成功了。我不仅品味到了结果的喜悦,更明白了过程的弥足珍贵。致谢:DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DS首先感谢我的指导老师李晓媛老师。李老师渊博的学识、认真的治学态度让我由衷地钦佩。这一段时间来,我在李老师的教诲和悉心指导下圆满地完成了毕业设计。我不仅学习到了很多有用的知识,而且懂得了许多做人的道理。我相信这些对于我以后的生活是大有裨益的。本文是在导师的直接关怀和指导下完成的,在论文的选题、展开到论文的形成,导师也给予了充分的关心并倾注了大量的心血。我在此向导师致以最崇高的敬意和最衷心的感谢。同时,我要感谢机电工程学院老师们对我的教育。衷心感谢所有帮助、支持和关心我的老师、同学、朋友!在此,我要向他们表示我深深地谢意和美好的祝福!谢谢!参考文献:[]徐仁贵、廖哲智主编单片微型计算机应用技术北京:机械工业出版社,DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDS。

3、工业出版社,[]李朝清编单片机原理及接口技术北京航空航天大学出版社,[]何立民主编MCS一系列单片机应用系统设计北京航空航天大学出版社,[]谢宜仁单片机实用技术问答人民邮电出版社.[]王芳主编电子线路ProtelSE实用教程中南大学出版社,[]谭浩强著C程序设计,第版清华大学出版社,附录A:程序源代码:includeDSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSdefineucharunsignedchardefineuintunsignedintsbitkey=P^;按key可切换花样sbitkey=P^;按key可切换歌曲sbitfm=P^;蜂鸣器连续的IO口sbitP=P^;矩阵键盘的一列ucharcodehuayang[]={xf,xbf,xdf,xef,xf,xfb,xfd,xfe,xfd,xfb,xf,xef,xdf,xbf};花样ucharcodehuayang[]={xf,xfe,xbf,xfd,xdf,xfb,xef,xf,xef,xfb,xdf,xfd,xbf,xfe};花样ucharcodehuayang[]={xf,xf,xf,xf,x,x,x,x,x,xc,xe,xf,xf,xfc,xfe,xff};charcodehuayang[]={x,xaa,xcc,x,x,x,xf,xf};ucharcount;花样标志ucharcount;歌曲标志uchartimeh,timel,i;简谱编程规则:字节高位是简谱,低位是持续时间,代表多少个十六分音符代表中央C调,E代表高八度,代表停顿最后的是结束标志ucharcodeqnzl[]={千年之恋x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,xA,x,前奏x,x,x,x,x,x,x,x,x,x,竹林的灯火到过的沙漠x,x,x,x,x,x,x,x,x,x,x,七色的国度不断飘逸风中x,x,x,x,x,x,x,x,x,x,有一种神秘灰色的旋涡x,x,x,x,x,x,x,x,x,将我卷入了迷雾中x,xA,xA,x,x,x,x,看不清的双手x,x,x,x,x,x,x,x,x,x,xC,x,一朵花传来谁经过的温柔x,x,x,x,x,xA,x,x,穿越千年的伤痛x,x,x,x,x,x,x,x,只为求一个结果x,x,。

4、ut{EA=;关总中断delay();去抖if(key==){count=;流水灯无花样TR=;i=;从头开始唱count++;if(count==)count=;}EA=;开总中断}voidtimer()interrut用于产生各种音调{TH=timeh;TL=timel;DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSfm=~fm;}voidsong(){uinttem;ucharj;j是简谱i=;while(){if(count==){eak;}if(count==)选曲tem=qnzl[i];if(count==)tem=jmszl[i];if(tem==xff)eak;j=tem;取数的高位P=yinyue[j];if(j!=){timeh=cuzhi[j*];timel=cuzhi[j*+];}else{TR=;fm=;关蜂鸣器}delay(tem%);取数的低位TR=;唱完一个音停MSfm=;delay();TR=;i++;}TR=;fm=;}voiddelay(uintz)延时MS,即十六分音符{uintx,y;for(x=z;xgt;x)for(y=;ygt;y);DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DS}voiddelay(uintz)延时MS{uintx,y;for(x=z;xgt;x)for(y=;ygt;y);}voidbee()蜂鸣器叫一声{uchari;for(i=;ilt;i++){fm=~fm;delay();}fm=;}SDJKFJDSKJFDSJF;DS[]刘仁宇、施伟主编模拟电子技术北京:机械工业出版社,[]卢庆林主编数字电子技术北京:机械工业出版社,[]龙志文主编电力电子技术北京:机械工业出版社,[]邱丽芳主编单片机原理与应用人民邮电出版社,[]王廷才主编电子线路CADProtel使用指南机械工业出版社,[]林志琦主编基于Proteus的单片机可视化软硬件仿真北京航天航空出版社,[]徐仁贵主编单片微型计算机应用技术[M]北京:机械工业出版社,[]戴佳戴卫恒主编单片机C语言应用程序设计实例精讲[M]电子工业出版社,[]张迎新主编单片机计算机原理技术国防。

5、件管脚是否连接正确,线路逻辑是否正确,例如:晶振电路的连接,复位电路是否设计正确。检查软件系统.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。.将所有程序组织起来,在软件环境下运行,检查程序是否正确。通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。仿真测试结果软件部分在初次编写完成之后,出现过一些错误,随后多次向老师和有经验的学长求教,根据老师和学长的提出的修改意见,自己也查了许多的文献资料,确定了最终的源程序。但是理论上的成立并不代表在实际运用中一定可以实现所期望的功能。所以,使用Protues进行仿真是十分必要的,它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持、HC、PICDsPIC、AVR、ARM、和MSP等,年即将增加Cortex和DSP系列处理器,并持续增加其DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DS他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。总体运行图如图所示图系统总体运行图花样灯种花样图由于截图只能看到静态图,不能看到整体图样,下面画图说明:图花样灯()第一种花样灯显示方式为:从D移向D,然后D熄灭,再从D移向D,然后D熄灭,以此类推,往复循环。DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DS图第一种花样()第二种花样灯显示方式为:从两边向中间移动,首先从D移向D,再从D移向D,D移向D,D移向D,D移向D,D移向D,D移向D,最后再从D开始往复循环。具体如图:图第种花样()第三种花样灯显示方式为:从D移向D,然后D熄灭,再从D移。

6、HKJHGFDSJHFJHFJKHF简谱音调对应的定时器初值适合M的晶振ucharcodecuzhi[]={xff,xff,占位xFC,xE,中央C调xFC,xED,xFD,x,xFD,xA,xFD,xB,xFD,xF,xFE,xD,xFE,x,高八度xFE,x,xFE,xA,xFE,xC,xFE,xD,xFE,xF,xFF,x};ucharyinyue[]={xff,xfe,xfd,xfb,xf,xef,xdf,xbf,xf,x,x};将音调转化为对应的LED样式voiddelay(uintz);延时MSvoiddelay(uintz);延时MS,即十六分音符voidsong();voidbee();蜂鸣器叫一声main(){ucharx;count=;流水灯无花样count=;唱第一首歌P=;选取矩阵键盘的一列EA=;开总中断EX=;开外部中断IT=;外部中断下降沿触发方式EX=;开外部中断IT=;外部中断下降沿触发方式TMOD=x;定时器工作在方式DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSTH=;TL=;ET=;while(){if(count!=){switch(count){case:for(x=;xlt;x++){P=huayang[x];delay();if(count!=)eak;}eak;case:for(x=;xlt;x++){P=huayang[x];delay();if(count!=)eak;}eak;case:for(x=;xlt;x++){P=huayang[x];delay();if(count!=)eak;}eak;case:for(x=;xlt;x++){P=huayang[x];delay();if(count!=)eak;}DSJKFHJKDHFJDHJKFHKDSJHJKDHFJKDSHKJHGFDSJHFJHFJKHFKSDJKFJDSKJFDSJF;DSeak;}}else{song();delay();}}}voidint()interrut{EA=;关总中断delay();去抖if(key==){count=;不让蜂鸣器唱歌TR=;count++;if(count==)count=;}EA=;开总中断}voidint()interr。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值