基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx

上传人:b****2 文档编号:4369226 上传时间:2023-05-03 格式:DOCX 页数:24 大小:271.14KB
下载 相关 举报
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第1页
第1页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第2页
第2页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第3页
第3页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第4页
第4页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第5页
第5页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第6页
第6页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第7页
第7页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第8页
第8页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第9页
第9页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第10页
第10页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第11页
第11页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第12页
第12页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第13页
第13页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第14页
第14页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第15页
第15页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第16页
第16页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第17页
第17页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第18页
第18页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第19页
第19页 / 共24页
基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx

《基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。

基于AT89C51单片机音乐盒课程设计Word文档下载推荐.docx

 

图1-1单片机音乐盒功能框图

第2章音乐盒的发音原理

2.1播放音乐的原理

发音原理:

播放一段音乐需要的是两个元素,一个是音调,另一个是音符。

首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。

对一定强度的纯音,音调随频率的升降而升降;

对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。

另外,音符的频率有所不同。

基于上面的内容,这样就对发音的原理有了一些初步的了解。

音符的发音主要靠不同的音频脉冲。

利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出音乐。

只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

2.2音符频率的产生

音符及定时器初始值:

例如:

中音1(do)的音频=523HZ,周期T=1/523s=1912

定时器/计数器0的定时时间为:

T/2=1912/2

=956

定时器956

的计数值=定时时间/机器周期=956

/1

=956(时钟频率=12MHZ)

装入T0计数器初值为65536-956=64580

将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频。

将51单片机内部定时器工作在计数器模式1下,改变计数初值TH0,TL0以产生不同的频率。

下表2-1是C调各音符频率与计数初值T的对照表:

表2-1C调各音符频率与计数初值T的对照表

音符

频率(Hz)/初值(

低1DO

262/63627

中1DO

523/64580

高1DO

1042/65056

低2RE

294/63835

中2RE

589/64687

高2RE

1245/65134

低3M

330/64021

中3M

661/64780

高3M

1318/65157

低4FA

350/64107

中4FA

700/64822

高4FA

1397/65178

低5SO

393/64264

中5SO

786/64900

高5SO

1568/65217

低6LA

441/64402

中6LA

882/64969

高6LA

1760/65252

低7SI

495/64526

中7SI

990/65031

高7SI

1967/65282

音符、音符编码及定时器初始值:

为了产生音符,必须求出音符低音5—高音5的计数初值。

例如C调的低1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。

为了方便写谱,对其进行简单的编码,在编程时,根据音符编码查找对应的计数初值。

比如说音乐是C调的,那么出现低音的5SO,直接将代码写为1;

出现低音6LA,直接写一个2的代码;

出现低音7SI,直接写一个3代码。

表2-2音符编码表

音符编码

不发音

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

G

2.3节拍频率的产生

节拍的产生与编码:

音乐中的节拍用延时时间产生。

例如,1拍=0.4s,1/4拍=0.1s,以此类推。

假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4拍的延时时间,其余节拍就是它的倍数。

为了方便,将节拍数也进行了编码,并且计算了乐谱节拍编程时的延时时间,如表2-3和表2-4所示。

表2-3节拍数编码表

按1/4拍为一个延时时间的节拍编码与节拍对应的表

按1/8拍为一个延时时间的节拍编码与节拍对应的表

节拍编码

节拍

1/4

6/4

1/8

6/8

2/4

8/4

2/8

8/8

3/4

10/4

3/8

10/8

4/4

12/4

4/8

12/8

5/4

15/4

5/8

表2-4乐谱节拍编程时的时间延时表

乐谱节拍

1/4拍的延时时间

1/8拍的延时时间

125ms

62ms

187ms

94ms

250ms

音符编码和节拍编码完成后,在编程时,每个音符占一个字节,高四位是音符编码,低四位是节拍编码。

第3章硬件电路设计

3.1硬件电路

设计中用到了AT89C52单片机,3*3键盘,蜂鸣器等硬件电路常用元器件。

3.1.1时钟复位电路

时钟电路由单片机XTAL1、XTAL2引脚外接晶振(12MHz)及起振电容C1、C2(均为30pf)组成。

如图3-1所示:

图3-1时钟复位电路

3.1.2按键输入电路

按键输入电路由3*3矩阵键盘组成,P3口作为输入控制按键,其中P3.4~P3.6扫描行,P3.0~P1.2扫描列。

图3-2按键输入电路

3.2整体硬件电路

如图3-3所示:

图3-3音乐盒硬件电路原理图

3.3原理说明:

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

(1) 

硬件电路中用P3口控制按键,其中P3.0~P3.2扫描列,P3.4~P1.6扫描行;

(2) 

用P1.0口控制蜂鸣器;

(3) 

电路为12MHz晶振频率工作,起振电路中C1,C2均为30pf。

3.4键盘按键

键盘按键分布如下:

按键功能说明:

1—5

五首歌曲

上一首歌曲

关机

暂停

下一首歌曲

第4章软件设计

本程序可以实现该课程设计的基本要求,并可以通过按键播放达10首歌曲。

4.1程序设计流程

程序设计流程图如图4-1所示:

图4-1程序设计流程图

4.2设计源程序代码

ORG0000H

LJMPMAIN

ORG000BH

;

定时器T0溢出中断入口地址

LJMPTT0

ORG001BH

定时器T1溢出中断入口地址

LJMPT1INT

ORG1000H

MAIN:

MOVSP,#70H

LCALLINITIL;

内存初始化

WAIT:

LCALLKEY

LJMPWAIT

KEY:

;

键盘扫描

NOP

NOP

LCALLKS

JNZK1;

有按键转到K1

MOVA,37H

LCALLSOP

XN:

LJMPKEY

K1:

JNZK2

K2:

读键盘

MOVR2,#0FEH

MOVR4,#00H

K3:

MOVA,R2

MOVP3,A

MOVA,P3

JBACC.4,L1

;

为1跳转,第一行无按键

MOVA,#01H

LJMPLK

L1:

JBACC.5,L2

MOVA,#04H

L2:

JBACC.6,NEXT1

MOVA,#07H

LK:

ADDA,R4

PUSHACC

K4:

LCALLDELAY1

JNZK4

若同时有其他按键,则等待(同时按视为无效)

MOVR3,#07H

CLRA

MOVR0,#30H

MOVR1,#31H

MM1:

MOVA,@R1;

键值给37H

MOV@R0,A

INCR0

INCR1

DJNZR3,MM1

POPACC

MOV@R0,A

RET

NEXT1:

INCR4;

列扫描

JNBACC.2,N2

LJMPN1

N2:

N1:

RLA

MOVR2,A

LJMPK3

KS:

MOVA,#0F0H;

判断P1口

CPLA

ANLA,#0F0H

DELAY1:

延时2.55ms63×

1us×

10+10×

1us

SETBRS0

DL:

MOVR5,#0AH

DL2:

MOVR6,#63

DL3:

NOP

DJNZR6,DL3

DJNZR5,DL2

CLRRS0

RET

INITIL:

;

30H~37H初值为零

MOVR3,#08H

M1:

MOV@R0,#00H

DJNZR3,M1

CLRP1.0

按键值播放歌曲

SOP:

MOVA,37H

CJNEA,#01H,A11

MOV52H,#HIGHTABLE10

MOV53H,#LOWTABLE10

LCALLMAIN0

A11:

CJNEA,#02H,A22

MOV52H,#HIGHTABLE20

MOV53H,#LOWTABLE20

A22:

CJNEA,#03H,A33

MOV52H,#HIGHTABLE30

MOV53H,#LOWTABLE30

LCALLMAIN0

A33:

CJNEA,#04H,A44

MOV52H,#HIGHTABLE40

MOV53H,#LOWTABLE40

A44:

CJNEA,#05H,A55

MOV52H,#HIGHTABLE50

MOV53H,#LOWTABLE50

A55:

DELAY:

MOVR4,#05

D1:

MOVR5,#0FFH

DJNZR5,$

DJNZR4,D1

MAIN0:

MOVTMOD,#11H;

播放歌曲程序

MOVIE,#8AH

MOVTH1,#3CH

MOVTL1,#0B0H

JNZTTM12

MOV40H,#00H

NEXT20:

MOVA,40H

MOVDPH,52H

MOVDPL,53H

MOVCA,@A+DPTR

JZSTOP

ANLA,#0FH

MOVR1,A

SWAPA

JNZSING

CLRTR0

JMPW1

SING:

DECA

MOV22H,A

MOVDPTR,#TABLE00

MOVTH0,A

MOV21H,A

MOVA,22H

INCA

MOVTL0,A

MOV20H,A

SETBTR0

SETBTR1

W1:

LCALLDELAY30

INC40H

LCALLKS;

有键跳出

JNZSTOP

LJMPNEXT20

STOP:

CLRTR1

CLRP1.0

LJMPMAIN0

TTM12:

LCALLK2

CJNEA,#08H,TTM13;

LCALLDELAY1

TTM120:

JZTTM120

CJNEA,#08H,TTM120

TTM13:

CJNEA,#09H,TTM14;

下一曲

MOVA,52H

MOV52H,A

MOVA,53H

MOV53H,A

MOVA,36H

MOV37H,A

LJMPTTM2

TTM14:

CJNEA,#06H,TTM2;

上一曲

MOV37H,A

TTM2:

TT0:

PUSHACC;

定时器中断子程序0

PUSHPSW

MOVTL0,20H

MOVTH0,21H

CPLP1.0;

获得脉冲

POPPSW

RETI

定时器中断子程序1

T1INT:

MOVTH1,#3cH

MOVTL1,#0b0H

DELAY30:

MOVR7,#2

W2:

MOVR4,#125

W3:

MOVR3,#248

DJNZR3,$

DJNZR4,W3

DJNZR7,W2

DJNZR1,DELAY30

TABLE00:

DW64580,64684,64777,6482;

DW64898,64968,65030,64260

DW64400,64524,65058,63835,64021

TABLE10:

第一首《精忠报国》

DB66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H

DB32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H

DB24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H

DB12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H

DB66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H

DB22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H

DB62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H

DB64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H

DB52H,62H,7FH,74H,04H,58H,6FH

DB00

TABLE20:

第二首《月亮代表我的心》

DB02H,82H

DB16H,32H,54H,02H,52H

DB0A6H,32H,54H,02H,52H

DB64H,74H,0B6H,64H

DB52H,5CH,32H,22H

DB16H,12H,14H,32H,22H

DB16H,12H,14H,22H,32H

DB26H,12H,94H,22H,32H

DB2CH

DB32H,52H

DB36H,22H,14H,54H

DB0ACH,92H,0A2H

DB96H,0A2H,96H,82H

DB3CH,54H

DB2CH,02H,82H

DB16H,32H,56H,12H

DB0A6H,32H,56H,52H

DB66H,72H,0B6H,62H

DB62H,52H,58H,32H,22H

DB26H,92H,0A4H,12H,22H

DB1CH

TABLE30:

第三首《大海》

DB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H

DB22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H

DB22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1CH

DB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H

DB22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1CH,32H,52H

DB62H,64H,62H,64H,0B2H,62H,52H,54H,62H,54H,32H,22H

DB12H,14H,12H,14H,24H,3CH,32H,22H,12H,14H,12H,14H,0B2H,62H,52H,54H,62H,54H,32H,52H

DB66H,0B2H,0B4H,62H,52H,5CH,32H,52H,62H,64H,62H,64H,0B2H,62H,52H,54H

DB62H,54H,32H,22H,12H,14H,12H,14H,54H,3CH,32H,22H,12H,14H,12H,14H,22H,32H

DB52H,54H,32H,54H,32H,52H,6FH,04H,02H,92H,32H,24H,12H,1FH

TABLE40:

第四首《彩云追月》

DB86H,92H,12H,22H,32H,52H,68H,63H,52H,34H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54H

DB62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32H,52H,52H,32H

DB21H,31H,21H,11H,24H

DB32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H

DB31H,21H,21H,31H,21H,11H,1CH

DB21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H

DB71H,61H,51H,61H,71H,61H,6FH

DB86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H

DB51H,61H,51H,31H,54H

DB62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2