下载此文档

音乐盒设计(单片机课程设计).doc


文档分类:通信/电子 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
学****资料收集于网络,仅供参考
基于 89c52 单片机音乐播放的设计
安动计数器 T1,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。
同时启动定时器 T0, 显示歌曲号。
( 1) 硬件电路中用 INT 0 、 INT 1分别接 k1、k2 作为上、下一曲的功能键
( 2) 用 P0 控制七段码 a,b,c,d,e,f 。
(3)用 口控制喇叭。
( 4) 电路为 12MHZ晶振频率工作,起振电路中 C1,C2 均为 30pf 。
4、软件设计
本程序可以实现课程设计的基本要求,并可以通过按键播放三首歌曲,程序流程图如下:
学****资料
学****资料收集于网络,仅供参考
总体框图:
主程序框图 :
学****资料
学****资料收集于网络,仅供参考
子程序框图:
学****资料
学****资料收集于网络,仅供参考
5、仿真、安装和调试
按照上面设计的电路在 proteus 软件内画图 , 打开单片机软件开发系统 Keil, 选择 89C52单片机 , 在其中编写程序 , 运行生成一个后缀名为 hex 的文件 , 然后将该文件下载到 proteus 中的 AT89C52单片机中进行仿真 , 观察实验现象。仿真能实现播放音乐,按键选择曲目,暂停,播放功能。仿真成功后,安装好实验板 , 然后将音乐程序下载到电路板内 , 观察结果。能实现播放音乐,按键换曲等功能。
程序调试中出现的问题及解决的办法:
(1) 有时会出现程序一点错误也没有, 但就是不能正常运行的现象, 最后我们发现是因为程序中有的指令书写得不规范导致的, 例如有的 RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。
(2) 程序中的跳转指令的运用很重要,为保险起见,都用 LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。当用 JNZ指令时,跳转范围比较少,这时要用一个标号中转。
(3) 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
(4) 编程过程中要注意加注释或分割线, 否则,在程序过长时容易变得很乱, 不便于查找或更
改。
(5) 编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着 MP3
的工作方式列写流程图。
(6) LCD 计时正常显示的解决办法:
两个定时器同时工作, 存在中断时序问题,刚开始时我们把定时器 1 设定在方式 3,计 250us,由于定时中断过于频繁,使 CPU负载过大,导致音乐不能正常播放,时间不能正常显示。
解决办法:将定时器 1 设定在工作方式 1, 16 位计数,计 50ms,效果有很大改观。但还有问题。
当音乐为全 4 拍起始时,此时音乐节奏与定时器 T1 中断频率错开, LCD显示和音乐播放都会
好一些。
另外,在歌曲中,当遇到一个音符发音为 4 拍,在编曲中为 *CH,因时间较长,当定时器 T1
此时来中断时, 就会对歌曲播放产生影响, 若改为发音一拍, 中断对歌曲播放影响减弱, 但音乐效果变差。
改进方案:若采用可以定时时间更长的单片机,可以避免所有问题。
学****资料
学****资料收集于网络,仅供参考
6、收获与体会
上学期学****单片机的课时不多,

音乐盒设计(单片机课程设计) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wanggx999
  • 文件大小508 KB
  • 时间2022-04-27