单片机课程设计报告-音乐花样灯.doc_第1页
单片机课程设计报告-音乐花样灯.doc_第2页
单片机课程设计报告-音乐花样灯.doc_第3页
单片机课程设计报告-音乐花样灯.doc_第4页
单片机课程设计报告-音乐花样灯.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计报告名 称:院 系:班 级:学生姓名:同组姓名: 日 期:1、设计方案设计一个基于mcs-51系列单片机的音乐盒,利用试验板上的开关,按开关切换演奏出不同的乐曲。蜂鸣器发出某个音调,与之相对应的led亮起。使用两个按键,一个用来切换歌曲,另一个切换八路led的变化花样。2、实现功能:1)电路有两种工作模式:演奏音乐模式和花样灯模式。演奏音乐模式:演奏完整的一首的歌曲,八路led随着音乐变化。花样灯模式:八路led变化出各种花样,蜂鸣器随着发出“嘀嘀”声2)按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲。3)按下按键2进入花样灯模式,再按切换led花样,共四种花样。此电路的程序只占用了1k左右,可编制更多的音乐和led花样,使系统的功能更加强大。3、硬件电路设计电路原理图由于51单片机的电流驱动能力较弱,而蜂鸣器的工作电流为几十ma,故驱动蜂鸣器需用一个pnp三极管。单片机给p3.0低电平,则蜂鸣器开;给高电平则蜂鸣器关。led接到单片机的p1口,拉低io口,可使led亮起。两个按键的一端接单片机的io口,另一端接地。不按下去时与按键相连的io口被单片机内部上拉电阻拉高,按下则与之相连的io口变成低电平,引发单片机中断。4、软件设计程序设置了两个标志count1和count2,分别初始化为1和0。按键1使得count1在1和2之间切换,按键2使得count2在14之间切换。程序检测count1的值,count1等于1时播放第一首歌曲,等于2时播放第二首。另一方面根据count2的值来切换led的花样。count1和count2的值是互斥的,设置count1等于1、2时,count2同时设置为0;设置count2等于14时,count1也同时设置为0。歌曲简谱的编码规则:do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。举例1:音调do,发音长度为两拍,即二分音符,将其编码为0x18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。确定定时器0对应于音调的初值:假设要得到500hz的声音。500hz的声音信号每个周期为2ms,即2000us。假设单片机采用12mhz的晶振,每个机器周期的时间为12/12m=1 us。故单片机操作(对与蜂鸣器相连的io口取反)一次蜂鸣器的时间间隔为2000us/1us/2=1000个机器周期,故给工作在方式1的定时器0赋的初值为th0(65536-1000)/256,tl0=(65536-1000)%256。下面给出定时器0工作在方式1对应各音调的初值,假定使用的晶振是12mhz:5、程序流程图主程序流程图播放音乐子程序流程图count2=0?计数i=0count2=1?从第一个编码表取第i个数从第二个编码表取第i个数结束标志?取数高4位,点亮相应led是0?关蜂鸣器,停顿一次给定时器0置入相应初值取数的低4位,调用软件延时i=i+1,修改编码指针结束yesnoyesnoyesyesnono6、调试音乐盒的程序设计过程中,遇到了很多问题,但是通过不断调试仿真,最终都得到解决。问题是出在蜂鸣器与单片机的输出端口上,在这个环节消耗了很多时间。之前这些程序通过星研软件编译没有错误,而且通过ptotues仿真成功,但在实验板上调试运行时却不行。最终在迟老师的指导下发现问题的所在,就是在单片机输出端口出现问题,由于实验箱中单片机芯片的p2口在实验箱中被其他硬件电路所占用,所以我们在使用此端口时没有达到我们预想的效果,当我们把程序中单片机给蜂鸣器的信号输出端修改为由p3口输出信号,问题最终得到了解决。7、心得体会做单片机课程设计是十分有意义的,而且是十分必要的。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。通过这次单片机课程设计,我们不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,同时也使我们认识到自身存在的不足之处,无论是理论上还是遇到问题的处理能力上都还有待提高,而且这也激发了我们今后努力学习的兴趣。此次课程设计结果能够符合要求,成功完成了此次课程设计任务。但我们不只在乎这一结果,更加在乎的是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。此次课程设计结束了,但是从中学到的知识会让我受益终身。发现问题、提出问题、分析问题、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。8、参考文献1 单片机演奏音乐时音调和节拍的确定方法 伟纳电子 2音乐和简谱知识 网络资源3千年之恋及寂寞沙洲冷的简谱 网络资源3芯片资料下载网站三毛电子世界、21ic中国电子网等9、附录软件源程序:#include #define uchar unsigned char#define uint unsigned intsbit duan=p26;sbit key1=p32;/按key1可切换花样sbit key2=p33;/按key2可切换歌曲sbit fm=p37;/蜂鸣器连续的io口sbit p34=p34;/矩阵键盘的一列uchar code huayang1=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf;/花样1uchar code huayang2=0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe;/花样2uchar code huayang3=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;char code huayang4= 0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0;uchar count1;/花样标志uchar count2;/歌曲标志uchar timeh,timel,i;/=简谱=/编程规则:字节高位是简谱,低位是持续时间,/代表多少个十六分音符/1-7代表中央c调,8-e代表高八度,0代表停顿/最后的0是结束标志uchar code qnzl= /千年之恋0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xa8,0x08,/前奏0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,/竹林的灯火 到过的沙漠 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,/七色的国度 不断飘逸风中 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,/有一种神秘 灰色的旋涡 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,/将我卷入了迷雾中 0x63,0xa1,0xa2,0x62,0x92,0x82,0x52,/看不清的双手 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7c,0x02,/一朵花传来谁经过的温柔 0x61,0x71,0x82,0x71,0x62,0xa2,0x71,0x76,/穿越千年的伤痛 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,/只为求一个结果 0x61,0x71,0x82,0x71,0x62,0xa3,0x73,0x62,0x53,/你留下的轮廓 指引我 0x42,0x63,0x83,0x83,0x91,0x91,/黑夜中不寂寞 0x61,0x71,0x82,0x71,0x62,0x0a2,0x71,0x76,/穿越千年的哀愁 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,/是你在尽头等我 0x61,0x71,0x82,0x71,0x62,0xa3,0x73,0x62,0x53,/最美丽的感动 会值得 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff/结束标志/用一生守候;uchar code jmszl= /寂寞沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,/自你走后心憔悴0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,/白色油桐风中纷飞0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,/落花似人有情 这个季节0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,/河畔的风放肆拼命地吹0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,/不断拨弄离人的眼泪0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,/那样浓烈的爱再也无法给0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,/伤感一夜一夜0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,/当记忆的线缠绕过往支离破碎0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,/是慌乱占据了心扉 0x31,0x81,0x81,0x81,0x61,0x91,0x82,/有花儿伴着蝴蝶0x51,0x51,0x51,0x51,0x31,0x61,0x53,/孤雁可以双飞0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,/夜深人静独徘徊0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,/当幸福恋人寄来红色分享喜悦0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,/闭上双眼难过头也不敢回0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,/仍然捡尽寒枝不肯安歇微带着后悔0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,/寂寞沙洲我该思念谁0xff;/=简谱音调对应的定时器初值=/适合11.0592m的晶振uchar code cuzhi= 0xff,0xff,/占位 0xfc,0x8e,/中央c调1-7 0xfc,0xed, 0xfd,0x43, 0xfd,0x6a, 0xfd,0xb3, 0xfd,0xf3, 0xfe,0x2d, 0xfe,0x47,/高八度1-7 0xfe,0x76, 0xfe,0xa1, 0xfe,0xc7, 0xfe,0xd9, 0xfe,0xf9, 0xff,0x16 ;uchar yinyue=0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0;/将音调转化为对应的led样式void delay1(uint z);/延时1msvoid delay(uint z);/延时165ms,即十六分音符void song();void beep();/蜂鸣器叫一声main()uchar x;count1=0;/流水灯无花样count2=1;/唱第一首歌p34=0;/选取矩阵键盘的一列ea=1;/开总中断ex0=1;/开外部中断0it0=1;/外部中断0下降沿触发方式ex1=1;/开外部中断1it1=1;/外部中断1下降沿触发方式tmod=0x01;/定时器0工作在方式1th0=0;tl0=0;et0=1;while(1)if(count1!=0)switch(count1)case 1:for(x=0;x14;x+)duan=1;p1=huayang1x;beep();delay1(300);duan=0;if(count1!=1)break;break;case 2:for(x=0;x14;x+)duan=1;p1=huayang2x;beep();delay1(300);du

温馨提示

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

评论

0/150

提交评论