音乐花样灯的设计Word文档格式.docx
《音乐花样灯的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《音乐花样灯的设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
![音乐花样灯的设计Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/28/31b6708e-4061-46f0-abfb-35a178b183cc/31b6708e-4061-46f0-abfb-35a178b183cc1.gif)
设置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
LOOP3:
CJNER6,#3,LOOP4
LCALLHY3
LOOP4:
CJNER6,#4,LOOP
LCALLHY4
LOOP5:
MOVR6,#0;
音乐1
CJNER7,#1,LOOP6
MOVDPTR,#qnzl
MOV60H,DPH
MOV70H,DPL
MOVR3,#0
LCALLYIN
LCALLDELAY0
LOOP6:
音乐2
CJNER7,#2,LOOP
MOVDPTR,#jmszl
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
MOVP1,A
MOVDPTR,#cuzhi
MOVA,R2
RLA
MOV40H,A
MOV10H,A
INC40H
MOVA,40H
MOVCA,@A+DPTR
MOV20H,A
CJNER1,#0FFH,NEXT0
RET
NEXT0:
MOVTH0,10H
MOVTL0,20H
SETBTR0
SJMPNEXT2
NEXT1:
CLRTR0
NEXT2:
MOVA,R1
PPT:
DJNZR2,PPT
MOV80H,#0AH
PP:
LCALLDELAY1
DJNZ80H,PP
INCR3
AJMPYIN
DVT0:
MOVTH0,10H
CPLP3.7
RETI
DVT:
CLREA
CJNER6,#4,BD
MOVA,#00H
MOVP1,A
SETBEA
BD:
INCR6
SETBEA
DVT1:
MOVR4,#1
CJNER7,#2,BT
MOVR7,#1
BT:
INCR7
RETI
DELAY0:
MOV25H,#165
DP:
MOVR5,#249
DL1:
NOP
NOP
DJNZR5,DL1
DJNZ25H,DL1
RET
DELAY1:
MOVR5,#249
DL:
DJNZR5,DL
HY1:
MOVR2,#08H;
一半左移
MOVA,#0FH
LOP:
RLCA
CALLDELAY0
LCALLBEEP
CALLDELAY1
DJNZR2,LOP
HY2:
MOVR7,#0;
右移
MOVR2,#08H
LOP1:
RRCA
ACALLDELAY1
HY3:
MOVP1,#0FFH;
全闪烁
ACALLDELAY0
MOVP1,#00H
HY4:
MOVP1,#0FH;
半闪烁
MOVP1,#0F0H
BEEP:
CPLP3.7
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
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