音乐盒设计(单片机课程设计(编辑修改稿)内容摘要:

LCD 模块, LCD 显示模块采用 14 引脚的 LCD LM032L,它有八个数据端口,三个控制口。 当控制口 R/W 为低电平时,单片机向 LCD 写入指令,当其为高电平时,单片机读取 LCD 的信息。 单片 机的 ~ 作为 LCD的 RS,R/W,E 的控制信号。 用 ~ 作为 LCD 的 D0~D7 的控制信号。 用 LCD来显示播放歌曲时间和歌曲号。 当按下开机键时,会在 LCD 上显示英文欢迎字符,按其他键可显示歌曲号和播放时间。 LCD 显示模块电路图分别如图 435所示。 图 434 复位电路模块电路图 数字音乐盒的设计 11 第五章 软件设计 主模块的设计 主模块是系统软件的主框架。 结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。 它的合理与否 关系到程序最终的功能的多少和性能的好坏。 本程序可以实现课程设计的基本要求,并可以通过按键播放多首歌曲,主程序流程图如下所示(图 511),其中显示子程序的流程图如图 512所示。 图 435 LCD 显示模块电路图 数字音乐盒的设计 12 图 512 显示子程序流程图 图 511 数字音乐盒主程序流程图 数字音乐盒的设计 13 第六章 仿真、安装和调试 按照上面设计的电路在 proteus 软件内画图 , 打开单片机软件开发系统Keil,选择 89c51 单片机 ,在其中编写程序 ,运行生成一个后缀名为 hex 的文件 ,然后将该文件下载到 proteus 中的 AT89c51 单片机中进行仿真 ,观察实验现象。 仿真能实现播放音乐,按键选择曲目,暂停,播放功能。 仿真成功后,安装好实验板 ,然后将音乐程序下载到电路板内 ,观察结果。 能实现播放音乐,按键换曲等功能。 (其中仿真截图如图 611所示) 程序调试中出现的问题及解决的办法: ( 1) 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的 RET 返回指令一定要按正确格式书写或在两行指令间最好不要留空行。 ( 2) 程序中的跳转指令的运用很重要,为保险起见,都用 LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。 当用 JNZ 指令时,跳转范围比较少,这时要用一个标号中转。 ( 3) 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。 ( 4) 编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。 ( 5) 编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着 MP3的工作方式列写流程图。 ( 6) LCD 计时正常显示的解决办法: a. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器 1 设定在方式 3,计 250us,由于定时中断过于频繁,使 CPU 负载过大,导致音乐不能正常播放,时间不能正常显示。 解决办法:将定时器 1设定在工作方式 1, 16 位计数,计 50ms,效果有很大改观。 但还有问题。 b. 当音乐为全 4 拍起始时,此时音乐节奏与定时器 T1 中断频率错开, LCD显示和音乐播放都会好一些。 c. 另外,在歌曲中,当遇到一个音符发音为 4拍,在编曲中为 *CH,因时间较长,当定时器 T1 此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,数字音乐盒的设计 14 中断对歌曲播放影响减弱,但音乐效果变差。 改进方案:若采用可以定时时间更长的单片机,可以 避免所有问题。 图 611 Proteus 仿真图 总结 这学期我们已接触了单片机的课,有了一定的基础知识,这次的单片机课程设计使我有了实践和提高能力的机会,让我受益良多。 在此次单片机的课程设计中,我不但对单片机的基础知识掌握的更牢固,而且对其硬件和软件方面有了更深一层的认识。 在做数字音乐盒的课程设计时,我数字音乐盒的设计 15 掌握了 AT89C51 单片机的内部振荡方式及振荡频率和单片机的复位电路形式。 此次设计的软件编程采用的是我们所学的汇编语言,通过对数字音乐盒的编程,我更熟悉了键盘扫描和动态显示的编程以及定时计数 器和中断的编程。 巩固了对AT89C51 的内部结构和接口扩展的知识。 本次设计中,我用到了 protel99 画图软件, keil C51 编程软件和 proteus 仿真软件。 以前虽然对 protel99 有一定的认识,能运用其画图,不缺不熟练,这次设计是我对其的熟练程度提高了不少。 在大三上学期我自学过一点 keil C51 软件,但并不会用 proteus,更不知道怎样将其结合起来使用。 在做数字音乐盒的仿真时,通过向同学青椒和查找资料,我能够运用它来画图,并和 keil C51 结合起来进行仿真,更有幸的是,仿真实现了。 这次课程设计,让我收获到了成功的喜悦,学会了做事严谨的态度。 希望下次还有这样学习的机会,并且希望下次能做的更好。 致谢 这次基于单片机的数字音乐盒设计得以完成,首先要感谢不畏辛辞地知道我们的王南兰老师,通过王老师的指导,是我增涨了单片机的知识,也使这次课程设计得以顺利完成。 其次,还要感谢我的同学,在这次课程设计中,遇到了许多的困难,是通过询问他们才解决的,所以要感谢他们的赐教。 参考文献 [1] 许珉 .单片机原理及应用 [M].北京 :中国电力出版社 , [2] 三恒星科技 .MCS51 单片机原理与应用实例 [M]. 北京:电子工业出版社, [3] 王为青,程国钢 .单片机 Keil Cx51 应用开发技术 [M]. 北京:人民邮电出版社 , [4] John [M].北京:计量出版社, 1995 [5] 阎石 .数字电子技术基础 [M].北京:高等教育出版社, ,第 4版 [6] 邓元庆 .数字电路与逻辑设计 [M].北京:电子工业出版社, 2020 [7] 高锋,单片微型计算机原理与接口技术 .科学出版社 ,2020 年 . 数字音乐盒的设计 16 [8] 李传军 ,单片机原理及应用(第一版) .河南科学技术出版社 ,2020 年 . [9] 杨志忠 .数字电子技术 .高等教育出版社(第二版)[ M] .2020 年 . [10] 张友德 .单片微型机原理应用与实验 .上海复旦大学出版社, 2020 [11] 《融会贯通 Protel99 电路设计》 弘道工作室 北京 人民交通出版设, 2020. [12] 《单片机原理及接口技术实验》 朱定华 北京 北方交通大学出版社 附录 附录一:音乐程序 RS BIT RW BIT E BIT。 ******************** L50MS EQU 60H L1MS EQU 61H L250MS EQU 62H SEC EQU 65H MIN EQU 64H HOU EQU 63H。 ********************* ORG 0000H LJMP MAIN ORG 000BH LJMP TT0 ORG 001BH LJMP T1INT ORG 1000H MAIN: 液晶初始化 MOV SP,70H MOV P0,01H。 清屏 CALL ENABLE 数字音乐盒的设计 17 MOV P0,38H。 8 位, 2 行显示 LCALL ENABLE MOV P0,0FH。 屏显 ON,光标 ON,闪烁 ON LCALL ENABLE MOV P0,06H。 计数地址加 1,显示幕 ON LCALL ENABLE 内存初始化 LCALL INITIL KEY1: LCALL KEY LCALL MODD LJMP KEY1 键盘扫描 KEY: NOP NOP LCALL KS JNZ K1 有按键转到 K1 LCALL KAIJI LCALL SOP XN: LJMP KEY K1: LCALL MODD LCALL MODD LCALL KS JNZ K2 LJMP KEY K2: MOV R2,0FEH。 读键盘 MOV R4,00H K3: MOV A,R2 MOV P1,A MOV A,P1 数字音乐盒的设计 18 JB ,L1 为 1 跳转,第一行无按键 MOV A,00H LJMP LK L1: JB ,L2 MOV A,04H LJMP LK L2: JB ,L3 MOV A,08H LJMP LK L3: JB ,NEXT1 MOV A,0CH LK: ADD A,R4 PUSH。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。