音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請(qǐng)教單片機(jī)的音樂(lè)播放程序該怎么編寫

作者:aptitude 欄目:單片機(jī)
請(qǐng)教單片機(jī)的音樂(lè)播放程序該怎么編寫
大蝦好,請(qǐng)教誰(shuí)知道單片機(jī)的音樂(lè)程序怎么編寫呢,我想用無(wú)源蜂鳴器播放類似救護(hù)車的聲音,不知道能實(shí)現(xiàn)不,請(qǐng)指教

2樓: >>參與討論
tyw
更換下例中數(shù)據(jù)試一下
把半音都造出來(lái),反復(fù)演奏連續(xù)的半音階,節(jié)拍調(diào)快點(diǎn)
會(huì)玩MIDI的話,裝一套CakeWalk7.0,在里面先寫音譜,試效果,確定后把所用到的音符做到下例的TABLE中去就行了.以前做游戲機(jī)音效時(shí),都是用這方法先試音的.

這是本人一個(gè)產(chǎn)品中的音樂(lè)單元,很完整,供愛(ài)好者參考. 稍加修改還能做成雙音的.

        ORG     0000H
        AJMP    CSH             ;主程序進(jìn)入點(diǎn)
        ORG     000BH
        LJMP    TIM0            ;定時(shí)中斷T0入口
;
;**********
;* 初始化 *
;**********
;
        ORG     0020H
CSH:    MOV     R0,#7FH         ;內(nèi)部RAM(00H~7FH)清零
CSH1:   MOV     @R0,#00H
        DJNZ    R0,CSH1
        MOV     SP,#60H         ;堆棧60H~7FH,【使用89C51
        MOV     TMOD,#01H       ;TMOD=11H,T0作16位計(jì)數(shù)器(4M晶振)
        CLR     TCON.4          ;T0禁止動(dòng)作
        SETB    IE.1            ;T0允許中斷
        SETB    PT0             ;T0中斷優(yōu)先
        SETB    IE.7            ;系統(tǒng)允許中斷
;
;**********
;* 主程序 *
;**********
;
MAIN:   MOV     5CH,#00         ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        MOV     5CH,#49         ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        MOV     5CH,#66         ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        MOV     5CH,#100        ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        MOV     5CH,#108        ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        MOV     5CH,#136        ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        MOV     5CH,#174        ;取簡(jiǎn)碼譜指針
        LCALL   MUSIC
        AJMP    MAIN
;
;*************************
;* 音樂(lè)子程序 MUSIC      *
;* 入口: 5CH←簡(jiǎn)碼譜指針 *
;*************************
;
MUSIC:  MOV     A,5CH           ;簡(jiǎn)碼譜指針裝入A
        MOV     DPTR,#TABLE     ;至TABLE取簡(jiǎn)碼
        MOVC    A,@A+DPTR
        MOV     R2,A            ;取到的簡(jiǎn)碼暫存于R2
        JZ      END1            ;是否取到00(結(jié)束碼)?
        ANL     A,#0FH          ;不是,則取低四位(節(jié)拍碼)
        MOV     R6,A            ;將節(jié)拍碼存入R6
        MOV     A,R2            ;將取到的簡(jiǎn)碼再裝入R2
        SWAP    A               ;高低四位交換
        ANL     A,#0FH          ;取低四位(音符碼)
        JNZ     SING            ;取到的音符碼是否為0?
        CLR     TR0             ;是,則不發(fā)音
        AJMP    D1              ;跳到D1
;
SING:   DEC     A               ;取到的音符碼減1
        MOV     4BH,A           ;存入(4BH)
        RL      A               ;乘2
        MOV     DPTR,#TABLE1    ;至TABLE1取相對(duì)的高字節(jié)計(jì)數(shù)值
        MOVC    A,@A+DPTR
        MOV     TH0,A           ;取到的高字節(jié)存入TH0
        MOV     4AH,A           ;取到的高字節(jié)存入(4AH)
        MOV     A,4BH           ;再裝入取到的音符碼
        RL      A               ;乘2
        INC     A            &n
3樓: >>參與討論
hotpower
好東西,要用PWM可能更省心了
 
4樓: >>參與討論
aptitude
非常感謝,小弟先試試,謝謝
 
5樓: >>參與討論
tyw
音階關(guān)系計(jì)算方法
半音階之間為12√2 (2開(kāi)12次方根),為1.0593631倍.
例如鋼琴中央組的 A=440Hz
                 #A=440Hz x 1.059 =466.16Hz
                 B=440Hz x 1.059 x 1.059 =493.88Hz
                 C=440Hz x 1.059 x 1.059 x 1.059=523.25Hz 

6樓: >>參與討論
初級(jí)階級(jí)
能否將兒歌之類的歌用單片機(jī)"唱"出來(lái)呢?
如果真的能,那可以把很多歌曲編到單片機(jī)中唱出來(lái)!那也蠻好玩的!

7樓: >>參與討論
tyw
可以的,關(guān)鍵在于寫TABLE,把音高,時(shí)值逐個(gè)填入TABLE表
例子中給出了幾段音樂(lè)
TABLE:
;【00】
        DB      98H,02H,B4H,01H,94H,01H,68H,02H,94H,01H
        DB      64H,01H,48H,02H,64H,01H,44H,01H,28H,02H
        DB      64H,01H,94H,01H,B4H,01H,94H,01H,B4H,01H
        DB      94H,01H,B4H,01H,D4H,01H,94H,01H,64H,01H
        DB      44H,01H,64H,01H,98H,02H,01H,01H,00H
;【49】
        DB      A4H,02H,84H,02H,A4H,02H,84H,02H,D8H,04H
        DB      C8H,01H,01H,01H,01H,01H,00H
;【66】
        DB      42H,52H,62H,72H,82H,92H,A2H,B2H,42H,52H
        DB      62H,72H,82H,92H,A2H,B2H,00H
;【100】
        DB      61H,81H,B1H,D1H,B1H,81H,61H,00H
;【108】
        DB      11H,41H,61H,81H,61H,41H,11H,00H
;【136】
        DB      24H,04H,34H,04H,44H,04H,54H,04H,64H,04H,44H,04H,64H,04H,94H,04H
        DB      83H,01H,93H,01H,83H,01H,63H,01H,46H,02H,66H,02H
        DB      91H,21H,91H,21H,91H,21H,91H,21H,94H,00H
;【174】
        DB      94H,04H,A4H,04H,B4H,04H,C4H,04H,D4H,04H
        DB      B4H,04H,D8H,08H,C4H,04H,F4H,04H,CCH,00H
;


8樓: >>參與討論

有沒(méi)有用c寫的啊 匯編很難的啊 看不懂啊
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教80C196KC的T2溢出中斷!!!
請(qǐng)幫忙推薦一個(gè)雙通道串行10位模數(shù)轉(zhuǎn)換器
想找合適的攝像頭用于圖像采集,這里的大蝦推薦一下!
單片機(jī)的仿真有幾種?哪種最好用?
有多少是1T,2T,3T...
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)