📄
字号:
;********************************
PROC SSYJ,XJYJ,BCY,FWY
;********************************
; 上升音阶
;********************************
; 1 3 5
;--------------------------------
SSYJ:
PUSH DPH
PUSH DPL
PUSH B
MOV B,#50 ;快慢
MOV DPTR,#TAB_SSYJ
LCALL SOUND
POP B
POP DPL
POP DPH
RET
;--------------------------------
TAB_SSYJ:
DB 12;数量
DB 48,52,55;
DB 60,64,67;
DB 72,76,79;
DB 84,88,91;
;********************************
; 下降音阶
;********************************
; .
; 1 7 6 5 4 3 2 1
;--------------------------------
XJYJ:
PUSH DPH
PUSH DPL
PUSH B
MOV B,#50 ;快慢
MOV DPTR,#TAB_XJYJ
LCALL SOUND
POP B
POP DPL
POP DPH
RET
;--------------------------------
TAB_XJYJ:
DB 12;数量
DB 88,84,81;
DB 76,72,69;
DB 64,60,57;
DB 52,48,45;
;********************************
; 保存音
;********************************
; 1 3 5 1 3 5 1 3 5
;--------------------------------
BCY:
PUSH DPH
PUSH DPL
PUSH B
MOV B,#120 ;快慢
MOV DPTR,#TAB_BCY
LCALL SOUND
POP B
POP DPL
POP DPH
RET
;--------------------------------
TAB_BCY:
DB 18;数量
DB 60,64,67,60,64,67,60,64,67;
DB 60,64,67,60,64,67,60,64,67;
;********************************
; 复位音(分解合弦)
;********************************
; 6 6 1 6 3 6 1 6
; . . . . .
;--------------------------------
FWY:
PUSH DPH
PUSH DPL
PUSH B
MOV B,#120 ;快慢
MOV DPTR,#TAB_FWY
LCALL SOUND
POP B
POP DPL
POP DPH
RET
;--------------------------------
TAB_FWY:
DB 16;数量
DB 57,57,60,57,64,57,60,57;
DB 57,57,60,57,64,57,60,57;
;********************************
; 声音
;********************************
SOUND:
JNB BZ_FSWB,$ ;发送完毕标志,0=没完
PUSH PSW
PUSH ACC
MOV A,R7
PUSH ACC
PUSH IE
CLR ES
;--------
MOV A,#0
MOVC A,@A+DPTR
INC DPTR
MOV R7,A
SOUND1:
MOV A,#90H ;发音
LCALL FS_SOUND
MOV A,#0
MOVC A,@A+DPTR ;键号
LCALL FS_SOUND
MOV A,#55 ;力度
LCALL FS_SOUND
MOV A,B ;快慢
LCALL YS_MS ;延时
MOV A,#80H ;关音
LCALL FS_SOUND
MOV A,#0
MOVC A,@A+DPTR ;键号
INC DPTR
LCALL FS_SOUND
MOV A,#0 ;力度(关闭)
LCALL FS_SOUND
DJNZ R7,SOUND1
;--------
POP IE
POP ACC
MOV R7,A
POP ACC
POP PSW
RET
;********************************
; 发送声音
;********************************
FS_SOUND:
MOV SBUF,A
JNB TI,$
CLR TI
RET
;********************************
END
;********************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -