课程设计--基于单片机的简易音乐播放器

课程设计--基于单片机的简易音乐播放器

ID:9855799

大小:200.50 KB

页数:12页

时间:2018-05-12

课程设计--基于单片机的简易音乐播放器_第1页
课程设计--基于单片机的简易音乐播放器_第2页
课程设计--基于单片机的简易音乐播放器_第3页
课程设计--基于单片机的简易音乐播放器_第4页
课程设计--基于单片机的简易音乐播放器_第5页
资源描述:

《课程设计--基于单片机的简易音乐播放器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告基于单片机的简易音乐播放器专业:通信工程2014年6月24日设计目标:实现音乐的播放、选择、开始/暂停3种功能。实际功能描述:上电后播放器默认播放第一首歌曲《军港之夜》,按下与P3.2连接的按钮则播放上一首歌曲,按下与P3.3连接的按钮则开始播放下一首歌曲,按下与P3.5连接的按钮则暂停正在播放的音乐,再按一次则继续播放。播放器总共可以播放3首歌曲,按顺序依次为《军港之夜》、《死了都要爱》、《中华人民共和国国歌》。电路结构图电路仿真图实物图蜂鸣器发声模块实际省略数码管程序OUTBITP2.0;定义音频输出端口,p2.0NEQU3;歌曲总数OUT_NUMEQUP1

2、;数码管显视当前所放歌曲曲数ORG0000HAJMPMAINORG0003HAJMPLAST_SONG;外部中断0用于接上一曲歌按键ORG000BHAJMPF_T0;定时器0用于定时,作音符发生器用ORG0013Hq4:AJMPNEXT_SONG;外部中断1接下一曲歌按键ORG001BHAJMPSTART_PAUSE;定时器1用计数,这里用作中断,接开始/暂停键,初值为0ffH,方式2ORG0030HMAIN:MOVSP,#60HMOVDPTR,#TABLE;DPRT指向每首歌曲的入口地址的地址。MOVR0,#30H;R0中存入数据30H,这里在以30H开始的单元存放每首歌

3、曲的入口地址,其中30H,31H存放;歌曲的节拍入口地址,32H,33H存放歌曲音符入口地址,每首歌占用四个存储存单元。MOVR5,#00H;R5中存放表TABLE中正在执行操作的序号MOVR6,#1;R6存放正在设置入口信息的歌曲数SET_TAB:MOVA,R5;设置每首歌曲的入口信息,存放在以30H开始的存储单元中。MOVCA,@A+DPTRMOV@R0,AINCR5INCR0MOVA,R5MOVCA,@A+DPTRMOV@R0,AINCR5INCR0MOVA,R5MOVCA,@A+DPTRMOV@R0,AINCR0INCR5MOVA,R5MOVCA,@A+DPTRMO

4、V@R0,AINCR0INCR5INCR6;设置完一首歌曲后,歌曲数加一CJNER6,#N+1,SET_TAB;是否设置完,没有便继续,否则进行下面的操作;***********************************对中断,计数器的相关参数进行设置MOVTMOD,#61H;计数器0工作方式1,计数器1工作方式2MOVTH1,#0FFH;给计数器1置初值0FFH,又由于是工作方式2,所以MOVTL1,#0FFH;计数器计数为1,相当于一外部中断。SETBET1;允许计数器1中断SETBET0;允许计数器具0中断CLRPT0;计数器0为低优先级SETBPT1;计数器1

5、为高优先级SETBIT0;外部中断0为跳沿触发SETBPX0;高优先级SETBIT1;外部中断1为跳沿触发SETBPX1;高优先级SETBEX1;允许外部中断1中断SETBEX0;允许外部中断定0中断SETBEA;开中断总开关SETBTR1;定时器1开始工作,作中断用SETBOUT;音频输出端口初始化;***********************************;设置结束CLRF0;设置F0=0,用来作暂停/播放的标置位用MOV22H,#01H;22H单元中存放正在播放的歌曲编号MOVDPTR,#OUT_TAB;将正在播放的歌曲编号送数码管显视MOVA,22HMO

6、VCA,@A+DPTRMOVOUT_NUM,AMOVR7,#00H;R7中存放歌曲总信息的入口地址START0:MOVR4,#00H;R4存放当前正在播放歌曲的第几个节拍数MOVR0,#30H;30H开始的单元中存放歌曲的入口信息MOVA,R7;将歌曲的节拍表的入口地址送到DPTRADDA,R0MOVR0,AMOVDPH,@R0INCR0MOVDPL,@R0INCR0MOVA,R4INCR4MOVCA,@A+DPTR;取出第一节拍数,其实第一个节拍不是歌曲的第一个节拍,而是表示几分音符;********************************************

7、********MOV26H,A;将取出的音符数+节拍数保存在职26H单元中NEXT:MOVR0,#30H;开始取出歌曲的第一个数据MOVA,R7ADDA,R0MOVR0,AMOVDPH,@R0INCR0MOVDPL,@R0INCR0MOVA,R4INCR4MOVCA,@A+DPTR;放在A中;****************************************************JZEND0;若为0,则表示为休止符,不唱,本次音符不唱,MOVR1,A;不为0,取出节拍数ANLA,#0FHMOVR2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。