新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机演奏音乐原理与模拟实验

单片机演奏音乐原理与模拟实验

作者: 时间:2011-12-03 来源:网络 收藏
MCS51 汇编程序

;标题 '八月桂花香'发声程序

ORG0000H

LJMPSTART

ORG000BH

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

MOVTH0,#0D8H

MOVTL0,#0EFH ;12M晶振,形成10毫秒中断

RETI

START:

MOVSP,#50H

MOVTH0,#0D8H

MOVTL0,#0EFH

MOVTMOD,#01H

MOVIE,#82H

MUSIC0:

NOP

MOVDPTR,#DAT;表头地址送DPTR

MOV20H,#00H ;中断计数器清0

MUSIC1:

NOP

CLRA;A清零

MOVCA,@A+DPTR;查表取代码

JZEND0;是00H,则结束

CJNEA,#0FFH,MUSIC5;如果是休止符,往下执行

LJMPMUSIC3

MUSIC5:

NOP

MOVR6,A;R6=18H音符的频率

INCDPTR;DPTR加一

MOVA,#0

MOVCA,@A+DPTR;取节拍代码送R7

MOVR7,A;R7=30H音符发音的时间

SETBTR0 ;启动计数

MUSIC2:

NOP

CPLP2.5 ;P2.5是输出引脚

MOVA,R6

MOVR3,A;R3=R6=18H

LCALLDEL

MOVA,R7

CJNEA,20H,MUSIC2;中断计数器(20H)=R7否?

;不等,则继续循环

MOV20H,#00H ;等于,则取下一代码

INCDPTR

LJMPMUSIC1

MUSIC3:

NOP;休止100毫秒

CLRTR0

MOVR2,#0DH ;R2=13

MUSIC4:

NOP

MOVR3,#0FFH ;R3=255

LCALLDEL

DJNZR2,MUSIC4

INCDPTR

LJMPMUSIC1

END0:

NOP

MOVR2,#0FFH ;歌曲结束,延时1秒后继续

MUSIC6:

MOVR3,#00H

LCALLDEL

DJNZR2,MUSIC6

LJMPMUSIC0

DEL:

NOP

DEL3:

MOVR4,#02H

DEL4:

NOP

DJNZR4,DEL4

NOP

DJNZR3,DEL3

RET

NOP

DAT:

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, 30H, 1CH , 10H

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

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, 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


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭