新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 采用AT89S52的樂曲編輯發生器的設計

        采用AT89S52的樂曲編輯發生器的設計

        作者: 時間:2012-06-07 來源:網絡 收藏

        1引言

        基于RTX51的單片機為控制核心,操作者可以通過4×4矩陣鍵盤輸入約定格式的任意樂曲,按“播放”鍵后,系統便開始播放所編輯的樂曲,并且音調和節拍都可以由單片機精確控制。為了降低成本,在最小硬件設計的基礎上,系統的功能盡可能用軟件來實現,系統軟件是在面向MCS-51系列單片機的嵌入式實時多任務操作系統RTX51Tiny平臺上,用C51高級語言和MCS-51匯編語言混合編程而開發的。

        2 系統硬件設計

        為了今后能夠在線升級用戶應用程序,采用帶ISP接口的單片機為核心構成具有快速8051內核、8 KB FlashE2PROM、256 B IDATA RAM,完全符合運行RTX51Tiny的硬件要求。筆者已研制了AT89S51/52的目標程序PC機下載軟件,無需編程器即可完成單片機應用系統的開發。

        為了設計編輯任意樂曲的人機界面,采用4×4矩陣鍵盤作為系統的輸入設備,采用點陣式液晶顯示模塊TC1602A作為系統的輸出設備。為了存儲和讀出任意樂曲,采用帶I2C串行接口的E2PROM存儲器AT24C02。為了放大單片機AT89S52產生的樂曲聲音,采用了功率放大器LM386。系統硬件電路原理圖如圖1所示。


        3 和播放的軟件實現

        3.1 單片機產生音頻矩形脈沖的方法

        利用單片機的內部定時器T1并使其工作在定時器工作方式1(16 bit定時),改變T1的計數初值,就可以在單片機的I/O引腳端產生不同頻率的音頻矩形脈沖。

        例如,音頻矩形脈沖信號的頻率為523 Hz,則其周期T=1/523=1912μs,因此,只要讓計數器定時1912μs÷2=956μs,當定時956μs到的時候,將AT89S52的樂曲輸出引腳P3.7反相,就可得到中音DO(523 Hz)。

        單片機定時器計數初值T與單片機內部機器周期信號頻率Fi和音頻矩形脈沖信號頻率Fr的關系如下。

        為了敘述方便,不妨把定時器計數初值T稱為簡譜碼。

        3.2 樂曲的音調表示方法

        單片機播放樂曲的過程,主要是用單片機來識別所編輯的樂曲并播放出來。單片機需要識別樂曲中的音調和音長(音長亦稱為節拍),本設計用字母A~Z來代表樂曲的各個音調。數字0作為音調的結束標志,如表1所示。

        3.3 樂曲編輯的軟件實現方法

        在系統軟件設計時,已將按鍵處理作為一個任務即“按鍵處理任務”,它的主要功能是編輯樂曲。“按鍵處理任務”的執行需要“鍵盤掃描任務”向它發送信號來觸發執行。“按鍵處理任務”的C51源程序如下。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鞍山市| 屏东县| 中西区| 余庆县| 孟津县| 肃南| 阿坝县| 长治县| 盱眙县| 资阳市| 黔西县| 平凉市| 鄂伦春自治旗| 武功县| 石屏县| 临夏市| 泾阳县| 汉川市| 松滋市| 东台市| 桓仁| 雷山县| 四会市| 芦溪县| 双鸭山市| 甘孜县| 白城市| 卢龙县| 安阳县| 克拉玛依市| 马山县| 永年县| 淳安县| 赫章县| 曲阳县| 海城市| 抚松县| 镇赉县| 磴口县| 准格尔旗| 晋城|