音乐花样灯的设计.docx

上传人:b****4 文档编号:4244320 上传时间:2022-11-28 格式:DOCX 页数:15 大小:148.49KB
下载 相关 举报
音乐花样灯的设计.docx_第1页
第1页 / 共15页
音乐花样灯的设计.docx_第2页
第2页 / 共15页
音乐花样灯的设计.docx_第3页
第3页 / 共15页
音乐花样灯的设计.docx_第4页
第4页 / 共15页
音乐花样灯的设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

音乐花样灯的设计.docx

《音乐花样灯的设计.docx》由会员分享,可在线阅读,更多相关《音乐花样灯的设计.docx(15页珍藏版)》请在冰豆网上搜索。

音乐花样灯的设计.docx

音乐花样灯的设计

一、设计题目:

音乐花样灯的设计

1)电路有两种工作模式:

演奏音乐模式和花样灯模式。

演奏音乐模式:

演奏完整的一首的歌曲,八路LED随着音乐变化。

花样灯模式:

八路LED变化出各种花样,蜂鸣器随着发出“嘀嘀”声

2)按下按键1进入演奏音乐模式,再按切换歌曲,共两首歌曲。

3)按下按键2进入花样灯模式,再按切换LED花样,共四种花样。

二、设计方案

设计一个基于MCS-51系列单片机的音乐盒,利用试验板上的开关,按开关切换演奏出不同的乐曲。

蜂鸣器发出某个音调,与之相对应的LED亮起。

使用两个按键,一个用来切换歌曲,另一个切换八路LED的变化花样。

三、硬件电路设计

电路原理图

由于51单片机的电流驱动能力较弱,而蜂鸣器的工作电流为几十MA,故驱动蜂鸣器需用一个PNP三极管。

单片机给P3.7低电平,则蜂鸣器开;给高电平则蜂鸣器关。

LED接到单片机的P1口,拉低IO口,可使LED亮起。

两个按键的一端接单片机的IO口,另一端接地。

不按下去时与按键相连的IO口被单片机内部上拉电阻拉高,按下则与之相连的IO口变成低电平,引发单片机中断。

四、软件设计

程序设置了两个标志——R6和R7,都初始化为0。

按键1使得R7在1和2之间切换,按键2使得R6在0~4之间切换。

程序检测R7的值,R7等于1时播放第一首歌曲,等于2时播放第二首。

另一方面根据R6的值来切换LED的花样。

R6和R7的值是互斥的,设置R7等于1、2时,R6同时设置为0;设置R6等于1~4时,R7也同时设置为0。

㈠、歌曲简谱的编码规则:

doremifasolasi分别编码为1~7,重音do编为8,重音re编为9,停顿编为0。

播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。

音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。

以0xff作为曲谱的结束标志。

举例1:

音调do,发音长度为两拍,即二分音符,将其编码为18H。

举例2:

音调re,发音长度为半拍,即八分音符,将其编码为22H

歌曲播放的设计。

先将歌曲的简谱进行编码,储存在一个编码表中。

程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。

㈡、确定定时器0对应于音调的初值:

假设要得到500HZ的声音。

500HZ的声音信号每个周期为2ms,即2000us。

假设单片机采用12MHZ的晶振,每个机器周期的时间为12/12M=1us。

故单片机操作(对与蜂鸣器相连的IO口取反)一次蜂鸣器的时间间隔为2000us/1us/2=1000个机器周期,故给工作在方式1的定时器0赋的初值为TH0=(65536-1000)/256,TL0=(65536-1000)%256。

下面给出定时器0工作在方式1对应各音调的初值,假定使用的晶振是12MHZ:

五、程序流程图

㈠、程序总流程图

 

㈡、播放音乐子程序流程图

六、调试

音乐盒的程序设计过程中,遇到了很多问题,失败是成功之母,但是通过不断调试仿真,通过我们组每个人的精心努力下,最终都得到解决。

问题是出在蜂鸣器与单片机的输出端口上,在这个环节消耗了我们很多时间。

之前这些程序通过星研软件编译没有错误,而且通过ptotues仿真成功,但在实验板上调试运行时却不行。

最终在每个人思考下发现问题的所在,就是在单片机输出端口出现问题,由于实验箱中单片机芯片的P2口在实验箱中被其他硬件电路所占用,所以我们在使用此端口时没有达到我们预想的效果,当我们把程序中单片机给蜂鸣器的信号输出端修改为由P3口输出信号,问题最终得到了解决,这样我们高兴的做出来了。

七、心得体会

通过这次单片机课程设计,我们不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,同时也使我们认识到自身存在的不足之处,无论是理论上还是遇到问题的处理能力上都还有待提高,而且这也激发了我们今后努力学习的兴趣。

本次课程设计我们有明确的分工,我负责花样灯延时的部分,这个部分有控制程序延时的作用,起初做不出来,经过不断的探索终于做出来了。

通过这次的设计使我认识到自己对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,有很多需要掌握的知识在等着我去学习。

本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化。

在大学课堂的学习只是在给我们灌输专业知识,而我们应该把所学的用到现实生活中去,此次的音乐盒设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应社会激烈的竞争。

此次课程设计结束了,但是从中学到的知识会让我受益终身。

发现问题、提出问题、分析问题、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。

 

八、参考文献

[1]单片机演奏音乐时音调和节拍的确定方法伟纳电子

[2]音乐和简谱知识网络资源

[3]《千年之恋》及《寂寞沙洲冷》的简谱网络资源

[3]芯片资料下载网站——三毛电子世界、21IC中国电子网等

九、附录

程序如下:

ORG0000H

AJMPMAIN

ORG0003H

AJMPDVT

ORG000BH

AJMPDVT0

ORG0013H

AJMPDVT1

ORG0100H

MAIN:

SETBIT0

SETBIT1

MOVR4,#0

MOVR6,#0

MOVR7,#0

MOVIE,#87H

MOVTMOD,#01H

PP1:

SETBP3.7

CLRTR0

LOOP:

CJNER7,#0,LOOP5

LOOP1:

CJNER6,#1,LOOP2

LCALLHY1

AJMPLOOP

LOOP2:

CJNER6,#2,LOOP3

MOVA,#03H

LCALLHY2

AJMPLOOP

LOOP3:

CJNER6,#3,LOOP4

LCALLHY3

AJMPLOOP

LOOP4:

CJNER6,#4,LOOP

LCALLHY4

AJMPLOOP

LOOP5:

MOVR6,#0;音乐1

CJNER7,#1,LOOP6

SETBP3.7

CLRTR0

MOVDPTR,#qnzl

MOV60H,DPH

MOV70H,DPL

MOVR3,#0

LCALLYIN

LCALLDELAY0

CLRTR0

AJMPLOOP

LOOP6:

MOVR6,#0;音乐2

CJNER7,#2,LOOP

SETBP3.7

CLRTR0

MOVDPTR,#jmszl

MOV60H,DPH

MOV70H,DPL

MOVR3,#0

LCALLYIN

LCALLDELAY0

CLRTR0

AJMPLOOP

YIN:

CLRA

MOVA,R3

CJNER6,#0,PP1

CJNER4,#1,FD

MOVR4,#0

AJMPLOOP5

FD:

MOVDPH,60H

MOVDPL,70H

MOVCA,@A+DPTR

MOVR1,A

SWAPA

ANLA,#0FH

MOVR2,A

JZNEXT1

MOVDPTR,#yinyue

MOVCA,@A+DPTR

MOVP1,A

MOVDPTR,#cuzhi

MOVA,R2

RLA

MOV40H,A

MOVCA,@A+DPTR

MOV10H,A

INC40H

MOVA,40H

MOVCA,@A+DPTR

MOV20H,A

CJNER1,#0FFH,NEXT0

RET

NEXT0:

MOVTH0,10H

MOVTL0,20H

SETBTR0

SJMPNEXT2

NEXT1:

CLRTR0

SETBP3.7

NEXT2:

MOVA,R1

ANLA,#0FH

MOVR2,A

PPT:

LCALLDELAY0

DJNZR2,PPT

CLRTR0

MOV80H,#0AH

PP:

LCALLDELAY1

DJNZ80H,PP

SETBTR0

INCR3

AJMPYIN

DVT0:

MOVTH0,10H

MOVTL0,20H

CPLP3.7

RETI

DVT:

CLREA

LCALLDELAY0

MOVR7,#0

CLRTR0

CJNER6,#4,BD

MOVR6,#0

MOVA,#00H

MOVP1,A

SETBEA

RETI

BD:

INCR6

SETBEA

RETI

DVT1:

CLREA

MOVR4,#1

LCALLDELAY0

MOVR6,#0

CLRTR0

CJNER7,#2,BT

MOVR7,#1

SETBEA

RETI

BT:

INCR7

SETBEA

RETI

DELAY0:

MOV25H,#165

DP:

MOVR5,#249

DL1:

NOP

NOP

DJNZR5,DL1

NOP

NOP

DJNZ25H,DL1

RET

DELAY1:

MOVR5,#249

DL:

NOP

NOP

DJNZR5,DL

RET

HY1:

MOVR7,#0

MOVR2,#08H;一半左移

MOVA,#0FH

LOP:

RLCA

MOVP1,A

CALLDELAY0

CALLDELAY0

LCALLBEEP

CALLDELAY1

CALLDELAY0

DJNZR2,LOP

RET

HY2:

MOVR7,#0;右移

MOVR2,#08H

LOP1:

RRCA

MOVP1,A

ACALLDELAY1

LCALLBEEP

CALLDELAY1

DJNZR2,LOP

RET

HY3:

MOVR7,#0

MOVP1,#0FFH;全闪烁

ACALLDELAY0

LCALLBEEP

MOVP1,#00H

ACALLDELAY0

RET

HY4:

MOVR7,#0

MOVP1,#0FH;半闪烁

ACALLDELAY0

LCALLBEEP

MOVP1,#0F0H

ACALLDELAY0

LCALLBEEP

RET

BEEP:

CPLP3.7

LCALLDELAY1

SETBP3.7

RET

qnzl:

DB12H,22H,34H,84H,74H,54H,38H,42H,32H,22H,42H,34H,84H,72H,82H,94H,0A8H,08H

DB32H,31H,21H,32H,52H,32H,31H,21H,32H,62H

DB32H,31H,21H,32H,82H,71H,81H,71H,51H,32H,22H

DB32H,31H,21H,32H,52H,32H,31H,21H,32H,62H

DB32H,31H,21H,32H,83H,82H,71H,72H,02H

DB63H,0A1H,0A2H,62H,92H,82H,52H

DB31H,51H,63H,51H,63H,51H,63H,51H,62H,82H,7CH,02H

DB61H,71H,82H,71H,62H,0A2H,71H,76H

DB61H,71H,82H,71H,62H,52H,31H,36H

DB61H,71H,82H,71H,62H,0A3H,73H,62H,53H

DB42H,63H,83H,83H,91H,91H

DB61H,71H,82H,71H,62H,0A2H,71H,76H

DB61H,71H,82H,71H,62H,52H,31H,36H

DB61H,71H,82H,71H,62H,0A3H,73H,62H,53H

DB42H,82H,88H,02H,74H,93H,89H,0ffH

jmszl:

DB12H,12H,22H,32H,31H,22H,21H,22H

DB21H,31H,51H,52H,31H,52H,61H,15H,14H

DB51H,52H,31H,52H,62H,13H,11H,13H,32H,28H,08H,28H

DB31H,32H,31H,32H,11H,21H,51H,52H,51H,52H

DB51H,51H,31H,32H,31H,32H,81H,72H,63H

DB62H,71H,81H,72H,61H,61H,52H,31H,21H,32H,51H,54H

DB22H,12H,11H,12H,11H,12H,12H,14H,26H,32H,26H

DB32H,61H,51H,51H,31H,31H,21H,31H,51H,61H,51H,31H,51H

DB02H,32H,81H,81H,81H,81H,62H,52H,34H

DB31H,81H,81H,81H,61H,91H,82H

DB51H,51H,51H,51H,31H,61H,53H

DB21H,11H,21H,11H,22H,11H,21H,26H

DB32H,61H,51H,51H,31H,31H,21H,31H,51H,61H,51H,31H,51H,52H

DB31H,31H,81H,81H,81H,61H,91H,81H,61H,31H,56H

DB32H,32H,81H,81H,81H,81H,91H,81H,61H,81H,61H,51H,31H,51H,34H

DB21H,31H,51H,31H,21H,11H,61H,21H,16H,0ffH

cuzhi:

DB0xff,0xff;占位

DB0xFC,0x8E;中央C调1-7

DB0xFC,0xED

DB0xFD,0x43

DB0xFD,0x6A

DB0xFD,0xB3

DB0xFD,0xF3

DB0xFE,0x2D

DB0xFE,0x47;高八度1-7

DB0xFE,0x76

DB0xFE,0xA1

DB0xFE,0xC7

DB0xFE,0xD9

DB0xFE,0xF9

DB0xFF,0x16

yinyue:

DB0ffH,0feH,0fdH,0fbH,0f7H,0efH,0dfH,0bfH,7fH,00H,00H

END

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1