音乐盒设计(单片机课程设计)_第1页
音乐盒设计(单片机课程设计)_第2页
音乐盒设计(单片机课程设计)_第3页
音乐盒设计(单片机课程设计)_第4页
音乐盒设计(单片机课程设计)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1安庆师范学院物理与电气工程学院121、设计任务和要求112、总体设计23、硬件设计3.1硬件电路3.2原理说明24、软件设计55、仿真、安装和调试66、收获与体会附件1:元件清单..........................67附件2:总仿真电路图附件3:音乐程序..........................82单片机课程设计报告音乐盒设计1、设计任务和要求(1)利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。(2直接当前播放的歌曲。(3)可通过功能键选择播放上一首、下一首和暂停播放歌曲。2、总体设计(1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲(2)利用8052的内部定时器使其工作在计数器模式MODE1下,改变记数值TH0及TL0以产生不同频率的方法。例如频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每记数9次时将I/O口反相,就可得到中音D0(523HZ)。记数脉冲值与频率的关系公式如下:N=Fi/2/FrN:记数值Fi:内部计时一次为1微秒.故其频率为1MHZFr;要产生的频率(3):起记数值的求法如下:T=65536-N=65536-Fi/2/Fr例如:设K=65536,F=1000000=Fi=1MHZ,求低音D0(1046HZ)的记数值。T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音D0的T=65536-500000/262=63627中音D0的T=65536-500000/523=64580高音D0的T=65536-500000/1047=650591单片机课程设计报告3、硬件设计3.1硬件电路本设计中用到89C52单片机,扬声器、键盘、连接线。1.最小系统⑴单片机:本次设计使用单片机芯片AT89C52AT89C52的工作特性:•内含8KB的FLASH存储器檫写次数1000次;•256x8bit内部RAM;•具有32根可编程I/O线;•具有3个16位编程定时器•AT89C52共有6和个定时器中断(定时器和串行口中断•具有1个全双工的可编程串行通信接口;•具有可编程3级程序锁定位;•AT89C52的工作电源为5(1±0.2)V且典型值为5V;•AT89C52最高工作频率为24MHZ;•AT89C52的编程频率为3~24MHZ,编程启动电流和启动电压分别为1mA、5或12V。3.2原理说明当键盘有键按下时,判断键值,启动计数器T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T0,显示歌曲号。(1)硬件电路中用0、1分别接k1、k2作为上、下一曲的功能键(2)用P0控制七段码a,b,c,d,e,f。(3)用P1.2口控制喇叭。(4)电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。4、软件设计本程序可以实现课程设计的基本要求,并可以通过按键播放三首歌曲,程序流程图如下:2单片机课程设计报告3单片机课程设计报告4单片机课程设计报告5、仿真、安装和调试按照上面设计的电路在proteus软件内画图,打开单片机软件开发系统Keil,选择89C52单片机,在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到proteus中的AT89C52单片机中进行仿真,观察实验现象。仿真能实现播放音乐,按键选择曲目,暂停,播放功能。仿真成功后,安装好实验板,然后将音乐程序下载到电路板内,观察结果。能实现播放音乐,按键换曲等功能。程序调试中出现的问题及解决的办法:(1)RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。(2)程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。(4)改。(5)编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写流程图。(6)LCD计时正常显示的解决办法:a.1设定在方式250us,由于定时中断过于频繁,使CPU负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。但还有问题。b.当音乐为全4T1显示和音乐播放都会好一些。c.另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,因时间较长,当定时器T1变差。改进方案:若采用可以定时时间更长的单片机,可以避免所有问题。5单片机课程设计报告6、收获与体会(1)次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升;软件方面,在程序的设计,程序的调试方面都有了很大的进步。(2)计,除了自己做好自己的课题外,在遇到不懂的地方互相讨论,查阅资料,互助解决问题。另外在编我们也是这么做的,这一点在这次的课程设计中十分重要。(3)乐,心理非常自豪。这次的课程设计在一定程度上改变了我学习单片机这门课程的态度,从最初的认的系统。我明白了一个人要想做好一件事,就必须具备自信心,耐心,还要有毅力,要胆大心细,要勇于尝试,要手脑并用,最后才能交出一份令人满意的答卷。附件:元件清单名称电阻61411数码管开关单片机扬声器6单片机课程设计报告电源电容晶振23130pf(2个),10uf(1个)CRYSTAL附件2:总仿真电路图RP1C2C3123456789U1X1C19R5R6LS1R1R2R3暂停播放7单片机课程设计报告附件:音乐程序shuzhiEQU3fhsongEQUp1.2playEQUp3.0addoneEQUp3.1suboneEQUp3.2dulEQUP1;选曲目的地址;扬声器播放;播放停止键;曲目加一键;曲目减一键;段选welEQUP2;位选ORG0000HLJMPSTARTORG000BHAJMPcont;定时器0溢出中断入口地址ORG0013HAJMPpause;外部中断一入口地址;指向外部中断程序ORG0100HSTART:MOVSP,#50HMOVTH0,#0DBHMOVTL0,#0FFHMOVTMOD,#01HMOVIE,#86HMOVTCON,#00HMOVR0,#00HMOVshuzhi,#00H(是否顺序播放音乐)MAIN:;定时器赋初值;设定T1工作于方式2;开中断JNBplay,firstSJMPMAIN;判断P3.0键是否按下first:ACALLdel20JNBplay,firstMOVshuzhi,#00HMOVdul,#06HMOVwel,#80HMOVDPTR,#dat1ACALLmusic0ACALLnextRET;共阴数码管显示1;dat1首地址赋给DPTRnext:INCshuzhi8单片机课程设计报告MOVA,shuzhiCJNEA,#01,LOOP3MOVDPTR,#dat2MOVdul,#5BHMOVwel,#80HACALLmusic0INCA;A是否=1,不等就跳转到LOOP3;表2首地址送DPTR;显示数值2LOOP3:CJNEA,#02,LOOP4MOVDPTR,#dat3MOVdul,#4FHMOVwel,#80HACALLmusic0INCA;A是否=2,不等就跳转到LOOP4;表3首地址送DPTR;显示数值3LOOP4:CJNEA,#03,nextACALLfirstRET(按键播放上一首音乐)last:DECshuzhiMOVa,shuzhiCJNEa,#02,last1MOVdptr,#dat3MOVdul,#4FhMOVwel,#80hACALLmusic0last1:cjnea,#01,last2MOVdptr,#dat2MOVdul,#5BhMOVwel,#80hACALLmusic0last2:cjnea,#00,lastMOVdptr,#dat1MOVdul,#06hMOVwel,#80hACALLmusic0RETmusic0:MOV20h,#00h;中断计数单元清0music1:clraMOVCa,@a+dptrJZend0;查表取音阶常数;累加器判0看是否是结束符9单片机课程设计报告CJNEa,#0ffh,music5LJMPmusic3;是休止符?;产生100ms停顿music5:NOPkey:JNBplay,k0;判断P3.0键是否按下JNBaddone,k1JNBsubone,k2MOVr6,a;判断P3.2键是否按下;判断P3.1键是否按下;音阶常数送R6INCdptr;DPTR+1MOVa,#0MOVCa,@a+dptrMOVr7,a;取常数送R7SETBtr0;启动定时器T0music2:nopCJNEr0,#0,$CPLsong;输出电平取反;音阶常数送R3MOVa,r6MOVr3,aLCALLdel20MOVa,r7;节拍常数送A;节拍时间到否CJNEa,20h,music2MOV20h,#00hINCDPTR;为取下一音阶作准备LJMPmusic1music3:NOPCLRtr0MOVr2,#14h;休止100ms;关闭定时器music4:NOPMOVr3,#250;R3=250LCALLdel20DJNZr2,music4INCdptr;为取下一音阶作准备LJMPmusic1end0:MOVr2,#200;歌曲结束后,延时1s后继续music6:LCALLdel20DJNZr2,music6MOVr3,#25010单片机课程设计报告(按键选择)k1:ACALLdel20JNBaddone,k1ACALLnextk2:ACALLdel20JNBsubone,k2ACALLlastk0:ACALLdel20JNBplay,k0LJMPstartRET;调用延时子程序;判断P3.2键是否释放;判断P3.1键是否释放;判断3.0键是否释放;延时子程序del20:MOVr4,#05hdel4:NOPDJNZr4,del4DJNZr3,del20RETcont:INC20hMOVth0,#0dbhMOVtl0,#0ffhRETI;计数单元+1;重新10ms定时初值;跳出中断(停止播放)pause:ACALLdel20JNBp3.0,pauseMOVa,r0;判断P3.0键是否有释放;把R0的值给ACPLa;A值取反MOVr0,aRETIdat1:db3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,30h,20h,33h,10h,33h,10hdb3bh,60h,40h,20h,4ch,80h,0ffhdb3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,2bh,20h,30h,20hdb33h,20h,3bh,20h,3bh,20h,40h,2bh,3bh,80h,0ffhdb19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb2bh,20h,2bh,40h,3bh,20h,2bh,20h,2bh,40h,2bh,20h,0ffhdb26h,20h,2bh,20h,2bh,20h,30h,20h,2bh,80h,0ffhdb2bh,20h,2bh,40h,3bh,20h,30h,20h,30h,40h,2bh,20h,0ffhdb33h,20h,3bh,20h,3bh,20h,40h,20h,3bh,80h,0ffh,0ffh11单片机课程设计报告dat2:db18h,30h,1ch,10h,20h,40h,1ch,10hdb18h,10h,20h,10h,1ch,10h,18h,40hdb1ch,20h,20h,20h,1ch,20h,18h,20hdb20h,80h,0ffh,20h,30h,1ch,10h,18hdb20h,15h,20h,1ch,20h,20h,20h,26hdb40h,20h,20h,2bh,20h,26h,20h,20hdb20h,30h,80h,0ffh,20h,20h,1ch,10hdb18h,10h,20h,20h,26h,20h,2bh,20hdb30h,20h,2bh,40h,20h,20h,1ch,10hdb18h,10h,20h,20h,26h,20h,2bh,20hdb30h,20h,2bh,40h,20h,30h,1ch,10hdb18h,20h,15h,20h,1ch,20h,20h,20hdb26h,40h,20h,20h,2bh,20h,26h,20hdb20h,20h,30h,80h,20h,30h,1ch,10hdb20h,10h,1ch,10h,20h,20h,26h,20hdb2bh,20h,30h,20h,2bh,40h,20h,15hdb1fh,05h,20h,10h,1ch,10h,20h,20hdb26h,20h,2bh,20h,30h,20h,2bh,40hdb20h,30h,1ch,10h,18h,20h,15h,20hdb1ch,20h,20h,20h,26h,40h,20h,20hdb2bh,20h,26h,20h,20h,20h,30h,30hdb20h,30h,1ch,10h,18h,40h,1ch,20hdb20h,20h,26h,40h,13h,60h,18h,20hdb15h,40h,13h,40h,18h,80h,00hdat3:db26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20hdb30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20hdb20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2

温馨提示

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

评论

0/150

提交评论