音乐播放器系统设计文档格式.docx
《音乐播放器系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《音乐播放器系统设计文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
键盘;
蜂鸣器
0前言
对于我们测控技术与仪器专业而言,单片机无疑是重中之重,而随着网络的普遍,音乐播放器变成一个人们日常生活中一个必不可少的软件,而一个操作简便的播放器更是被大家所喜爱。
所以本课程设计的就是一个可以实现简单音乐播放的音乐播放器。
1总体方案设计
针对本课题的设计任务,进行分析得到:
本文设计的音乐播放器是通过控制单片机内部的定时器来产生不同频率的方波,驱动蜂鸣器发出不同音节的声音,再利用延迟来控制发音时间的长短,即控制音调中的节拍。
同时设置键盘按键使所设计的程序能在二首歌曲之间进行选曲,从而进行播放。
系统原理框图如图1所示。
键盘
图1系统原理框图
根据设计要求,设计了采用独立式键盘电路的方案一和采用矩阵式键盘电路的方案二,其中方案一当按键数目较多时,独立式键盘需要较多的输出口线且电路结构复杂,方案二矩阵式键盘会节省很多I/O口线。
但本设计所需键盘按键数目比较少,综合各方面的因素,采用了方案一。
2硬件电路设计
2.1单片机系统
在设计中文章选择单片机AT89C52作为播放器的核心控制部件,原因是因为AT89C52的功能全部兼容MCS-51,并且还有程序加密等功能,相比而言更加实用。
AT89C52单片机是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8KB的可反复擦写的只读程序存储器和256字节的随机存取存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,其强大的功能更适合较为复杂的控制应用场合。
其主要工作特性是:
·
片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;
片内数据存储器内含256字节的RAM;
具有32根可编程I/O口线;
具有3个可编程定时器;
中断系统是具有8个中断源、6个中断矢量、2级优先权的结构;
串行口是具有一个全双工的可编程串行通信口;
具有一个数据指针DPTR;
低功耗工作模式有空闲模式和掉电模式;
具有可编程的3级程序锁定位;
AT89C52工作电源电压位5(1±
0.2)V,且典型值为5V。
AT89C52最高工作频率为24MHZ,编程频率为3~24HZ,编程启动电流为1mA。
图2单片机接口示意图
2.2键盘接口
因为本设计采用按键较少,所以采用的是独立式键盘。
本设计只需要S4与S5按键,分别对应P3.4口与P3.7口。
下图为键盘接口电路图。
图3单片机接口示意图
2.3蜂鸣器
下图所示为蜂鸣器的接口示意图。
图4蜂鸣器接口示意图
3软件设计
根据设计方案,设计的程序流程有初始化,选择按键与播放歌曲三部分组成。
主程序流程如图2所示。
图5主程序流程图
4调试分析
在设计程序的时候,最初只能播放一首歌,而且只要开机就会播放,这与最初的设想大相径庭,经过思考,我发现可以模仿在计算机测控技术课上所学的步进电机的程序,尽管这样程序有些臃肿,但解决了只能播放一首歌曲,开机自动播放的问题。
5结论及进一步设想
根据实验结果,本设计基本完成了设计要求,即能简单的播放两首歌曲,但是由于所学知识有限,很多正常音乐播放器的功能并没有,例如暂停,下一首,上一首等功能并没有,只能进行简单的音乐播放,类似音乐盒的功能。
而这可以通过今后的学习实践过程中来进一步完善。
参考文献
[1]张毅刚,刘杰.MCS-51单片机原理及其应用.哈尔滨工业出版社,2008
[2]孙传友,孙晓斌.测控系统原理与设计.北京航空航天大学出版社,2007
[3]方彦军,孙健.智能仪器技术及其应用.化学工业出版社,2007
课设体会
为时两周的课程设计结束了,在这两周里,巩固了以前所学到的知识,而且学到了许多以前并不了解的知识,增强了自己的独立思考及动手能力,总而言之,收获颇丰。
在设计程序的时候,得到了老师和同学的帮助和支持,使我能够顺利的完成这次课程设计。
[2011年7月22日完成]
附录程序清单
countequ40h;
工作内存定义
Addrequ42h
temp1equ43h
temp2equ44h
SpeakbitP2.3
ORG0000h
LOOP:
JNBP3.7,FIR
JNBP3.4,SEC
AJMPLOOP
ORG000bH;
int0中断地址
AJMPTime0_Int
FIR:
MOVTMOD,#01h;
MOVIE,#82h;
MOVTH0,#0D8h;
MOVTL0,#0EFh;
;
12M晶振,形成10毫秒中断
FIR3:
MOVcount,#0
MOVAddr,#0
FIR1:
CLRA
MOVA,addr
MOVDPTR,#song1
MOVCA,@A+DPTR
MOVtemp1,A
INCaddr
CJNEA,#0ffh,loop1
CLRTR0;
MOV50h,#100
ACALLDelayxms
AJMPFIR1
loop1:
CJNEa,#00h,loop12
AJMPFIR3
loop12:
MOVa,addr
MOVtemp2,a
MOVtcon,#10h
FIR2:
CPLspeak
MOV50h,temp1
ACALLdelayxms
MOVa,temp2
CJNEa,count,loop3
loop3:
AJMPFIR2
SEC:
SEC3:
SEC1:
MOVDPTR,#song2
CJNEA,#0ffh,lop1
AJMPSEC1
lop1:
CJNEa,#00h,lop12
AJMPSEC3
lop12:
SEC2:
CJNEa,count,lop3
lop3:
AJMPSEC2
delayxms:
MOV52h,#1;
50h,51h,52h用于延时50h为参数x延时1*xms
delaya:
MOV51h,#16
DJNZ51h,$
DJNZ52h,delaya
DJNZ50h,delayxms
RET;
延时返回
Time0_Int:
MOVTH0,#0d8h;
MOVTL0,#0EFh
INCCount
RETI
SONG1:
DB18H,30H,1CH,10H,20H,40H,1CH,10H,18H,10H,20H,10H
DB1CH,10H,18H,40H,1CH,20H,20H,20H,1CH,20H,18H,20H
DB20H,80H,0FFH,20H,30H,1CH,10H,18H,20H,15H,20H,1CH
DB20H,20H,20H,26H,40H,20H,20H,2BH,20H,26H,20H,20H,20H,30H,80H,0FFH
DB20H,20H,1CH,10H,18H,10H,20H,20H,26H,20H,2BH,20H
DB30H,20H,2BH,40H,20H,20H,1CH,10H,18H,10H,20H,20H
DB26H,20H,2BH,20H,30H,20H,2BH,40H,20H,30H,1CH,10H
DB18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H,20H,20H
DB2BH,20H,26H,20H,20H,20H,30H,80H,20H,30H,1CH,10H
DB20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20H
DB2BH,40H,20H,15H,1FH,05H,20H,10H,1CH,10H,20H,20H
DB18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H,20H,20H
DB2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10H
DB18H,40H,1CH,20H,20H,20H,26H,40H,13H,60H,18H,20H
DB15H,40H,13H,40H,18H,80H,00H
SONG2:
DB30H,20H,2BH,10H,26H,10H
DB26H,20H,26H,20H,2BH,20H,30H,10H,2BH,10H,2BH,60H,30H,10H,2BH,10H
DB26H,20H,26H,20H,2BH,20H,30H,20H,30H,60H,40H,10H,39H,10H
DB40H,40H,40H,10H,40H,10H,39H,10H,30H,10H,30H,60H,30H,20H
DB30H,20H,30H,20H,30H,10H,2BH,10H,2BH,40H,30H,20H,2BH,10H,26H,10H
DB26H,20H,26H,20H,20H,20H,1CH,10H,2BH,10H,2BH,40H,26H,20H,2BH,10H,30H,10H
DB30H,20H,30H,20H,2BH,20H,26H,10H,20H,10H,20H,60H,40H,10H,40H,10H
DB39H,20H,30H,10H,30H,10H,30H,10H,26H,30H,2BH,20H,30H,20H,30H,20H,2BH,10H,30H,10H
DB30H,0C0H,26H,20H,26H,10H,20H,10H
DB20H,20H,20H,10H,20H,10H,20H,20H,20H,10H,1CH,10H,1CH,40H,26H,20H,2BH,20H
DB30H,20H,30H,20H,30H,20H,2BH,10H,26H,10H,26H,60H,26H,10H,20H,10H
DB20H,20H,20H,20H,20H,20H,1CH,10H,18H,10H,18H,20H,1CH,20H,20H,20H,26H,20H
DB2BH,20H,30H,20H,30H,20H,39H,10H,2BH,10H,2BH,60H,26H,10H,20H,10H
DB20H,20H,20H,20H,20H,10H,1CH,20H,20H,10H,1CH,40H,26H,20H,2BH,20H
DB20H,20H,20H,20H,20H,20H,1CH,10H,18H,10H,18H,20H,1CH,20H,20H,20H,26H,10H,2BH,10H
DB2BH,20H,2BH,20H,2BH,80H,30H,10H,26H,20H,24H,10H
DB26H,20H,2BH,20H,2BH,80H,26H,20H,2BH,10H,30H,10H
DB30H,40H,26H,20H,2BH,10H,30H,10H,30H,40H,26H,20H,2BH,20H
DB26H,20H,30H,20H,26H,20H,1CH,10H,20H,10H,20H,60H,26H,10H,20H,10H
DB1CH,20H,1CH,10H,20H,10H,20H,20H,1CH,10H,20H,10H,20H,40H,26H,10H,2BH,10H,30H,20H
DB2BH,20H,2BH,10H,26H,10H,2BH,20H,30H,10H,2BH,10H,2BH,40H,26H,20H,2BH,10H,30H,10H
DB26H,20H,30H,20H,26H,10H,1CH,20H,20H,10H,20H,60H,26H,10H,20H,10H
DB1CH,20H,1CH,20H,18H,20H,20H,10H,1CH,10H,20H,30H,20H,10H,26H,10H,2BH,10H,30H,20H
DB2BH,40H,2BH,10H,30H,10H,2BH,10H,26H,10H,2BH,40H,26H,20H,26H,20H,2BH,60H,30H,20H,30H,0C0H
DB00H
END