<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

      電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
      搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

      單片機(jī)演奏音樂實(shí)驗(yàn)

      作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時間:2008-11-9
          利用單片機(jī)演奏音樂大概是單片機(jī)愛好者感興趣的問題之一。這里我們用網(wǎng)站提供的實(shí)驗(yàn)板來做這個實(shí)驗(yàn),并且了解單片機(jī)演奏音樂的基本原理,和相關(guān)的源程序。

          首先來完成必要的硬件部分,硬件部分比較簡單,如下圖:

          


          AT89C51單片機(jī)的P2.5口控制一個8550的三極管,三極管控制電磁蜂鳴器的電源通斷。

         我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。

          例如,要產(chǎn)生200HZ的音頻信號,200HZ音頻的變化周期為1/200秒,即5ms。這樣,當(dāng)P2.5的高電平或低電平的持續(xù)時間為2.5ms時就能發(fā)出200HZ的音調(diào)。

          樂曲中,每一音符對應(yīng)著確定的頻率,我們將每一音符的時間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。

          此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。

          為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不同的音符。

      程序框圖如圖2所示。



          下面給出程序序請單,可直接在51實(shí)驗(yàn)板上進(jìn)行演奏。本程序演奏的是民歌“八月桂花遍地開”,C調(diào),節(jié)奏為94拍/分。網(wǎng)友也可以自行找出一首歌,將樂曲翻譯成碼表輸入機(jī)器,而程序不變。本實(shí)驗(yàn)方法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機(jī)器的演奏學(xué)唱一首歌曲,其趣味無窮。

      ;標(biāo)題 '八月桂花香'發(fā)聲程序

      ORG 0000H
      LJMP START
      ORG 000BH
      INC 20H ;中斷服務(wù),中斷計數(shù)器加1
      MOV TH0,#0D8H
      MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷
      RETI
      START:
      MOV SP,#50H
      MOV TH0,#0D8H
      MOV TL0,#0EFH
      MOV TMOD,#01H
      MOV IE,#82H
      MUSIC0:
      NOP
      MOV DPTR,#DAT ;表頭地址送DPTR
      MOV 20H,#00H ;中斷計數(shù)器清0
      MUSIC1:
      NOP
      CLR A ;A清零
      MOVC A,@A+DPTR ;查表取代碼
      JZ END0 ;是00H,則結(jié)束
      CJNE A,#0FFH,MUSIC5 ;如果是休止符,往下執(zhí)行
      LJMP MUSIC3
      MUSIC5:
      NOP
      MOV R6,A ;R6=18H音符的頻率
      INC DPTR DPTR加一
      MOV A,#0
      MOVC A,@A+DPTR ;取節(jié)拍代碼送R7
      MOV R7,A ;R7=30H音符發(fā)音的時間
      SETB TR0 ;啟動計數(shù)
      MUSIC2:
      NOP
      CPL P2.5 ;P2.5是音樂輸出引腳
      MOV A,R6
      MOV R3,A ;R3=R6=18H
      LCALL DEL
      MOV A,R7
      CJNE A,20H,MUSIC2 ;中斷計數(shù)器(20H)=R7否?
      ;不等,則繼續(xù)循環(huán)
      MOV 20H,#00H ;等于,則取下一代碼
      INC DPTR
      LJMP MUSIC1
      MUSIC3:
      NOP ;休止100毫秒
      CLR TR0
      MOV R2,#0DH ;R2=13
      MUSIC4:
      NOP
      MOV R3,#0FFH ;R3=255
      LCALL DEL
      DJNZ R2,MUSIC4
      INC DPTR
      LJMP MUSIC1
      END0:
      NOP
      MOV R2,#0FFH ;歌曲結(jié)束,延時1秒后繼續(xù)
      MUSIC6:
      MOV R3,#00H
      LCALL DEL
      DJNZ R2,MUSIC6
      LJMP MUSIC0
      DEL:
      NOP
      DEL3:
      MOV R4,#02H
      DEL4:
      NOP
      DJNZ R4,DEL4
      NOP
      DJNZ R3,DEL3
      RET
      NOP
      DAT:
      DB 18H, 30H, 1CH, 10H
      DB 20H, 40H, 1CH, 10H
      DB 18H, 10H, 20H, 10H
      DB 1CH, 10H, 18H, 40H
      DB 1CH, 20H, 20H, 20H
      DB 1CH, 20H, 18H, 20H
      DB 20H, 80H, 0FFH, 20H
      DB 30H, 1CH, 10H , 18H
      DB 20H, 15H, 20H , 1CH
      DB 20H, 20H, 20H , 26H
      DB 40H, 20H , 20H , 2BH
      DB 20H, 26H, 20H , 20H
      DB 20H, 30H , 80H , 0FFH
      DB 20H, 20H, 1CH , 10H
      DB 18H, 10H, 20H , 20H
      DB 26H, 20H , 2BH , 20H
      DB 30H, 20H , 2BH , 40H
      DB 20H, 20H , 1CH , 10H
      DB 18H, 10H, 20H, 20H
      DB 26H, 20H , 2BH, 20H
      DB 30H, 20H, 2BH , 40H
      DB 20H, 30H, 1CH , 10H
      DB 18H, 20H , 15H , 20H
      DB 1CH, 20H , 20H , 20H
      DB 26H, 40H, 20H , 20H
      DB 2BH, 20H, 26H , 20H
      DB 20H, 20H, 30H , 80H
      DB 20H, 30H, 1CH , 10H
      DB 20H, 10H, 1CH , 10H
      DB 20H, 20H, 26H , 20H
      DB 2BH, 20H, 30H , 20H
      DB 2BH, 40H, 20H , 15H
      DB 1FH, 05H, 20H , 10H
      DB 1CH, 10H, 20H , 20H
      DB 26H, 20H, 2BH , 20H
      DB 30H, 20H, 2BH , 40H
      DB 20H, 30H, 1CH , 10H
      DB 18H, 20H , 15H , 20H
      DB 1CH, 20H , 20H , 20H
      DB 26H, 40H, 20H , 20H
      DB 2BH, 20H, 26H , 20H
      DB 20H, 20H, 30H, 30H
      DB 20H, 30H, 1CH, 10H
      DB 18H, 40H, 1CH, 20H
      DB 20H, 20H, 26H, 40H
      DB 13H, 60H, 18H , 20H
      DB 15H, 40H, 13H , 40H
      DB 18H, 80H, 00H
      end

      這是上面程序匯編以后獲得的編程器燒寫文件
      Tags:單片機(jī)演奏,單片機(jī)發(fā)聲,機(jī)器音樂,原理圖,程序  
      責(zé)任編輯:admin
      相關(guān)文章列表
      沒有相關(guān)文章
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網(wǎng)友評論
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 亚洲综合色在线观看亚洲| 99久久综合精品免费| 狠狠色丁香久久婷婷综合_中| 亚洲五月综合网色九月色| 伊人情人综合成人久久网小说| 亚洲国产成人九九综合| 国产成人综合亚洲| 狠狠色婷婷七月色综合| 五月婷婷综合免费| 久久93精品国产91久久综合| 亚洲国产综合人成综合网站00| 婷婷综合久久狠狠色99H| 一本久久a久久精品vr综合| 天天综合网色中文字幕| 久久本道综合久久伊人| 五月婷婷激情综合| 人人狠狠综合久久亚洲88| 国产成人综合久久精品免费| 狠狠色丁香久久婷婷综合蜜芽五月| 久久99亚洲综合精品首页| 狠狠色丁香九九婷婷综合五月| 国产成人综合久久综合| 亚洲综合自拍成人| 伊人久久综合影院| 久久影视综合亚洲| 亚洲精品第一国产综合精品99| 亚洲综合精品成人| 综合在线免费视频| 亚洲av成人综合网| 亚洲国产综合在线| 99久久综合国产精品免费| 麻豆狠色伊人亚洲综合网站| 激情综合亚洲色婷婷五月APP| 久久综合亚洲色一区二区三区| 亚洲国产天堂久久综合网站| 亚洲AV综合色区无码一区爱AV| 久久婷婷五夜综合色频| 亚洲综合丁香婷婷六月香| AV色综合久久天堂AV色综合在| 亚洲AV综合永久无码精品天堂 | 亚洲av日韩av综合|