收藏 分享(赏)

单片机音乐盒论文(正版).doc

上传人:wspkg9802 文档编号:9478734 上传时间:2019-08-09 格式:DOC 页数:13 大小:306KB
下载 相关 举报
单片机音乐盒论文(正版).doc_第1页
第1页 / 共13页
单片机音乐盒论文(正版).doc_第2页
第2页 / 共13页
单片机音乐盒论文(正版).doc_第3页
第3页 / 共13页
单片机音乐盒论文(正版).doc_第4页
第4页 / 共13页
单片机音乐盒论文(正版).doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、音乐盒设计1. 系统功能的确定音乐盒可以发出怡人的音乐旋律,能给生活增加不少的乐趣。用 51 系列单片机设计一个音乐盒的基本功能如下:1) 利用 I/O 口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。2) 用七段数码管显示当前播放的歌曲序号。3) 通过对单片机的电路控制并结合按键功能实现播放,暂停,停止,上一曲,下一曲,音阶和节拍的配合实现歌曲(共三首歌)演奏。2. 方案论证各种方案如下所示:21 方案一:用四个按键控制音乐的播放。3 个按键选择 3 首不同的音乐播放,另一个按键控制音乐的停止。按下播放键,用一点简单的控制之后,才开始播放音乐。比如,用定时器控制,亮灯倒计时

2、10 秒然后触发音乐播放。22 方案二:用 4*4 小键盘来实现音乐的选择播放,1A 按键控制播放 10 首音乐,CF 按键分别实现欢迎页面、上一首、下一首、停止播放。23 方案三:为了充分利用实验板的功能,进一步扩充音乐盒的功能。设计用七段显示数码管 LED 显示播放时歌曲序号。设置三个键,一个按键控制开机、播放、暂停音乐,另外两个按键分别实现上一首、下一首。各方案的论证如下:1) 在方案 1 中,共用了 4 个按键,其中 3 个按键控制播放 3 首音乐,另一个键控制音乐播放的停止。但是只能选择 3 首音乐,不能显示是哪首歌局限性太强。2) 在方案 2 中,由于个人所学知识有限、实践经验太少

3、等原因,可以实现了歌曲的播放、开机画面、停止,未能实现歌曲的上一首、下一首选择播放。考虑到实验的复杂度和时间上的局限,本次课程设计使用了方案三。本次设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路、蜂鸣器以及显示电路组成。使用一个按键来控制开始,播放和暂停。利用两个按键分别切换上一曲和下一曲来演奏出不同的乐曲,共三首音乐,蜂鸣器发出某个音调,与之相对应的LED亮起。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试。音乐

4、盒的系统结构以 AT89C51 单片机位控制核心,加上 3 个按键、时钟复位电路、蜂鸣器、LED 模块组成。单片机负责接收按键的输入,根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如图 2-1 所示。图 2-1 总体框图音乐盒的功能结构如图 2-2 所示。按键 1 负责播放/ 暂停歌曲。按键 2,3 负责切换播放歌曲,播放歌曲共 3 首,同时 LED 显示相应的曲目,显示曲目标号共 3 种。开始按键 1:播放/暂停按键 2,3上一曲,下一曲图 2-2 音乐盒功能3. 系统硬件的设计31 主控制器的设计主要能够是实现程序输入时,能够模拟音乐盒的基本功能,能够有按键输入

5、的模块部分,有数码管显示歌曲序号,并有蜂鸣器模块部分在播放音乐。总体硬件电路实现功能如下所示1)电路中用 P3.2、P3.4 、 P3.5 控制按键。2)P0.0P0.7,P2.02.1 控制 LED。3)P1.0 控制蜂鸣器。4)电路为 12MHZ 晶振频率工作,起振电路中 C1、C2 均为 30PF。32 接口电路的设计(1)AT89C51 简介AT89C51 是 一 种 带 4K 字 节 闪 存 可 编 程 可 擦 除 只 读存 储 器 的 低 电 压 , 高 性 能 CMOS 8 位 微 处 理 器 , 俗 称 单片 机 。 AT89C51 是 一 种 带 2K 字 节 闪 存 可 编

6、 程 可 擦 除 只读 存 储 器 的 单 片 机 。 单 片 机 的 可 擦 除 只 读 存 储 器 可 以 反复 擦 除 100 次 。 该 器 件 采 用 ATMEL 高 密 度 非 易 失 存 储器 制 造 技 术 制 造 , 与 工 业 标 准 的 MCS-51 指 令 集 和 输 出管 脚 相 兼 容 。 由 于 将 多 功 能 8 位 CPU 和 闪 烁 存 储 器 组合 在 单 个 芯 片 中 , ATMEL 的 AT89C51 是 一 种 高 效 微 控制 器 , AT89C2051 是 它 的 一 种 精 简 版 本 。 AT89C51 单片 机 为 很 多 嵌 入 式 控

7、 制 系 统 提 供 了 一 种 灵 活 性 高 且 价 廉的 方 案 。 外 形 及 引 脚 排 列 如 图 3-1 所 示 图 3-1 单 片 机( 2) 时 钟 电 路 AT89C51引脚XTAL1 和XTAL2与晶体振荡器及电容C1、C2按图所示方式连接。晶振、电容C1 /C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1 、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实际情况,本设计中采用12MHZ作为系统的外部晶振,电容取值为30pF。其电路图如图3-2所示。 图3-2时钟电路

8、(3)复位电路:由一个 10nf 电容接电源和一个 10k 的电阻接地组成,使单片机的 CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。如图 3-3 所示(4)按键电路:有外部中断输入和定时/计数器的外部输入都是低电平有效,可以和复位电路相视,只要讲复位电路中的电容去点即可。共三个按键,接口为 P3.2、P3.4 、P3.5 按下播放/暂停歌曲会实现播放暂停,按下下一曲或下一曲单片机也会显示相应的功能。按键如图 3-4 所示 图 3-3 复位电路(5)音乐驱动电路:即蜂鸣器部分,接口为 P1.0。由于单片机最大的输入电流为 3.2mA,所以选用PNP 管,并要 PNP

9、 的基极和发射极加限流电阻。如图 3-5 所示(6)显示电路:LED 显示电路之直接到单片机的 P0.0P0.7,P2.02.1 口,由单片机通过控制按键的切换来实现歌曲的曲目,分别能实现“11,22,33” 。如图 3-6 所示图 3-4 按键电路 图 3-5 蜂鸣器 图 3-6 显示电路4. 系统软件的设计41 主程序的设计通过主程序对单片机的电路实行控制并结合按键功能实现播放,暂停,停止,上一曲,下一曲。音阶和节拍的配合实现歌曲(共三首歌)演奏,并利用数码管显示当前播放序号。按下开始按钮之后,程序初始化,再按下播放按键,程序开始判断按键是否按下,若按下就开始判断曲目标号,送相应表首地址给

10、 dptr,再调用音乐子程序,播放相应曲目,数码管会显示相应的曲号。按下“上一曲”或“下一曲”后会使音乐程序加一或减一,再送相应表首地址给 dptr,这样可以实现任意曲目的切换。主程序流程图如下所示:42 子程序的设计判断子程序流程图主程序流程图5. 系统调试51 硬件调试硬件在单片机学习板上进行仿真实验,能显示曲号,基本功能能实现,但音乐不太明显。52 软件调试播放:当开始键 P3.2 按下时,音乐盒顺序播放。暂停:当音乐要暂停时,按下 P3.2 时就可实现。下一曲:按下 P3.4 时,可实行对音乐盒的控制歌曲进入到下一曲。上一曲:按下 P3.5 时,可实现音乐盒上一曲的循环播放。当歌曲正常

11、播放时数码管也能显示当前的歌曲序号。53 综合调试按照上面设计的电路在 proteus 软件内画图, 打开单片机软件开发系统 Keil,选择89c51 单片机,在其中编写程序,运行生成一个后缀名为 hex 的文件,然后将该文件下载到 proteus 中的 AT89c51 单片机中进行仿真,观察实验现象。仿真能实现播放音乐,按键选择曲目,暂停,播放等功能。Music 子程序流程图 Del 延时子程序流程图6. 指标测试61 测试仪器装有 Proteus 及 Keil 软件的计算机,耳塞或音响设备,单片机学习板等。62 指标测试能 达 到 开 始 设 想 的 音 乐 盒 功 能 , 能实现播放,暂

12、停,停止,上一曲,下一曲,音阶和节拍的配合实现歌曲(共三首歌)演奏,同时数码管能显示播放歌曲的曲目。7. 结 论通过这次课程设计,由于自己理论知识不扎实,能力有限,导致编程很困难。后来经过同学们的指点,查了大量有关音乐盒设计的资料,才写出了完整的程序。在调试时会出现程序一点错误也没有,但就是不能正常运行的现象,最后发现是因为程序中有的指令书写得不规范导致的。好几页的程序很容易造成混乱,后来加注释或分割线,便于查找或更改。编程前加个流程图比较好,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着 MP3 的工作方式列写流程图。通过好几天的设计,调试最后终于基本上能实现课题上的功能。本学期学习

13、的时间只有十几周时间,对单片机的硬件设计,软件设计掌握的深度不够,感谢老师给我们这么一次机会,通过此次课程设计,使我对硬件电路的工作原理有了进一步的学习,更是对软件方面,在程序的设计,程序的调试方面都学到了很多东西,这是第一次设计单片机,很有成就感。对这次课程设计我觉得更需要我们耐心,仔细。附录一:PROTEUS 仿真效果图附录二:源程序代码及必要的注释。shuzhi equ 3fh ;选曲目的地址song equ p1.0 ;扬声器播放 P1.0playequ p3.2 ;播放停止键 P3.2addone equ p3.4 ;曲目加一键 P3.4subone equ p3.5 ;曲目减一键

14、P3.5dul equ p0 ;数码管段选 P0 口wel equ p2 ;数码管位选 P2 口org 0000hljmp startorg 000bh ;定时器 0 溢出中断入口地址ajmp cont ;指向定时器中断程序org 0013h ;外部中断一入口地址ajmp pause ;指向外部中断程序org 0100hstart:mov sp,#50hmov th0,#0dbh ;定时器赋初值mov tl0,#0ffhmov tmod,#01hmov ie,#86h ;开中断mov tcon,#00hmov r0,#00hmov shuzhi,#00hmain: jnb play,first

15、 ;判断 P3.2 键是否按下sjmp mainfirst: acall del20jnb play,first ;判断 P3.2 键是否释放mov shuzhi,#00hmov dul,#0f9h ;显示数值 1mov wel,#7fh ;显示位送 P2 口mov dptr,#dat1 ;表 1 首地址送 DPTRacall music0acall nextretnext: inc shuzhi ;shuzhi+1mov a,shuzhicjnea,#01,loop3 ;A 是否=1,不等就跳转到 LOOP3mov dptr,#dat2 ;表 2 首地址送 DPTRmov dul,#0a4h

16、 ;显示数值 2mov wel,#7fhacall music0inc aloop3: cjnea,#02,loop4 ;A 是否=2,不等就跳转到 LOOP4mov dptr,#dat3 ;表 3 首地址送 DPTRmov dul,#0b0h ;显示数值 3mov wel,#7fhacall music0inc aloop4: cjnea,#03,next ;A 是否=3,不等就跳转到 nextacall firstretlast: dec shuzhi ;shuzhi-1mov a,shuzhicjnea,#02,last1mov dptr,#dat3mov dul,#0b0hmov we

17、l,#7fhacall music0last1: cjnea,#01,last2mov dptr,#dat2mov dul,#0a4hmov wel,#7fhacall music0last2: cjnea,#00,lastmov dptr,#dat1mov dul,#0f9hmov wel,#7fhacall music0retmusic0:mov 20h,#00h ;中断计数单元清 0music1: clr amovc a,a+dptr ;查表取音阶常数jz end0 ;是结束符?cjnea,#0ffh,music5 ;是休止符?ljmp music3 ;产生 100ms 停顿music5

18、:nopkey:jnb play,k0 ;判断 P3.2 键是否按下jnb addone,k1 ;判断 P3.4 键是否按下jnb subone,k2 ;判断 P3.5 键是否按下mov r6,a ;音阶常数送 R6inc dptr ;DPTR+1mov a,#0movc a,a+dptr ;取常数送 R7mov r7,asetb tr0 ;启动定时器 T0music2: nopcjner0,#0,$cpl song ;输出电平取反mov a, r6mov r3,a ;音阶常数送 R3lcalldel20mov a, r7 ;节拍常数送 Acjnea,20h,music2 ;节拍时间到否mov

19、 20h,#00h ;为取下一音阶作准备inc dptrljmp music1music3: nop ;休止 100msclr tr0 ;关闭定时器mov r2, #14h ;R2=20music4: nopmov r3, #250 ;R3=250lcalldel20djnzr2, music4inc dptr ;为取下一音阶作准备ljmp music1end0: mov r2, #200 ;歌曲结束后,延时 1s 后继续music6: mov r3, #250lcalldel20djnzr2,music6k1: acall del20 ;调用延时子程序jnb addone,k1 ;判断 P3

20、.4 键是否释放acall nextk2: acall del20jnb subone,k2 ;判断 P3.5 键是否释放acall lastk0: acall del20jnb play,k0ljmp startretdel20: mov r4,#05hdel4: nopdjnzr4,del4djnzr3,del20retcont: inc 20h ;计数单元+1mov th0,#0dbh ;重新 10ms 定时初值mov tl0,#0ffhreti ;跳出中断pause: acall del20jnb p3.3,pause ;判断 P3.3 键是否有释放mov a,r0 ;把 R0 的值给

21、 Acpl a ;A 值取反mov r0,aretidat1:db 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,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,

22、20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,2bh,20h,30h,20hdb 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

23、,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,2bh,20h,2bh,40h,2bh,20h,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,0ffhdat2:db 18h,30h,1ch,10h,20h,40h,1ch,10hdb 18h,10h,

24、20h,10h,1ch,10h,18h,40hdb 1ch,20h,20h,20h,1ch,20h,18h,20hdb 20h,80h,0ffh,20h,30h,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

25、30h,20h,2bh,40h,20h,30h,1ch,10hdb 18h,20h,15h,20h,1ch,20h,20h,20hdb 26h,40h,20h,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,

26、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,20hdb 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1

27、ch,20hdb 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20hdb 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20hdb 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10hdb 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20hdb 20h,10h,20h,10h,2bh,10h,26h

28、,30h,30h,80h,18h,20h,18h,20h,26h,20hdb 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20hdb 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10hdb 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80hdb 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20hdb 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20hdb 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10hdb 20h,10h,2bh,10h,26h,30h,30h,80h,00hend

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报