8051遊戲音效 |
尚未結案
|
ricky7728
一般會員 發表:1 回覆:1 積分:0 註冊:2009-08-22 發送簡訊給我 |
|
oYueno
初階會員 發表:1 回覆:27 積分:25 註冊:2009-08-17 發送簡訊給我 |
KEIL C51 V3 8051 P1.0 輸出音樂用(生日快樂)
[code delphi] #include "MY1.H" T_H DATA 24H ;T值高8位元 T_L DATA 25H ;T值低8位元 BEAT DATA 26H ;節拍存放變數 SPK BIT P1.0 ;喇叭 CSEG AT 00H JMP START ;主程式 CSEG AT 0BH ;TIMER0中斷向量 JMP T0_int ;TIMER0中斷副程式 START: MOV TMOD,#00000001B ;TIMER0工作在MODE1 MOV IE,#10000010B ;TIMER0中斷致能 SS1: MOV DPTR,#TAB SS2: CLR A ;到TAB取簡譜碼 MOVC A,@A DPTR MOV T_H,A ;取音符T值高位元組 INC DPTR CLR A MOVC A,@A DPTR ;;取音符T值低位元組 MOV T_L,A ORL A,T_H CJNE A,#10,SS3 ;是否取到10結束碼?是則結束 CLR TR0 ;停止發音 SETB SPK ;關閉喇叭 JMP SS1 SS3: CJNE A,#0,SS4 ;是否取到音符碼為0?,不是則準備發音 CLR TR0 ;是則不發音 JMP SS5 SS4: MOV TH0,T_H MOV TL0,T_L SETB TR0 ;啟動TIMER0 SS5: INC DPTR INC DPTR ;節拍碼在低位元組 CLR A ;到TAB取節拍碼 MOVC A,@A DPTR MOV BEAT,A CALL D187MS ;187ms INC DPTR ;取下一個簡譜碼 JMP SS2 T0_int: PUSH ACC MOV TL0,T_L ;重設計數值 MOV TH0,T_H CPL SPK ;喇叭輸出反相 POP ACC RETI D187MS: MOV R5,#02 D1: MOV R6,#187 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 DJNZ BEAT,D187MS RET TAB: DW M5,3,M5,1,M6,4,M5,4 //生日快樂歌簡譜碼 DW H1,4,M7,8 DW M5,3,M5,1,M6,4,M5,4 DW H2,4,H1,8 DW M5,3,M5,1,H5,4,H3,4 DW H1,4,M7,4,M6,4 DW H4,3,H4,1,H3,4,H1,4 DW H2,4,H1,8,10 ;10為結束碼 END [/code] MY1.H [code delphi] #define L1 63628 #define L1_ 63731 #define L2 63835 #define L2_ 63928 #define L3 64021 #define L4 64103 #define L4_ 64185 #define L5 64260 #define L5_ 64331 #define L6 64400 #define L6_ 64463 #define L7 64524 #define M1 64580 #define M1_ 64633 #define M2 64684 #define M2_ 64732 #define M3 64777 #define M4 64820 #define M4_ 64860 #define M5 64898 #define M5_ 64934 #define M6 64968 #define M6_ 65000 #define M7 65030 #define H1 65058 #define H1_ 65085 #define H2 65110 #define H2_ 65134 #define H3 65157 #define H4 65178 #define H4_ 65198 #define H5 65217 #define H5_ 65235 #define H6 65252 #define H6_ 65268 #define H7 65283 [/code] |
ricky7728
一般會員 發表:1 回覆:1 積分:0 註冊:2009-08-22 發送簡訊給我 |
|
x8051
一般會員 發表:12 回覆:18 積分:6 註冊:2004-04-15 發送簡訊給我 |
http://www.icdev.com.cn/bbs/viewthread.php?tid=12880&extra=page=1
這裡有資料範例,你可以播播看,但是沒有播放程式. (格式好像是電玩專用特殊的程式 5軌旋律 1軌打擊樂器) (找賭博電玩BAR因該都有這方面的播放程式)
編輯記錄
x8051 重新編輯於 2010-04-18 01:10:21, 註解 無‧
|
penguin5
資深會員 發表:116 回覆:317 積分:431 註冊:2004-05-09 發送簡訊給我 |
|
x8051
一般會員 發表:12 回覆:18 積分:6 註冊:2004-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |