新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 以單片機AT89S52為核心的樂曲編輯發(fā)生器的設(shè)計

        以單片機AT89S52為核心的樂曲編輯發(fā)生器的設(shè)計

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

        1引言

        本文引用地址:http://www.104case.com/article/171330.htm

        基于RTX51的為控制,操作者可以通過4×4矩陣鍵盤輸入約定格式的任意,按“播放”鍵后,系統(tǒng)便開始播放所,并且音調(diào)和節(jié)拍都可以由精確控制。為了降低成本,在最小硬件的基礎(chǔ)上,系統(tǒng)的功能盡可能用軟件來實現(xiàn),系統(tǒng)軟件是在面向MCS-51系列的嵌入式實時多任務(wù)操作系統(tǒng)RTX51Tiny平臺上,用C51高級語言和MCS-51匯編語言混合編程而開發(fā)的。

        2 系統(tǒng)硬件

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

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

        3 樂曲編輯和播放的軟件實現(xiàn)

        3.1 單片機產(chǎn)生音頻矩形脈沖的方法

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

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

        單片機定時器計數(shù)初值T與單片機內(nèi)部機器周期信號頻率Fi和音頻矩形脈沖信號頻率Fr的關(guān)系如下。

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

        3.2 樂曲的音調(diào)表示方法

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


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 巴彦淖尔市| 宁安市| 荔浦县| 上思县| 胶州市| 丰原市| 苗栗市| 海原县| 柘城县| 武隆县| 格尔木市| 二手房| 土默特左旗| 汝阳县| 日土县| 贺州市| 汶川县| 乐平市| 焦作市| 铁岭县| 鞍山市| 金塔县| 陇川县| 宁国市| 甘德县| 双峰县| 望都县| 梅州市| 宝坻区| 林甸县| 沐川县| 广平县| 仁化县| 聂拉木县| 牙克石市| 山丹县| 苏尼特左旗| 余江县| 婺源县| 淄博市| 上栗县|