| |
功能有选曲,当电子琴演奏,加减速,原速,通过红外遥控,遥控器是牡丹彩电的用89c2051改装的,控制两个电机根据音乐节奏来回的转动,电机与电子爬虫的腿连接,这样爬虫就根据音乐节奏爬动了, 呵呵,有空可以做更多的电机,不足的是音乐较难听:)请大虾们指点! 遥控器代码: ORG 0000H JMP INIT ORG 000BH JMP INT_T ORG 0023H JMP INT_S
CMD EQU 32H FLAG_OUT EQU 01H
ORG 0030H ;**************主程序****************** INIT: CLR FLAG_OUT CLR P3.7 MOV TMOD, #2AH ;初始化 MOV TL0, #0F3H MOV TH0, #0F3H MOV TL1, #0CCH ; MOV TH1, #0CCH
MOV SCON, #0C0H SETB TR1 SETB ES SETB ET0 SETB PS SETB EA ; SETB P3.7 ; CALL DELAY ;------------------------------- LOOP: JB TR0, GO_ON CLR FLAG_OUT MOV C, FLAG_OUT MOV P3.7, C
GO_ON: MOV P1, #0FFH SETB P3.4 SETB P3.5
CLR P1.4 JB P1.0, NEXT_11 MOV CMD, #11 CALL SEND WAIT_10: JNB P1.0, WAIT_10 JMP LOOP NEXT_11: JB P1.1, NEXT_12 MOV CMD, #06 CALL SEND WAIT_11: JNB P1.1, WAIT_11 JMP LOOP NEXT_12: JB P1.2, NEXT_13 MOV CMD, #01 CALL SEND WAIT_12: JNB P1.2, WAIT_12 JMP LOOP NEXT_13: JB P1.3, NEXT_14 MOV CMD, #8 CALL SEND WAIT_13: JNB P1.3, WAIT_13 JMP LOOP NEXT_14: JB P3.4, NEXT_15 MOV CMD, #50H CALL SEND WAIT_14: JNB P3.4, WAIT_14 JMP LOOP NEXT_15: JB P3.5, TO_1 MOV CMD, #60H CALL SEND WAIT_15: JNB P3.5, WAIT_15 JMP LOOP
TO_1: SETB P1.4 CLR P1.5 JB P1.0, NEXT_21 MOV CMD, #80H CALL SEND WAIT_20: JNB P1.0, WAIT_20 JMP LOOP NEXT_21: JB P1.1, NEXT_22 MOV CMD, #07 CALL SEND WAIT_21: JNB P1.1, WAIT_21 JMP LOOP NEXT_22: JB P1.2, NEXT_23 MOV CMD, #02 CALL SEND WAIT_22: JNB P1.2, WAIT_22 JMP LOOP NEXT_23: JB P1.3, NEXT_24 MOV CMD, #04 CALL SEND WAIT_23: JNB P1.3, WAIT_23 JMP LOOP NEXT_24: JB P3.4, NEXT_25 MOV CMD, #90H CALL SEND WAIT_24: JNB P3.4, WAIT_24 JMP LOOP NEXT_25: JB P3.5, TO_2 MOV CMD, #70H CALL SEND WAIT_25: JNB P3.5, WAIT_25 JMP LOOP
TO_2: SETB P1.5 CLR P1.6 JB P1.1, NEXT_31 MOV CMD, #09 CALL SEND WAIT_30: JNB P1.1, WAIT_30 JMP LOOP NEXT_31: JB P1.2, NEXT_32 MOV CMD, #03 CALL SEND WAIT_31: JNB P1.2, WAIT_31 JMP LOOP NEXT_32: JB P1.3, NEXT_33 MOV CMD, #10H CALL SEND WAIT_32: JNB P1.3, WAIT_32 JMP LOOP NEXT_33: JB P3.4, NEXT_34 MOV CMD, #40H CALL SEND WAIT_33: JNB P3.4, WAIT_33 JMP LOOP NEXT_34: JB P3.5, TO_3 MOV CMD, #20H CALL SEND WAIT_34: JNB P3.5, WAIT_34 JMP LOOP
TO_3: SETB P1.6 CLR P1.7 JB P1.1, NEXT_41 MOV CMD, #10 CALL SEND WAIT_40: JNB P1.1, WAIT_40 JMP LOOP NEXT_41: JB P1.2, NEXT_42 MOV CMD, #5 CALL SEND WAIT_41: JNB P1.2, WAIT_41 JMP LOOP NEXT_42: JB P3.5, OVER MOV CMD, #30H CALL SEND WAIT_42: JNB P3.5, WAIT_42
OVER: JMP LOOP ;************************************** SEND: MOV A, CMD MOV C, P MOV TB8, C SETB TR0 MOV SBUF, A CALL DELAY CALL DELAY RET
;*****************定时器0中断服务程序*************** INT_T: CPL FLAG_OUT MOV C, FLAG_OUT MOV P3.7, C RETI
;*****************串口中断服务程序****************** INT_S: PUSH A CLR EA CLR TI CLR TR0 CALL DELAY ;等待接收方处理数据 SETB EA POP A RETI
;***************延时子程序********************* DELAY: MOV 30H, #0FFH D_1: MOV 31H, #08H D_2: NOP DJNZ 31H, D_2 DJNZ 30H, D_1 RET
机器人代码:(外部中断用来接红外传感器的,呵呵,现在没接)
ORG 0000H JMP INIT ORG 0003H JMP INT_0 ORG 000BH JMP INT_T ORG 0023H JMP INT_S ;-------------------------------------
FLAG_F EQU 01H ;功能选择,0为播放,1为演奏 FLAG_L EQU 02H ;指示灯选择,0指示灯亮或1亮 FLAG_P EQU 03H ;是否播放标志,0停止,1播放 FLAG_CH EQU 04H ;演奏时是否换音符,1有效 FLAG_LAST EQU 05H ;播放时是否到最后64分音符 FLAG_PRESS EQU 06H ;是否有演奏按键 FLAG_GO EQU 07H ;是否行走标志位(1为行走,0为停止)
STAT_0 EQU 08H ;4位行走状态,对应P1.0--P1.3 STAT_1 EQU 09H STAT_2 EQU 0AH STAT_3 EQU 0BH
FLAG_MUTE EQU 0CH
PERIOD_H EQU 30H ;音长(定时器高位) PERIOD_L EQU 31H ;音长(定时器低位) COUNTER EQU 32H ;定时器计数(设定定时周期的倍数) CU_COUNTER EQU 41H ;当前定时器计数 TONE EQU 33H ;音高 SPEED EQU 34H ;乐曲速度 D_1 EQU 35H D_2 EQU 36H P_1 EQU 37H P_2 EQU 38H NUM EQU 39H ;乐曲的位置(第几首) POSITION EQU 40H ;乐曲中音符的位置 TAB_H EQU 42H ;当前乐曲的音长表首地址高八位 TAB_L EQU 43H ;当前乐曲的音长表首地址低八位 TAB_TONE_H EQU 44H ;当前乐曲的音高表首地址高八位 TAB_TONE_L EQU 45H ;当前乐曲的音高表首地址低八位 THIS_NUM EQU 46H ;存储当前按键号 PRE_NUM EQU 47H ;存储上次按键号 COUNTER_1 EQU 48H ;判断是否为最后64分音符用,其值等于COUNTER-1 D_L1 EQU 49H D_L2 EQU 4AH D_L3 EQU 4BH P_L1 EQU 4CH P_L2 EQU 4DH TAB_1 EQU 4EH ;查表时的高低字节序号存储 TAB_2 EQU 4FH CMD EQU 50H ;行走命令存储 (1:功能选择、2:加速、3:减速、4:原速、5:停止/前进、 ;(6:左转、7:右转、8:朝前) ) COUNTER_LOOP EQU 51H ;定时器循环计数 ; STATUS EQU 52H ;行走状态寄存 PERIOD_TEMP EQU 53H
;*****************主程序************************* ORG 0030H
INIT: ; CALL LONG CLR P3.7 ; SETB P3.7 MOV SP, #54H CLR FLAG_F ;初始化 CLR FLAG_L CLR FLAG_P CLR FLAG_LAST SETB FLAG_CH CLR FLAG_PRESS SETB FLAG_GO CLR FLAG_MUTE SETB STAT_0 SETB STAT_1 SETB STAT_2 SETB STAT_3
MOV CMD, #00H MOV PERIOD_H, #00H MOV PERIOD_L, #00H MOV TONE, #00H MOV SPEED, #00H MOV COUNTER, #00H MOV NUM, #00H MOV POSITION, #00H ;MOV STATUS, #0FFH
MOV D_1, #80 MOV D_2, #79 MOV P_L1, #01H MOV P_L2, #0FFH MOV TMOD, #21H ;定时器0为16位计数器定时 ,1为8位自动装载 MOV TH0, #0FFH MOV TL0, #0FFH MOV TH1, #0CCH MOV TL1, #0CCH MOV SCON, #0D0H SETB IT0 ;设定外部中断0为负跳变触发 SETB PX0 ;外部中断为高优先级 SETB PS
SETB EA SETB ET0 SETB EX0 ;开外部中断 SETB ES SETB TR1
;CALL DELAY ;------------------------------------------- LOOP: JB FLAG_F, PLAY ;演奏功能跳转
OUT: JNB FLAG_P, LOOP ;播放部分 MOV A, TONE JZ MUTE
JB FLAG_MUTE, MUTE_1
SETB P3.7
MUTE_1: CJNE A, #1FH, NO_OVER CLR TR0 ;TONE值等于1FH,乐曲结束,重新赋初值开始 CLR P3.7 ORL P1, #0FH MOV POSITION, #00H MOV CU_COUNTER, COUNTER CALL LONG MOV TONE, #00 MOV COUNTER_LOOP, #0 SETB TR0 JMP LOOP
NO_OVER: MUTE: CALL DELAY CLR P3.7 CALL DELAY
JMP LOOP ;------------------ PLAY: JNB FLAG_PRESS, OVER SETB P3.7 ;演奏部分 CALL DELAY CLR P3.7 OVER: CALL DELAY
JMP LOOP
;****************串口中断服务程序****************** INT_S: PUSH A CLR RI MOV A, SBUF JB P, R_1 R_0: JB RB8, TO_OVER JMP RIGHT R_1: JNB RB8, TO_OVER
RIGHT: MOV NUM, A ;赋乐曲号 ANL A, #0FH JNZ SELECT ;选曲跳转 MOV A, NUM SWAP A MOV CMD, A ;---------------------------- CJNE A, #01H, IF_2 CLR P3.7 CPL FLAG_F ORL P1, #0FH JB FLAG_F, PLAY_SET SETB FLAG_GO JMP INT_OVER PLAY_SET: CLR FLAG_P CLR TR0 CLR FLAG_GO CLR FLAG_PRESS JMP INT_OVER
IF_2: CJNE A, #02H, IF_3 MOV A, PERIOD_H ADD A, #4 MOV NUM, A CLR C SUBB A, #240 JC S_UP JMP INT_OVER S_UP: MOV PERIOD_H, NUM JMP INT_OVER
IF_3: MOV A, CMD CJNE A, #03H, IF_4 MOV A, PERIOD_H SUBB A, #9 MOV NUM, A CLR C SUBB A, #100 JNC S_DOWN JMP INT_OVER S_DOWN: MOV PERIOD_H, NUM JMP INT_OVER
IF_4: MOV A, CMD CJNE A, #04H, IF_5 MOV PERIOD_H, PERIOD_TEMP JMP INT_OVER
IF_5: CJNE A, #05H, IF_9 CPL FLAG_GO JMP INT_OVER
IF_9: CJNE A, #09H, CMD_OVER CPL FLAG_MUTE CMD_OVER: TO_OVER: JMP INT_OVER ;--------------------------- SELECT: DEC NUM MOV A, NUM ANL A, #0F0H JNZ TO_OVER
MOV A, NUM CLR C SUBB A, #11 JNC TO_OVER
MOV A, NUM RL A MOV TAB_1, A MOV TAB_2, TAB_1 INC TAB_2
MOV DPTR, #TAB_SPEED ;查乐曲速度 MOV A, TAB_1 MOVC A, @A+DPTR MOV PERIOD_L, A MOV TL0, A MOV A, TAB_2 MOVC A, @A+DPTR MOV PERIOD_H, A MOV PERIOD_TEMP, A MOV TH0, A
MOV DPTR, #TAB_NUM_T ;查音高位置首地址 MOV A, TAB_1 MOVC A, @A+DPTR MOV TAB_TONE_H, A MOV A, TAB_2 MOVC A, @A+DPTR MOV TAB_TONE_L, A
MOV DPTR, #TAB_NUM_L ;查音长位置首地址 MOV A, TAB_1 MOVC A, @A+DPTR MOV TAB_H, A MOV A, TAB_2 MOVC A, @A+DPTR MOV TAB_L, A
HANDLE: JB FLAG_F, PLAY_0 ;演奏乐曲时跳转 SETB FLAG_P ;允许播放 MOV POSITION, #0H ;赋乐曲位置值为0,即从头开始拨出 MOV COUNTER, #02H MOV CU_COUNTER, COUNTER ;赋当前定时次数和应定时次数值,使之相等,以使定时器工作时就播放,无需等待 MOV COUNTER_1, COUNTER DEC COUNTER_1 CLR FLAG_LAST MOV COUNTER_LOOP, #0 SETB TR0 ;启动定时器0 JMP INT_OVER
PLAY_0: CLR P3.7 SETB FLAG_PRESS SETB FLAG_CH MOV DPTR, #TAB_TONE ;查音高表 MOV A, NUM ADD A, #07 RL A ;音高表每组音高有两个延时值 MOV TAB_1, A MOVC A, @A+DPTR ;查第一个延时值 MOV D_1, A MOV A, TAB_1 INC A MOVC A, @A+DPTR MOV D_2, A JB FLAG_L, L_0
SETB FLAG_L CLR P3.4 SETB P3.3 JMP INT_OVER L_0: CLR FLAG_L CLR P3.3 SETB P3.4
INT_OVER: POP A RETI
;****************定时器0中断服务程序**************** INT_T: PUSH A CLR TR0 MOV TH0, PERIOD_H MOV TL0, PERIOD_L MOV A, CU_COUNTER CJNE A, COUNTER_1, GO_ON_1 SETB FLAG_LAST JMP READ GO_ON_1: CJNE A, COUNTER, GO_ON ;音符时间未到跳转 CLR FLAG_LAST MOV DPH, TAB_H ;读取音长表首地址 MOV DPL, TAB_L MOV A, POSITION MOVC A, @A+DPTR MOV COUNTER, A MOV COUNTER_1, A DEC COUNTER_1
READ: MOV DPH, TAB_TONE_H ;读取音高表首地址 MOV DPL, TAB_TONE_L MOV A, POSITION ;查音高值 MOVC A, @A+DPTR JNB FLAG_LAST, NO_LAST SUBB A, #07 NO_LAST: MOV TONE, A MOV DPTR, #TAB_TONE ;查与音高相对印的延时值 MOV A, TONE ;查第一个延时值 SUBB A, #06H RL A MOVC A, @A+DPTR MOV D_1, A MOV A, TONE ;查第二个延时值 SUBB A, #06H RL A INC A MOVC A, @A+DPTR MOV D_2, A JB FLAG_LAST, GO_ON_INC
INC POSITION MOV CU_COUNTER, #01H
MOV A, TONE JZ INT_T_OVER
JB FLAG_L, LT_0 SETB FLAG_L CLR P3.4 SETB P3.3 JMP INT_T_OVER LT_0: CLR FLAG_L CLR P3.3 SETB P3.4
JMP INT_T_OVER GO_ON_INC: MOV A, TONE ADD A, #07 MOV TONE, A GO_ON: INC CU_COUNTER
INT_T_OVER: INC COUNTER_LOOP ;行走控制 MOV A, COUNTER_LOOP CJNE A, #16, IF_GO ORL P1, #0FH JMP R
IF_GO: CJNE A, #25, IF_32 MOV A, TONE ; JZ R MOV A, COUNTER CLR C SUBB A, #64 JC YES ;音长大于等于64时停止行走 MOV A, COUNTER SUBB A, CU_COUNTER CLR C SUBB A, #33 JC YES JMP R YES: JB FLAG_GO, GO_1 ;不允许行走跳转 ORL P1, #0FH JMP R GO_1: JB STAT_0, GO_2 ;行走一步 SETB P1.0 SETB STAT_0 CLR P1.1 CLR STAT_1 JMP R GO_2: JB STAT_1, GO_3 SETB P1.1 SETB STAT_1 CLR P1.2 CLR STAT_2 JMP R GO_3: JB STAT_2, GO_4 SETB P1.2 SETB STAT_2 CLR P1.3 CLR STAT_3 JMP R GO_4: SETB P1.3 SETB STAT_3 CLR P1.0 CLR STAT_0 JMP R IF_32: MOV A, COUNTER_LOOP CJNE A, #32, R MOV COUNTER_LOOP, #00H R: SETB TR0 POP A RETI ;******************外部中断0服务程序******************* INT_0: PUSH A
POP A RETI ;******************长延时子程序(1S)******************* LONG: MOV D_L1, P_L1 DL1: MOV D_L2, P_L2 DL2: MOV D_L3, #0FFH DL3: DJNZ D_L3, DL3 DJNZ D_L2, DL2 DJNZ D_L1, DL1 MOV P_L1, #01H RET ;*******************延时子程序********************** DELAY: MOV P_1, D_1 D1: MOV P_2, D_2 D2: DJNZ P_2, D2 DJNZ P_1, D1 RET
;---------------音长表-------------------- ;以64分音符为一个单位,即1为64分音符、2为32分... TAB_L0: DB 32,16,16,32,16,16,32,16,16,24,8,64 ;《DINGO BELL 》 DB 16,16,32,16,16,32,16,16,16,16,64 DB 16,16,32,16,16,32,16,16,24,8,64 DB 16,16,32,16,16,32,16,16,16,16,32,32 TAB_L1: DB 32,32,32,32,32,32,32,32,32,32,32,32,32,48,16,64 ;欢乐颂 DB 32,32,32,32,32,32,32,32,32,32,32,32,48,16,64 DB 32,32,32,32,32,16,16,32,32,32,16,16,32,32,32,32,32,64 DB 32,32,32,32,32,32,32,32,32,32,32,32,16,16,64 TAB_L2: DB 32,32,16,16,16,16,32,32,32,32,16,16,16,16,32,32,32 ;小步舞曲 DB 32,16,16,16,16,32,16,16,16,16,32,16,16,16,16,32,64,32 DB 32,16,16,16,16,32,32,32,32,16,16,16,16,32,32,32 DB 32,16,16,16,16,32,16,16,16,16,32,16,16,16,16,64,32,32 TAB_L3: DB 32,16,16,32,16,16,32,16,16,16,16,16,16,32 ;小蜜蜂 DB 16,16,32,16,16,32,16,16,16,16,64 DB 16,16,16,16,16,16,32,16,16,16,16,16,16,32 DB 16,16,32,16,16,32,16,16,16,16,32 TAB_L4: DB 32,16,16,32,32,32,64,16,16,32,32,32,64 ;生日快乐 DB 16,16,32,32,32,32,64,16,16,32,32,32,64 TAB_L5: DB 32,32,16,16,64,32,32,64,32,16,16,32,16,16,96+32 ;送别 DB 32,16,16,48,16,32,32,64,32,16,16,48,16,128 DB 32,32,64,32,16,16,64,16,16,16,16,16,16,16,16,96+32 DB 32,16,16,48,16,32,32,64,32,16,16,48,16,96,32 TAB_L6: DB 32,32,32,64,32,32,64,32,32,32,32,32,16,16,64 ;樱花 DB 32,32,32,32,32,16,16,64,32,32,32,32,32,16,16,64 DB 32,32,32,32,32,16,16,64,32,32,64,32,32,64, DB 32,32,16,16,32,96 TAB_L7: DB 32,32,16,16,32,16,16,16,32,16,64,32,16,16,32,16,16,16,32,16,64 ;虹彩妹妹 DB 32,16,16,16,16,16,16,16,32,16,64,32,16,16,32,32,16,32,16,48 TAB_L8: DB 32,16,16,48,16, 16,16,16,32,16,16,16, 32,16,16,16,16,16,16, 128+32 ;童年 DB 16,16,32,16,16, 16,16,16,32,16,16,16, 32,16,16,16,16,16,16, 128 DB 16,16,16,32,16,16,16, 32,16,16,16,16,16,16, 32,16,16,16,16,16,16, 128 DB 16,32,16,32,32, 16,32,16,16,16,16,16, 16,32,16,16,16,16,16, 128 TAB_L9: DB 32,00H TAB_L10: DB 32,00H
;---------------播放音符表(0表示休止,1FH为结束标志)---------------- ;从6开始,6——低6,7——低7,8——1,9——2 ,10——3,11——4,12——5,13——6,14——7,15——高1 ; 16——高2,17——高3,18——高4,19——高5,20——高6 TAB_TONE0: DB 0,10+7,10+7,10+7, 10+7,10+7,10+7, 10+7,12+7,8+7,9+7, 10+7 ;《DINGO BELL 》 DB 11+7,11+7,11+7, 11+7,10+7,10+7, 10+7,9+7, 9+7,10+7, 9+7 DB 10+7,10+7,10+7, 10+7,10+7,10+7, 10+7,12+7,8+7,9+7, 10+7 DB 11+7,11+7,11+7, 11+7,10+7,10+7, 12+7,12+7,11+7,9+7, 8+7 DB 1FH TAB_TONE1: DB 0,17,17,18,19,19,18,17,16,15,15,16,17,17,16,16 ;欢乐颂 DB 17,17,18,19,19,18,17,16,15,15,16,17,16,15,15 DB 16,16,17,15,16,17,18,17,15,16,17,18,17,16,15,16,12,17 DB 17,18,19,19,18,17,16,15,15,16,17,16,12,15,15 DB 1FH TAB_TONE2: DB 0,19,15,16,17,18,19,15,15,20,18,19,20,21,22,15,15 ;小步舞曲 DB 18,19,18,17,16,17,18,17,16,15,14,15,16,17,15,17,16,0 DB 19,15,16,17,18,19,15,15,20,18,19,20,21,22,15,15 DB 18,19,18,17,16,17,18,17,16,15,16,17,16,15,14,15 DB 1FH TAB_TONE3: DB 0,19,17,17,18,16,16,15,16,17,18,19,19,19 ;小蜜蜂 DB 19,17,17,18,16,16,15,16,17,19,17 DB 16,16,16,16,16,17,18,17,17,17,17,17,18,19 DB 19,17,17,18,16,16,15,16,17,19,15 DB 1FH TAB_TONE4: DB 0,12,12,13,12,15,14,12,12,13,12,16,15 ;生日快乐 DB 12,12,19,17,15,14,13,18,18,17,15,16,15 DB 1FH TAB_TONE5: DB 0,19,17,19,22,20,22,19,19,15,16,17,16,15,16 ;送别 DB 19,17,19,22,21,20,22,19,19,16,17,18,14,15 DB 20,22,22,21,20,21,22,20,21,22,20,20,19,17,15,16 DB 19,17,19,22,21,20,22,19,19,16,17,18,14,15 DB 1FH ;从6开始,6——低6,7——低7,8——1,9——2 ,10——3,11——4,12——5,13——6,14——7,15——高1 ; 16——高2,17——高3,18——高4,19——高5,20——高6 TAB_TONE6: DB 0,20,20,21,20,20,21,20,21,22,21,20,21,20,18 ;樱花 DB 17,15,17,18,17,17,15,14,20,21,22,21,20,21,20,18 DB 17,15,17,18,17,17,15,14,20,20,21,20,20,21 DB 17,18,21,20,18,17 DB 1FH TAB_TONE7: DB 0,20,19,17,20,19,17,20,20,19,20,20,19,17,20,19,17,16,16,15,16 ;虹彩妹妹 DB 17,17,19,20,22,20,19,17,17,19,15,17,17,17,17,17,13,13,12,13 DB 1FH TAB_TONE8: DB 0,10,12,12,10, 13,13,14,13,13,13,12, 15,15,15,15,13,15,13, 12 DB 10,12,12,12,10, 13,13,14,13,13,13,12, 15,15,15,15,13,13,15,16 DB 19,19,19,19,19,17,16, 15,15,15,13,15,13,15, 16,16,16,16,15,17,16, 16 DB 17,17,17,17,16,15,15,15,16,15,13,12, 12,12,12,13,12,16,17,15 DB 1FH TAB_TONE9: DB 0,00H DB 1FH TAB_TONE10: DB 0,00H DB 1FH
;-------(实际音高表,每个音高包括两个延时值)----------------- ;第一个音符为6,7。。。 TAB_TONE: DB 29, 41, 11, 99, 131,6, 233,2, 13, 62 DB 14, 54, 233,1, 89, 5, 79, 5, 18, 27 ;( 高1) DB 15, 29, 18, 21, 17, 21, 12, 27, 103, 1 DB 13, 19, 10,24 , 11,19
;----------------------乐曲播放速度表----------------------- TAB_SPEED: DB 00H , 0C3H, 84H, 0E0H, 84H, 0D0H, 0EFH, 0CDH, 84H, 0CDH DB 00H, 0C7H, 84H, 0CDH, 84H, 0CFH, 84H, 0CDH, 84H, 6DH
;-----------------------乐曲初值地址表---------------------------- TAB_NUM_L: DW TAB_L0, TAB_L1, TAB_L2, TAB_L3, TAB_L4, TAB_L5 DW TAB_L6, TAB_L7, TAB_L8, TAB_L9, TAB_L10
TAB_NUM_T: DW TAB_TONE0, TAB_TONE1, TAB_TONE2, TAB_TONE3, TAB_TONE4 DW TAB_TONE5, TAB_TONE6, TAB_TONE7, TAB_TONE8, TAB_TONE9 DW TAB_TONE10 E: |
|