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

下载本文档

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

文档简介

1、基于89c52单片机音乐播放的设计安庆师范学院物理与电气工程学院 TOC o 1-5 h z 1、设计任务和要求 12、总体设计 13、硬件设计 2硬件电路2.原理说明2.4、软件设计 25、仿真、安装和调试 56、收获与体会 6附件1 :元件清单 6附件2:总仿真电路图 7附件3:音乐程序 8单片机课程设计报告音乐盒设计1、设计任务和要求(1)利用I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲。(2直接当前播放的歌曲。(3)可通过功能键选择播放上一首、下一首和暂停播放歌曲。2、总体设计(1)要产生音频脉冲,只要算出某一音频的周期(1/音频),然后将此周期除以2,即为半周

2、期的时 问,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期 时间再对I/O 口反相,就可在I/O脚上得到此频率的脉冲(2)利用8052的内部定时器使其工作在计数器模式 MODET,改变记数值TH0及TL0以产生不同 频率的方法。例如频率为 523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时956/1=956在每 记数9次时将I/O 口反相,就可得到中音D0(523HZ)O 记数脉冲值与频率的关系公式如下:N=Fi/2/Fr N :记数值Fi :内部计时一次为1微秒.故其频率为1MHZFr ;要产生的频率(3):起记数值的求法如下:T=

3、 65536- N= 65536- Fi /2/Fr例如:设 K= 65536, F= 1000000= Fi=1MHZ 求低音 D0 (523HZ,高音的 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= 65059单片机课程设计报告3、硬件设计硬件电路本设计中用到89C

4、52单片机,扬声器、键盘、连接线。.最小系统单片机:本次设计使用单片机芯片 AT89C52AT89C52勺工作特性:?内含8KB的FLASHY储器榛写次数1000次;?256x8bit 内部 RAM?具有32根可编程I/O线;?具有3个16位编程定时器?AT89C52共有6个中断向量:两个外中断(INT0和INT1), 3个定时器中断(定时器0、1、2)和用行口中断?具有1个全双工的可编程串行通信接口;?具有可编程3级程序锁定位;?AT89C52勺工作电源为5 (10.2) V且典型值为5V;?AT89C52ft高工作频率为24MHz?AT89C52勺编程频率为324MHz编程启动电流和启动电

5、压分别为1mA 5或12V。原理说明当键盘有键按下时,判断键值,启动计数器 T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T0,显小歌曲号。(1)硬件电路中用INT0 而1分别接k1、k2作为上、下一曲的功能键(2)用P0控制七段码a,b,c,d,e,f 。(3)用P1.2 口控制喇叭。(4)电路为12MH如振频率工作,起振电路中 C1,C2均为30pf。4、软件设计本程序可以实现课程设计的基本要求,并可以通过按键播放三首歌曲,程序流程图如下:单片机课程设计报告总体框图:r按键2, 3和卜一曲,下一曲按键1:L色放暂停,主程序框图:单片机课程设计报告子程序框图:阡F斗宝尸寻TJ

6、定左:【门口4:-1.六宝仃”Musjc子程序流程图4打壬定VH- 三工叶心 周三三晋二理 开始害存器初始化Del延时子程序渣程图单片机课程设计报告5、仿真、安装和调试按照上面设计的电路在proteus软件内画图,打开单片机软件开发系统Keil,选才? 89C52单片机, 在其中编写程序,运行生成一个后缀名为hex的文件,然后将该文件下载到proteus中的AT89C52I片 机中进行仿真,观察实验现象。仿真能实现播放音乐,按键选择曲目,暂停,播放功能。仿真成功后, 安装好实验板,然后将音乐程序下载到电路板内,观察结果。能实现播放音乐,按键换曲等功能。程序调试中出现的问题及解决的办法:(1)有

7、时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序 中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好 不要留空行。(2)程序中的跳转指令的运用很重要,为保险起见,都用LJMP我们就遇到过跳转指令用错程序无法正常运行的现象。当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。(4)编程过程中要注意加注释或分割线, 否则,在程序过长时容易变得很乱,不便于查找或更 改。(5)编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写

8、流程图。(6) LCD计时正常显示的解决办法:a.两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us, 由于定时中断过于频繁,使 CPU负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1, 16位计数,计50ms,效果有很大改观。但还有问题。b.当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,LCD显示和音乐播放都会 好一些。c.另外,在歌曲中,当遇到一个音符发音为 4拍,在编曲中为*CH,因时间较长,当定时器T1 此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果 变差。

9、改进方案:若采用可以定时时间更长的单片机,可以避免所有问题。单片机课程设计报告6、收获与体会(1)上学期学习单片机的课时不多,对单片机的硬件设计,软件设计掌握的深度不够,但通过此 次课程设计,明显的改善了,首先对于硬件电路的工作原理有了进一步的学习,同时有了一个提升; 软件方面,在程序的设计,程序的调试方面都有了很大的进步。(2)在一个好的氛围里才能踏下心来做东西,在这一段时间里,寝室成员都认真对待这次课程设 计,除了自己做好自己的课题外,在遇到不懂的地方互相讨论,查阅资料,互助解决问题。另外在编 程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误。 我们

10、也是这么做的,这一点在这次的课程设计中十分重要。(3)通过这次课程设计,我体会到了成功的喜悦,听着自己设计的程序下载到单片机中播放出音 乐,心理非常自豪。这次的课程设计在一定程度上改变了我学习单片机这门课程的态度,从最初的认 为学它没有什么实际意义,到如今爱上单片机学习,并希望能将理论运用到实践,设计出更好更完整 的系统。我明白了一个人要想做好一件事,就必须具备自信心,耐心,还要有毅力,要胆大心细,要 勇于尝试,要手脑并用,最后才能交出一份令人满意的答卷。附件1:元件清单名称数量(个)型号备注电阻6排阻 RX8(1 个)10k(3 个),500(3 个)数码管17SEG-DIGITAL开关4B

11、UTTON单片机1AT89C52扬声器1SPEAKER单片机课程设计报告电源25V电容330pf(2 个),10uf(1 个)晶振1CRYSTAL附件2:总仿真电路图C230pFC330pFR650018C110uFLSISOUNDERX1CRYSTAL29303119R5500U112345678:XTAL1P0.0/AD0P0 1/AD1XTAL2P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSEN ALE EAP1.0/T2P1.1/T2EXP1.2P2.3/A11P2.4/A12P2.

12、5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P1.3P1.4P3.3/INT1P3.4/T0P1.5P3.5/T1P1.6P1.7P3.6/WRP3.7/RDAT89S523456789RP1RESPACK-8123938373635343332212223242526 27 281011121314151617niR110k2R3II. 10k暂停播放上一曲单片机课程设计报告附件3:音乐程序shuzhi EQU 3fh song EQU p1.2 play EQU p3.0 addone EQU p3.1 subone EQU p3.2 dul

13、 EQU P1 wel EQU P2 ORG 0000H LJMP START ORG 000BH AJMP cont ORG 0013H AJMP pauseORG 0100H START:MOV SP,#50HMOV TH0,#0DBH MOV TL0,#0FFH MOV TMOD,#01H MOV IE,#86H MOV TCON,#00H MOV R0,#00H MOV shuzhi,#00H (是否顺序播放音乐) MAIN:JNB play,first SJMP MAINfirst:ACALL del20 JNB play,first MOV shuzhi,#00H MOV dul,

14、#06H MOV wel,#80H MOV DPTR,#dat1ACALL music0 ACALL next RETnext:选曲目的地址 扬声器播放 播放停止键 曲目加一键 曲目减一键 ;段选;位选定时器0溢出中断入口地址外部中断一入口地址指向外部中断程序定时器赋初值;设定T1工作于方式2 开中断判断P3.0键是否按下共阴数码管显示1;dat1首地址赋给 DPTRINC shuzhi单片机课程设计报告MOV A,shuzhiCJNE A,#01,LOOP3MOV DPTR,#dat2MOV dul,#5BHMOV wel,#80HACALL music0INC ALOOP3:CJNE A,

15、#02,LOOP4MOV DPTR,#dat3MOV dul,#4FHMOV wel,#80HACALL music0INC ALOOP4:CJNE A,#03,nextACALL firstRET(按键播放上一首音乐) last:DEC shuzhiMOVi,shuzhiCJNE a,#02,last1MOSptr,#dat3MOSul,#4FhMOV/el,#80hACALL music0 last1: cjne a,#01,last2MOSptr,#dat2MOSul,#5BhMOV/el,#80hACALL music0 last2: cjne a,#00,lastMOSptr,#da

16、t1MOSul,#06hMOV/el,#80hACALL music0 RETmusic0:MOK0h,#00h;music1:clr aMOVC a,a+dptr ;JZ end0;A 是否=1,不等就跳转到LOOP3;表2首地址送DPTR;显示数值2;A 是否=2,不等就跳转到LOOP4; 表3首地址送DPTR;显示数值3中断计数单元清0查表取音阶常数累加器判0看是否是结束符单片机课程设计报告CJNE a,#0ffh,music5 ;是休止符?LJMP music3 ;产生 100ms 停顿 music5:NOPkey:JNB play,k0JNBaddone,k1 JNBsubone,k

17、2 MOV6,a INC dptr MO%#0MOVC a,a+dptrMOV7,aSETB tr0music2:nopCJNE r0,#0,$ CPLsongMO% r6MOV3,aLCALL del20MO% r7CJNE a,20h,music2 MOK0h,#00hINC DPTRLJMP music1music3:NOPCLRtr0;MOV2, #14hmusic4:NOPMOV3, #250LCALL del20DJNZ r2, music4 INC dptr LJMP music1 end0: MOV2, #200music6:MOV3, #250LCALL del20DJNZ

18、r2,music6; 判断P3.0键是否按下判断P3.2键是否按下判断P3.1键是否按下音阶常数送R6;DPTR+1取常数送R7启动定时器T0;输出电平取反;音阶常数送R3;节拍常数送A; 节拍时间到否;为取下一音阶作准备;休止100ms关闭定时器;R3=250为取下一音阶作准备歌曲结束后,延时1s后继续10单片机课程设计报告(按键选择)k1: ACALL del20 JNBaddone,k1 ACALL nextk2: ACALL del20 JNBsubone,k2 ACALL lastk0: ACALL del20 JNBplay,k0 LJMP start RETdel20: MOV

19、r4,#05hdel4: NOPDJNZ r4,del4 DJNZ r3,del20 RETcont: INC 20h MOVh0,#0dbh MOV0,#0ffhRETI;(停止播放)pause: ACALL del20 JNBp3.0,pause MO%r0CPLa;AMOV0,a RETI;调用延时子程序判断P3.2键是否释放判断P3.1键是否释放;判断3.0键是否释放;延时子程序计数单元+1重新10ms定时初值跳出中断判断P3.0键是否有释放把R0的值给A值取反dat1:db 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb 3bh,20h,

20、3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,30h,20h,33h,10h,33h,10hdb 3bh,60h,40h,20h,4ch,80h,0ffhdb 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,2bh,20h,30h,20

21、hdb 33h,20h,3bh,20h,3bh,20h,40h,2bh,3bh,80h,0ffhdb 19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb 20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb 19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb 20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,2bh,20h,2bh,40h,2bh,2

22、0h,0ffhdb 26h,20h,2bh,20h,2bh,20h,30h,20h,2bh,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,30h,20h,30h,40h,2bh,20h,0ffhdb 33h,20h,3bh,20h,3bh,20h,40h,20h,3bh,80h,0ffh,0ffh11单片机课程设计报告dat2:db 18h,30h,1ch,10h,20h,40h,1ch,10hdb 18h,10h,20h,10h,1ch,10h,18h,40hdb 1ch,20h,20h,20h,1ch,20h,18h,20hdb 20h,80h,0ffh,20h,3

23、0h,1ch,10h,18hdb 20h,15h,20h,1ch,20h,20h,20h,26hdb 40h,20h,20h,2bh,20h,26h,20h,20hdb 20h,30h,80h,0ffh,20h,20h,1ch,10hdb 18h,10h,20h,20h,26h,20h,2bh,20hdb 30h,20h,2bh,40h,20h,20h,1ch,10hdb 18h,10h,20h,20h,26h,20h,2bh,20hdb 30h,20h,2bh,40h,20h,30h,1ch,10hdb 18h,20h,15h,20h,1ch,20h,20h,20hdb 26h,40h,20

24、h,20h,2bh,20h,26h,20hdb 20h,20h,30h,80h,20h,30h,1ch,10hdb 20h,10h,1ch,10h,20h,20h,26h,20hdb 2bh,20h,30h,20h,2bh,40h,20h,15hdb 1fh,05h,20h,10h,1ch,10h,20h,20hdb 26h,20h,2bh,20h,30h,20h,2bh,40hdb 20h,30h,1ch,10h,18h,20h,15h,20hdb 1ch,20h,20h,20h,26h,40h,20h,20hdb 2bh,20h,26h,20h,20h,20h,30h,30hdb 20h,30h,1ch,10h,18h,40h,1ch,20hdb 20h,20h,26h,40h,13h,60h,18h,20hdb 15h,40h,13h,40h,18h,80h,00hdat3:db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h db 30h,20h,39h,10h,30h,10h

温馨提示

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

评论

0/150

提交评论