<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          單片機音樂程序

          作者: 時間:2013-03-08 來源:網(wǎng)絡(luò) 收藏

          利用(或單板機)奏樂大概是無線電愛好者感興趣的問題之一。本文從的基本發(fā)間實驗出發(fā),談?wù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/音樂程序">音樂程序的設(shè)計原理,并給出具體實例,以供參考。下面提供2個列子,大家根據(jù) 需要自行選擇

          最小系統(tǒng),兩位LED數(shù)碼管由串口輸出接兩個164驅(qū)動,Lout,Rout為左右聲道輸出,
          SET, ALT0, ALT1為三個按鍵,也可自己在開始的I/O定義改成你想用的I/O口;12M晶振
          若用89C51則只可裝下約14首歌曲,用則可裝下近40曲

          源程序
          ; Electronic Music
          ; Version 4.50
          ; Copyright (c) XAJ 2001
          ;============================
          LOUT BIT P1.0 ;左聲道輸出
          ROUT BIT P1.2 ;右聲道輸出
          SET BIT P3.3 ;SET按鍵
          ALT0 BIT P3.6 ;ALT0按鍵
          ALT1 BIT P3.7 ;ALT1按鍵

          ;REPNUM EQU 09H重復(fù)段編號
          STATU EQU 0AH;狀態(tài)寄存器
          LDYDSR EQU 0BH;左低音度數(shù)
          RDYDSR EQU 0CH;右低音度數(shù)
          LDYAR EQU 0DH;左低音協(xié)助
          RDYAR EQU 0EH;右低音協(xié)助
          JPCLK EQU 0FH;節(jié)拍時鐘
          GENCLK EQU 10H;通用時鐘
          SNSDCLK EQU 11H;搜、存顯示時鐘
          GEN16T0 EQU 12H;通用16位時鐘
          GEN16T1 EQU 13H;
          SETST0 EQU 14H;設(shè)置狀態(tài)
          SETST1 EQU 15H; 定時時鐘
          DISNUM0 EQU 16H;顯示數(shù)值
          DISNUM1 EQU 17H;寄存器(2位)
          CSN EQU 18H;當(dāng)前曲曲號
          REP0L EQU 19H;0號重復(fù)段地址
          REP0H EQU 1AH;
          REP1L EQU 1BH;1號重復(fù)段地址
          REP1H EQU 1CH;
          REP2L EQU 1DH;2號重復(fù)段地址
          REP2H EQU 1EH
          REP3L EQU 1FH;3號重復(fù)段地址
          REP3H EQU 23H;
          COSPEEDN EQU 24H;
          SPENR EQU 25H;

          LOCF BIT 00H;左聲道開關(guān)標(biāo)志
          ROCF BIT 01H;右聲道開關(guān)標(biāo)志
          SECHSTOF BIT 02H;搜索、存儲標(biāo)志
          NEXTSF BIT 03H;下一曲標(biāo)志
          CSBESTOF BIT 04H;當(dāng)前曲鎖存/釋放
          CUYFD BIT 05H;當(dāng)前音符顯示
          KSETF BIT 06H;SET鍵按下標(biāo)志
          KALT0F BIT 07H;ALT0鍵按下標(biāo)志
          KALT1F BIT 08H;ALT1鍵按下標(biāo)志
          SPEEDF BIT 09H;速度增/減標(biāo)志
          TONEF BIT 0AH;音調(diào)增/減標(biāo)志
          YPBIT BIT 0BH;音頻邏輯輸出
          KBDISF BIT 0CH;鍵盤顯示標(biāo)志
          REP0F BIT 0DH;0號重復(fù)段控制
          REP1F BIT 0EH;1號重復(fù)段控制
          REP2F BIT 0FH;2號重復(fù)段控制
          REP3F BIT 10H;3號重復(fù)段控制

          SBOTM EQU 25H;堆棧區(qū)(棧底)
          BUFF0 EQU 43H;鎖存曲數(shù)
          BUFF EQU 44H;鎖存曲緩沖區(qū)
          ;============================

          ;=========BEGIN==============
          ORG 0000H
          LJMP MAIN
          ;---------T0INT--------------
          ORG 000BH
          LJMP T0INT

          ;---------T1INT--------------
          ORG 001BH
          LJMP T1INT
          ;1.音頻發(fā)生器
          ;---------YPFSQ(01)----------
          ORG 0030H
          T0INT: MOV TL0,R4
          MOV TH0,R5
          PUSH PSW
          PUSH ACC
          PUSH 01H
          JB LOCF,ROPER
          MOV R1,#00H
          MOV A,LDYAR
          T0LLOP: RRC A
          MOV YPBIT,C
          XCH A,R1
          CJNE A,LDYDSR,T0LNEXT
          MOV C,YPBIT
          MOV LOUT,C
          INC LDYAR
          ; INC P0
          SJMP ROPER
          T0LNEXT: XCH A,R1
          INC R1
          SJMP T0LLOP
          ROPER: JB ROCF,T0RETI
          MOV R1,#00H
          MOV A,RDYAR
          T0RLOP: RRC A
          MOV YPBIT,C
          XCH A,R1
          CJNE A,RDYDSR,T0RNEXT
          MOV C,YPBIT
          MOV ROUT,C
          INC RDYAR
          ; INC P2
          SJMP T0RETI
          T0RNEXT: XCH A,R1
          INC R1
          SJMP T0RLOP
          T0RETI: POP 01H
          POP ACC
          POP PSW
          RETI
          ;2.通用時鐘


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 單片機 音樂程序 89C52

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();