以下是定时4重奏,但出来的曲不好听,我想要手机那中和弦音,有做过朋友请指教下
WK_T0: ; 用定时0 触发计数 音乐输出 ;入口: TDAT=250--0 ; MCINC2=0---250
;MOV A,#180 //150 130 74H=116 设 10MS 定时出 ;B0MOV TC0C,A //初值入 ;B0BTS0 TDAT_F ;合奏值 输出音乐 ;JMP TDAT_L ; ;B0BSET TDAT_F ;合奏值 输出音乐 ;B0MOV A,TDAT1 ;定时器计数初始值 //150 130 74H=116 设 10MS 定时出 ;B0MOV TC0C,A //初值入 ;JMP TDAT_E ; ;TDAT_L: ;B0BCLR TDAT_F ;合奏值 输出音乐 ;B0MOV A,TDAT2 ;定时器计数初始值 ;B0MOV TC0C,A //初值入 ;TDAT_E: INCMS MSDAT ;定时器计数初始值 B0MOV A,MSDAT ;定时器计数初始值 XOR A,#4 ; 0---3 B0BTS1 FZ ; JMP MSDAT_MUSIC_ON; CLR MSDAT ;定时器计数初始值 MSDAT_MUSIC_ON: ;
B0MOV A,MSDAT ;定时器计数初始值 ;XOR A,#3 ; 8 B0BTS1 FZ ; JMP MSDAT_MUSIC_2 ;
MSDAT_MUSIC_1: ; B0MOV A,TDAT1 ;定时器计数初始值 //150 130 74H=116 设 10MS 定时出 B0MOV TC0C,A //初值入 JMP MSDAT_MUSIC_EX ; MSDAT_MUSIC_2: ; B0MOV A,MSDAT ;定时器计数初始值 XOR A,#1 ; 8 B0BTS1 FZ ; JMP MSDAT_MUSIC_3 ; B0MOV A,TDAT2 ;定时器计数初始值 //150 130 74H=116 设 10MS 定时出 B0MOV TC0C,A //初值入 JMP MSDAT_MUSIC_EX ; MSDAT_MUSIC_3: ; B0MOV A,MSDAT ;定时器计数初始值 XOR A,#2 ; 8 B0BTS1 FZ ; JMP MSDAT_MUSIC_4 ;
B0MOV A,TDAT3 ;定时器计数初始值 //150 130 74H=116 设 10MS 定时出 B0MOV TC0C,A //初值入 JMP MSDAT_MUSIC_EX ;
MSDAT_MUSIC_4: ; B0MOV A,TDAT4 ;定时器计数初始值 //150 130 74H=116 设 10MS 定时出 B0MOV TC0C,A //初值入 ;JMP MSDAT_MUSIC_EX ;
MSDAT_MUSIC_EX: ;
;============================== ; ;============================== PTKTMS: B0BTS1 MUOUT_F ;MUOUT_F =1 输出音乐 JMP PTKTMS_E ;不输出音乐转出口
B0BTS0 TMS_F ;TMS_F=1驱动PWM 输出 JMP TMS_L ; B0BSET TMS_F ;TMS_F=1驱动PWM 输出 B0BSET PMUSIC ;音乐输出 JMP PTKTMS_E ; TMS_L: B0BCLR TMS_F ;TMS_F=1驱动PWM 输出 B0BCLR PMUSIC ;音乐输出 PTKTMS_E:
WK_T0_EX: ;定时0出口 JMP INT_END ; |