51单片机汇编语言音乐程序文档格式.docx

上传人:b****5 文档编号:19077635 上传时间:2023-01-03 格式:DOCX 页数:17 大小:17.95KB
下载 相关 举报
51单片机汇编语言音乐程序文档格式.docx_第1页
第1页 / 共17页
51单片机汇编语言音乐程序文档格式.docx_第2页
第2页 / 共17页
51单片机汇编语言音乐程序文档格式.docx_第3页
第3页 / 共17页
51单片机汇编语言音乐程序文档格式.docx_第4页
第4页 / 共17页
51单片机汇编语言音乐程序文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

51单片机汇编语言音乐程序文档格式.docx

《51单片机汇编语言音乐程序文档格式.docx》由会员分享,可在线阅读,更多相关《51单片机汇编语言音乐程序文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

51单片机汇编语言音乐程序文档格式.docx

SETBET0

SETBET1

SETBTR0

SETBTR1

SETBNEXT

JBNEXT,$

JMPYD

PD:

CJNEA,#00H,L1

INCDPH

L1:

RET

;

音调产生子程序

TONE:

CPLP2.0

RETI

节拍产生子程序

BEAT:

DJNZR5,L2

L3:

L2:

CLRTR0

CLRTR1

CLRNEXT

JMPL3

两只老虎音符表

TAB:

DB0FBH,0F9H,08H,0FCH,066H,08H,0FCH,0C7H,08H,0FBH,0F9H,08H

DB0FCH,0C7H,08H,0FCH,0F3H,08H,0FDH,4AH,10H,0FCH,0C7H,08H

DB0FCH,0F3H,08H,0FDH,4AH,08H,0FDH,4AH,04H,0FDH,95H,04H

DB0FDH,4AH,04H,0FCH,0F3H,04H,0FCH,0C7H,08H,0FBH,0F9H,08H

DB0FDH,4AH,04H,0FDH,95H,04H,0FDH,4AH,04H,0FCH,0F3H,04H

DB0FCH,0C7H,08H,0FBH,0F9H,08H,0FCH,66H,08H,0FAH,93H,08H

DB0FBH,0F9H,08H,00H,08H,0FCH,66H,04H,0FAH,93H,08H

DB0FBH,0F9H,08H,00H,10H,0FFH,0FFH

END

02祝你平安

ORG0000H

LJMPSTART

ORG000BH

INC20H;

中断服务,中断计数器加1

MOVTH0,#0D8H

MOVTL0,#0EFH;

12M晶振,形成10毫秒中断

RETI

START:

MOVSP,#50H

MOVTL0,#0EFH

MOVTMOD,#01H

MOVIE,#82H

MUSIC0:

NOP

MOVDPTR,#DAT;

表头地址送DPTR

MOV20H,#00H;

中断计数器清0

MOVB,#00H;

表序号清0

MUSIC1:

CLRA

MOVCA,@A+DPTR;

查表取代码

JZEND0;

是00H,则结束

CJNEA,#0FFH,MUSIC5

LJMPMUSIC3

MUSIC5:

MOVR6,A

INCDPTR

MOVA,B

取节拍代码送R7

MOVR7,A

SETBTR0;

启动计数

MUSIC2:

CPLP3.3

MOVA,R6

MOVR3,A

LCALLDEL

MOVA,R7

CJNEA,20H,MUSIC2;

中断计数器(20H)=R7否?

不等,则继续循环

等于,则取下一代码

;

INCB

LJMPMUSIC1

MUSIC3:

CLRTR0;

休止100毫秒

MOVR2,#0DH

MUSIC4:

MOVR3,#0FFH

DJNZR2,MUSIC4

END0:

MOVR2,#64H;

歌曲结束,延时1秒后继续

MUSIC6:

MOVR3,#00H

DJNZR2,MUSIC6

LJMPMUSIC0

DEL:

DEL3:

MOVR4,#02H

DEL4:

DJNZR4,DEL4

DJNZR3,DEL3

RET

DAT:

db26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h

db30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h

db20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h

db30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h

db30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h

db2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h

db20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h

db20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h

db20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h

db20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h

db18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h

db30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h

db39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h

db20h,10h,2bh,10h,26h,30h,30h,80h,00H

03生日歌

JMPSTART

ORG000BH

JMPTIM0

ORG0030H

MOVTMOD,#01H

START0:

MOV30H,#00H

NEXT:

MOVA,30H

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVR2,A

JZEND0

ANLA,#0FH

MOVR5,A

MOVA,R2

SWAPA

JNZSING

CLRTR0

JMPD1

SING:

DECA

MOV22H,A

RLA

MOVDPTR,#TABLE1

MOVTH0,A

MOV21H,A

MOVA,22H

INCA

MOVTL0,A

MOV20H,A

SETBTR0

D1:

CALLDELAY

INC30H

JMPNEXT

CLRTR0

JMPSTART0

TIM0:

PUSHACC

PUSHPSW

MOVTH0,21H

MOVTL0,20H

CPLP3.7

POPPSW

POPACC

RETI

DELAY:

MOVR7,#02

D2:

MOVR4,#187

D3:

MOVR3,#248

DJNZR3,$

DJNZR4,D3

DJNZR7,D2

DJNZR5,DELAY

RET

TABLE1:

DW64260,64400,64524,64580

DW64684,64777,64820,64898

DW64968,65030,65058,65110

DW65157,65178,65217

TABLE:

DB82H,01H,81H,94H,84H

DB0B4H,0A4H,04H

DB0C4H,0B4H,04H

DB82H,01H,81H,0F4H,0D4H

DB0B4H,0A4H,94H

DB0E2H,01H,0E1H,0D4H,0B4H

DB00H

END

04八月桂花香

LJMPSTART

INC20H;

MOVTH0,#0D8H

MOVTL0,#0EFH;

RETI

MOVSP,#50H

MOVTL0,#0EFH

MOVIE,#82H

NOP

MOVDPTR,#DAT;

MOV20H,#00H;

CLRA;

A清零

MOVCA,@A+DPTR;

JZEND0;

CJNEA,#0FFH,MUSIC5;

如果是休止符,往下执行

LJMPMUSIC3

MOVR6,A;

R6=18H音符的频率

INCDPTR;

DPTR加一

MOVA,#0

MOVR7,A;

R7=30H音符发音的时间

SETBTR0;

CPLP2.3;

P2.3是音乐输出引脚

MOVA,R6

MOVR3,A;

籖3=R6=18H

LCALLDEL

MOVA,R7

CJNEA,20H,MUSIC2;

INCDPTR

LJMPMUSIC1

NOP;

CLRTR0

MOVR2,#0DH;

R2=13

MOVR3,#0FFH;

R3=255

DJNZR2,MUSIC4

MOVR2,#0FFH;

MOVR3,#00H

DJNZR2,MUSIC6

LJMPMUSIC0

MOVR4,#02H

DJNZR4,DEL4

DJNZR3,DEL3

RET

DB18H,30H,1CH,10H

DB20H,40H,1CH,10H

DB18H,10H,20H,10H

DB1CH,10H,18H,40H

DB1CH,20H,20H,20H

DB1CH,20H,18H,20H

DB20H,80H,0FFH,20H

DB30H,1CH,10H,18H

DB20H,15H,20H,1CH

DB20H,20H,20H,26H

DB40H,20H,20H,2BH

DB20H,26H,20H,20H

DB20H,30H,80H,0FFH

DB20H,20H,1CH,10H

DB18H,10H,20H,20H

DB26H,20H,2BH,20H

DB30H,20H,2BH,40H

DB20H,20H,1CH,10H

DB18H,10H,20H,20H

DB26H,20H,2BH,20H

DB30H,20H,2BH,40H

DB20H,30H,1CH,10H

DB18H,20H,15H,20H

DB1CH,20H,20H,20H

DB26H,40H,20H,20H

DB2BH,20H,26H,20H

DB20H,20H,30H,80H

DB20H,10H,1CH,10H

DB20H,20H,26H,20H

DB2BH,20H,30H,20H

DB2BH,40H,20H,15H

DB1FH,05H,20H,10H

DB1CH,10H,20H,20H

DB26H,20H,2BH,20H

DB20H,20H,30H,30H

DB20H,30H,1CH,10H

DB18H,40H,1CH,20H

DB20H,20H,26H,40H

DB13H,60H,18H,20H

DB15H,40H,13H,40H

DB18H,80H,00H

end

05兰花草

SPKEQUP3.3;

蜂鸣器所在端口

ORG0000H

JMPSTART

MOVA,R3

MOVCA,@A+DPTR

JZSTART

INCR3

MOVR2,A

ACALLSONG

SJMPNEXT

===============================================================================

===歌曲播放子程序===

SONG:

MOVA,R2;

取出节拍

RLA

JNZKEEP

MOVA,#01H

KEEP:

REPEAT:

ACALLEIGHTH

DJNZR2,REPEAT

===产生1/8拍延时子程序===

EIGHTH:

MOVA,R7;

查表取出廷时参数,保存到R4

MOVDPTR,#DELAY_T

MOVR4,A

查表取出1/8拍周期数,保存到R5

MOVDPTR,#S_PARA

MOVR5,A

NEXTCYC:

ACALLSOUND

DJNZR5,NEXTCYC

===发声子程序===

SOUND:

SETBSPK

ACALLSDELAY

CLRSPK

===延时子程序===

SDELAY:

MOVA,R4;

廷时值在R4内

MOVR0,A

XL2:

MOVR1,#03H

DL1:

DJNZR1,DL1

DJNZR0,XL2

===1/8拍周期表===

S_PARA:

DS1DH

DB15H,16H,00

DB19H,00H,1CH,00H,1FH,21H,00H,25H

DB00H,29H,2CH,00H,31H,34H,37H,00H

DB3EH,41H,00H,49H,00H,52H,57H,00H

DB62H

===延时参数表===

DELAY_T:

DB7EH,77H,00H

DB6AH,00H,5EH,00H,54H,4FH,00H,46H

DB00H,3FH,3BH,00H,35H,32H,2FH,00H

DB2AH,27H,00H,23H,00H,1FH,1DH,0C0H

DB1AH

===歌曲表===

DW2202H,2902H,2902H,2902H,2906H,2702H;

我从山中来

DW2502H,2702H,2502H,2402H,2208H;

带着兰花草

DW2E02H,2E02H,2E02H,2E02H,2E06H,2C02H;

种在小园中

DW2902H,2C02H,2D02H,2A02H,2908H;

祈祷花开早

DW2902H,2E02H,2E02H,2C02H,2906H,2702H;

一日看三回

DW2502H,2702H,2502H,2402H,2206H,1D02H;

看得花时过

DW1D02H,2502H,2502H,2402H,2206H,2902H;

兰花却依然

DW2702H,2502H,2402H,2002H,2208H;

苞也无一个

DW0000H;

END

 

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

当前位置:首页 > 求职职场 > 笔试

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

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