chaxundingshi.txt

来自「基于KEIL-C的开发环境」· 文本 代码 · 共 65 行

TXT
65
字号
ORG 0000H
LJMP MAIN
ORG 0040H

MAIN:
CLR A
MOV R6,A ;定义循环变量,播放多少个音符
MOV TMOD,#1H

LOOP1:
CJNE R6,#5,GET
LJMP MAIN

GET:
MOV A,R6
MOV DPTR,#MUSL
MOVC A,@A+DPTR 
MOV 30H,A;取延时拍数,存放于30H

MOV A,R6
ADD A,R6
MOV DPTR,#MUSF
MOVC A,@A+DPTR 
MOV 31H,A;取乐曲频率(半周期延时),存放于31H
CLR C
MOV A,#0FFH
SUBB A,31H
MOV 31H,A

MOV A,R6
ADD A,R6
ADD A,#1
MOVC A,@A+DPTR
MOV 32H,A
CLR C
MOV A,#0FFH
SUBB A,32H
MOV 32H,A

INC R6

DELAY:
MOV R1,#2;决定播放速度

LOOP3:
MOV TH0,31H
MOV TL0,32H
SETB TR0

LOOP4:
JBC TF0,LOOP5
LJMP LOOP4

LOOP5:
CPL P1.0

DJNZ 30H,LOOP3
DJNZ R1,LOOP3
LJMP LOOP1

;MUSL:DB 144,144,144,144,144,144,255,144,72,144,144,144,255
;MUSF:DW 758,638,758,852,758,852,758,758,852,284,956,758,426

MUSL:DB 72,144,144,144,255
MUSF:DW 1516,1276,956,1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?