基于89C51的数字音乐盒的设计课程设计.docx
《基于89C51的数字音乐盒的设计课程设计.docx》由会员分享,可在线阅读,更多相关《基于89C51的数字音乐盒的设计课程设计.docx(49页珍藏版)》请在冰豆网上搜索。
基于89C51的数字音乐盒的设计课程设计
单片机系统
课程设计
成绩评定表
设计课题:
基于89C51的数字音乐盒的设计
学院名称:
电气工程学院
专业班级:
自动1102
设计时间:
2013-12-16~2013-12-27
指导教师意见:
成绩:
签名:
年月日
单片机系统
课程设计
课程设计名称:
基于89C51的数字音乐盒的设计
专业班级:
自动1102
学生姓名:
学号:
201123910302
指导教师:
课程设计地点:
31-630
课程设计时间:
2013-12-16~2013-12-27
单片机系统课程设计任务书
学生姓名
专业班级
学号
题目
基于89C51的数字音乐盒的设计
课题性质
工程设计
课题来源
自拟
指导教师
主要内容
(参数)
1、利用89c51单片机设计一个数字音乐盒,实现功能如下:
2、内置4首音乐歌曲,通过单片机的I/O口产生方波驱动蜂鸣器播放音乐。
3、通过独立按键对歌曲实现暂停、上一曲、下一曲功能的控制。
4、具备复位功能。
任务要求
(进度)
第1-2天:
熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5-6天:
软件设计,编写程序。
第7-8天:
实验室调试。
第9-10天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3]阎石.数字电路技术基础(第五版).北京:
高等教育出版社,2006
审查意见
系(教研室)主任签字:
年月日
1绪论
1.1数字音乐盒概述
数字音乐盒是现代电子科技与音乐结合的产物,是一种新型的播放乐器。
因为单片机具有强大的控制功能和灵活的编程实现特性,数字音乐盒已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S51单片机为核心控制元件,设计一个数字音乐盒。
该音乐盒主要由按键电路、单片机最小系统、以及蜂鸣器电路组成,使用3个按键控制音乐盒。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠等,具有一定的实用和参考价值。
1.2设计思想及基本功能
该系统具有一般音乐盒的最基本功能,即通过蜂鸣器播放音乐曲目,通过键盘电路控制歌曲的播放。
在选取设计方案和采取元器件方面,该系统本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。
数字音乐盒控制系统具有以下几个基本功能:
(1)内置4首音乐歌曲,通过单片机的I/O口产生方波驱动蜂鸣器播放音乐。
(2)通过独立按键对歌曲实现暂停、上一曲、下一曲功能的控制。
(3)具备复位功能。
2总体方案设计
2.1方案设计
根据查阅的资料和现实生活中的应用,我认为用两种方案可实现数字音乐盒的功能:
方案
(一):
利用数字音乐芯片配合电源电路,放大电路实现音乐播放,其框图如图2-1所示。
图2.1方案一的原理框图
方案
(二):
利用单片机系统制作数字音乐盒,配合按键,实现对音乐的播放控制,其原理框图如图2-2所示。
图2.2方案二的原理框图
2.2方案比较
这两种方案均可以实现数字音乐盒的音乐播放功能,但各有优劣。
方案
(一)结构简单,可靠性高,由于音乐芯片产品化,价格也相对便宜,但芯片普遍容量太小、且功能单一。
方案
(二)采用单片机作为控制核心,可实现功能的多样化,且容量也足够大,但价格相对昂贵,对外部环境条件的的要求也相对较高。
2.3方案选取
鉴于方案
(一)功能过于简单,不能满足本设计的需求,且已无太大的研究价值,故本设计采用方案二。
3硬件电路设计
硬件电路包括直流稳压电源电路、单片机最小系统、蜂鸣器电路、按键控制电路四大模块。
3.1直流稳压电源电路设计
直流电源的稳定性和输出电源的质量影响单片机系统运行的稳定性,所以一个完整的可靠的电子设计需要可靠的电源供电。
除了用市面上的干电池供电外,还可以采用市电220v变压、整流、滤波、整流和稳压后获得稳定的直流电源。
本设计采用后者输出5v直流电压。
图3-1为采用三端集成稳压器7805构成的正5v直流电源。
图3.1直流电源原理图
3.2单片机最小系统设计
单片机最小系统是使单片机工作满足的最低硬件系统要求、主要包括单片机、时钟电路、复位电路等,原理图如图3-2所示。
时钟电路:
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
图3.2单片机最小系统原理图
3.3蜂鸣器电路
蜂鸣器电路为本系统的输出即发声电路,由三极管驱动蜂鸣器发生,单片机P1.0引脚产生音频信号,原理图如图3-3所示。
图3.3蜂鸣器电路原理图
3.4键盘控制电路
本系统外接三个独立按键,用作对歌曲操作的控制,上一曲、下一曲接外部中断0和外部中断1输入端P3.2和P3.3,暂停/播放功能键接定时/计数器1的外部输入端口P3.5,按键公共端接地,按下引入低电平,电路图如图3-4
图3.4键盘控制电路原理图
4系统软件设计
本系统系统软件设计主要包括音乐播放主程序和中断控制程序两部分。
本章节系统的介绍了数字音乐盒的主程序和中断程序的设计流程,具体的程序代码见附录。
4.1主程序软件设计
主程序构成无限循环,用于对歌曲节拍、字符信息的读取、分析计算,定时器的重装完成音频的发生。
主程序图流程说明:
开机先设定单片机数据表格中的四首歌曲的入口地址完成初始化,接着取出位于节拍音符表格的第一个数据完成对本歌曲拍数的设置,之后进入主循环,对之后的节拍音符数据取出分析,当得到休止符时即表示本歌曲演奏结束,进行下一曲的播放,若演奏到了第四首则演奏第一首。
不是休止符则分析取出的节拍音符,奏出音符,控制其持续时间。
之后扫描暂停标志位,判断是否执行暂停操作,如无便回到主循环,分析下一个节拍音符数据。
主程序流程图如图4-1所示。
图4.1主程序流程图
4.2中断服务程序设计
本系统共用到3个中断源,外部中断0、1用作上/下一曲的控制,边沿出发,为高优先级,T1用作计数器,计一次数便触发中断一次,也为高优先级,中断服务程序流程图如图4-2所示。
图4.2中断服务程序流程图
5总结
经过近两周的资料查找和程序设计,我完成了对数字音乐盒的设计。
该数字音乐盒能开机自动播放,实现上一曲、下一曲和暂停功能、通过复位电路使该系统具有复位功能。
本系统采用蜂鸣器作为执行元件,以89c51单片机为控制核心,以键盘为输入设备,满足数字音乐盒的基本要求。
在该系统设计完成后,我对该系统进行了仿真调试,运行结果基本令人满意,它能实现数字音乐盒的基本设计要求,播出曲目辨识度较好,按键反应较灵敏,系统稳定,具有一定的娱乐性和使用价值。
同时,由于设计的时间和能力有限,本设计还存在一定不合理之处,还具有提升空间。
比如按键控制因为没有加入去抖功能,按键操作控制不太准确,用一定概率产生误操作。
另外,蜂鸣器虽然结构简单但音乐的辨识率有限,在调试过程中出现走音、破音现象。
但是总体来说这次课程设计我还是收获颇丰,音乐盒的设计本身就是一个具有趣味性的项目,看到一个个代码变成动听的乐曲播放是一件很快乐的事情。
另外在系统设计过程中,我熟悉了单片机系统的知识,将课本空乏的定时、中断知识用到项目中完成实际功能,另外,原理图和流程图绘制让我熟悉了AltiumDesigner和visio软件的操作使用,大大提升了我的动手能力,为以后的设计打下基础。
参考文献:
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3]阎石.数字电路技术基础(第五版).北京:
高等教育出版社,2006
[4]夏路易,石宗义。
电路原理图与电路板设计教程Protel99se.北京:
北京希望电子出版社,2002
[5]康华光。
模拟电路技术基础(第五版)。
北京:
高等教育出版社,2005
附录
附录一系统原理图
附录二系统调试
附录三程序代码
OUTBITP1.0
NEQU4
ORG0000H
AJMPMAIN
ORG0003H
AJMPLAST_SONG
ORG000BH
AJMPF_T0
ORG0013H
AJMPNEXT_SONG
ORG001BH
AJMPSTART_PAUSE
ORG0030H
MAIN:
MOVSP,#60H
MOVDPTR,#TABLE
MOVR0,#30H
MOVR5,#00H
MOVR6,#0
SET_TAB:
MOVA,R5
MOVCA,@A+DPTR
MOV@R0,A
INCR5
INCR0
MOVA,R5
MOVCA,@A+DPTR
MOV@R0,A
INCR5
INCR0
MOVA,R5
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCR5
MOVA,R5
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCR5
INCR6
CJNER6,#N,SET_TAB
START:
MOVTMOD,#61H
MOVTH1,#0FFH
MOVTL1,#0FFH
SETBET1
SETBET0
CLRPT0
SETBPT1
SETBIT0
SETBPX0
SETBIT1
SETBPX1
SETBEX1
SETBEX0
SETBEA
SETBTR1
CLROUT
CLRF0
MOVR7,#00H
START0:
MOVR4,#00H
MOVR0,#30H
MOVA,R7
ADDA,R0
MOVR0,A
MOVDPH,@R0
INCR0
MOVDPL,@R0
INCR0
MOVA,R4
INCR4
MOVCA,@A+DPTR
MOV26H,A
NEXT:
MOVR0,#30H
MOVA,R7
ADDA,R0
MOVR0,A
MOVDPH,@R0
INCR0
MOVDPL,@R0
INCR0
MOVA,R4
INCR