《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于AT89S52的樂曲編輯發(fā)生器的設(shè)計(jì)
基于AT89S52的樂曲編輯發(fā)生器的設(shè)計(jì)
摘要: 本文給出了以單片機(jī)AT89S52為核心構(gòu)成的任意樂曲編輯發(fā)生器,具有硬件電路簡(jiǎn)單、操作界面友好、使用方便的特點(diǎn)。該系統(tǒng)已投入運(yùn)行,播放出來(lái)的樂曲效果良好,音調(diào)和節(jié)拍都由單片機(jī)控制得相當(dāng)準(zhǔn)確。
Abstract:
Key words :

  1 引言

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

  2 系統(tǒng)硬件設(shè)計(jì)

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

系統(tǒng)硬件電路原理圖

  為了設(shè)計(jì)編輯任意樂曲的人機(jī)界面,采用4×4矩陣鍵盤作為系統(tǒng)的輸入設(shè)備,采用點(diǎn)陣式液晶顯示模塊TC1602A作為系統(tǒng)的輸出設(shè)備。為了存儲(chǔ)和讀出任意樂曲,采用帶I2C串行接口的E2PROM

 

存儲(chǔ)器AT24C02。為了放大單片機(jī)AT89S52產(chǎn)生的樂曲聲音,采用了功率放大器LM386。系統(tǒng)硬件電路原理圖如圖1所示。

 

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

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

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

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

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

音頻矩形脈沖信號(hào)頻率Fr的關(guān)系

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

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

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

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

  3.3 樂曲編輯的軟件實(shí)現(xiàn)方法

  在系統(tǒng)軟件設(shè)計(jì)時(shí),已將按鍵處理作為一個(gè)任務(wù)即“按鍵處理任務(wù)”,它的主要功能是編輯樂曲。“按鍵處理任務(wù)”的執(zhí)行需要“鍵盤掃描任務(wù)”向它發(fā)送信號(hào)來(lái)觸發(fā)執(zhí)行。“按鍵處理任務(wù)”的C51源程序如下。
源程序
源程序
源程序

  3.4 樂曲播放的軟件實(shí)現(xiàn)方法

  在設(shè)計(jì)“播放任務(wù)”程序時(shí),利用AT89S52內(nèi)部的定時(shí)器T1定時(shí)溢出中斷來(lái)產(chǎn)生音調(diào)的頻率,并利用RTX51操作系統(tǒng)的os_wait2(K_TMO,ticks)函數(shù)來(lái)產(chǎn)生音長(zhǎng)。“播放任務(wù)”的C51源程序如下:
源程序
源程序

  3.5 系統(tǒng)軟件流程

  根據(jù)對(duì)系統(tǒng)功能的分析,把系統(tǒng)軟件分解為5個(gè)任務(wù),具體如下:

  任務(wù)0:系統(tǒng)初始化任務(wù),包括TC1602A的初始化、定時(shí)器T1的初始化、中斷初始化。在啟動(dòng)任務(wù)1~任務(wù)4后,自動(dòng)刪除任務(wù)0,使得任務(wù)0只在系統(tǒng)上電復(fù)位時(shí)執(zhí)行一次。

  任務(wù)1:鍵盤掃描任務(wù)。每隔50 ms執(zhí)行1次,掃描所得的鍵值存于全局變量keycode,然后向“按鍵處理任務(wù)”發(fā)信號(hào)。

  任務(wù)2:按鍵處理任務(wù)。等待信號(hào),根據(jù)鍵值keycode完成相應(yīng)處理,實(shí)現(xiàn)的功能包括樂曲的編輯、樂曲的保存和讀取等。

  任務(wù)3:播放任務(wù)。等待信號(hào),按照音調(diào)和音長(zhǎng)播放樂曲。

  任務(wù)4:顯示刷新任務(wù)。根據(jù)光標(biāo)指針變量的值在液晶屏上顯示樂曲數(shù)據(jù)(音調(diào)和音長(zhǎng))。

  系統(tǒng)軟件流程圖如圖2所示。

系統(tǒng)軟件流程圖

  4 結(jié)束語(yǔ)

  本文給出了以單片機(jī)AT89S52為核心構(gòu)成的任意樂曲編輯發(fā)生器,具有硬件電路簡(jiǎn)單、操作界面友好、使用方便的特點(diǎn)。該系統(tǒng)已投入運(yùn)行,播放出來(lái)的樂曲效果良好,音調(diào)和節(jié)拍都由單片機(jī)控制得相當(dāng)準(zhǔn)確。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 成人免费无码大片a毛片软件 | 日本一品道门免费高清视频| 亚洲国产一区视频| 爱搞网在线观看| 军人野外吮她的花蒂无码视频| 久久久xxxx| 国产精品美脚玉足脚交欧美| 99热精品久久只有精品| 少妇大胆瓣开下部自慰| 中文字幕人成人乱码亚洲电影| 果冻传媒mv在线观看入口免费 | 3d动漫精品啪啪一区二区免费| 性欧美视频在线观看| 久久综合综合久久综合| 欧美性极品hd高清视频| 免费看片在线观看| 综合欧美日韩一区二区三区| 国产一区二区三区在线电影| 西西午夜无码大胆啪啪国模| 国产女人18毛片水真多1| 6080午夜乱理伦片| 在线a免费观看| 99国产小视频| 大地资源在线资源官网| 中文字幕一区二区三区乱码| 日本www在线| 久久久久亚洲精品天堂| 树林里狠狠地撞击着h| 亚洲区小说区激情区图片区| 狠狠综合亚洲综合亚洲色| 免费观看国产精品| 精品久久久久成人码免费动漫| 国产亚洲av手机在线观看| 高潮毛片无遮挡高清免费| 国产女人水多毛片18| 黄网站色成年片大免费高清| 国产成人久久精品亚洲小说 | 免费一级国产大片| 男女边摸边揉边做视频| 国产AV一区二区三区最新精品| 国产精品久久自在自线观看|