版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MIDI信號(hào)的解碼及實(shí)時(shí)音符顯示
摘要:介紹了MIDI數(shù)據(jù)的格式,討論了一種使用AT89C51系列單片機(jī)完成MIDI信號(hào)的實(shí)時(shí)解碼,從中提高音符數(shù)據(jù),并隨時(shí)利用專用LED驅(qū)動(dòng)芯片將音符顯示出來(lái)的設(shè)計(jì)方案。該方案經(jīng)實(shí)際產(chǎn)品應(yīng)用,證明合理可靠。
關(guān)鍵詞:MIDI串行接口LED顯示
MIDI是音樂(lè)設(shè)備數(shù)字接口的簡(jiǎn)答,是各種電子音樂(lè)設(shè)備之間數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)接口,廣泛應(yīng)用于各種電子樂(lè)器上,目前較高檔的電子琴子均帶有MIDI接口。筆者在開(kāi)發(fā)用于音樂(lè)教學(xué)的產(chǎn)品“音樂(lè)電教板”的過(guò)程中,遇到了有關(guān)MIDI信號(hào)解碼的問(wèn)題,產(chǎn)品要求能夠接受電子琴傳送來(lái)的MIDI信號(hào),并將相應(yīng)的音符顯示出來(lái)。經(jīng)過(guò)對(duì)MIDI協(xié)議的研究,用AT89C51單片機(jī)和128段LED顯示控制芯片BC7281構(gòu)成的系統(tǒng)完成了設(shè)計(jì)要求。
1MIDI信號(hào)簡(jiǎn)介及與單片機(jī)的接口
MIDI信號(hào)的傳輸采用異步串行方式,其速率為,數(shù)據(jù)格式為8個(gè)數(shù)據(jù)位、1個(gè)起始位和1個(gè)停止位。因此,完全可以采用MCS51單片機(jī)內(nèi)部的硬件UART串口完成MIDI信號(hào)的接收和發(fā)送,在硬件方面只需采取適當(dāng)?shù)碾娐愤M(jìn)行電平轉(zhuǎn)換即可。
MIDI接口采用標(biāo)準(zhǔn)的5芯DIN連接器,如圖1。傳送電纜使用屏蔽層的雙絞線電纜,因?yàn)樾盘?hào)的傳輸利用的是電流信號(hào)而不是電壓信號(hào),所以其抗干擾能力比較強(qiáng),盡管其速率高達(dá),傳輸距離仍可以達(dá)到15m,比常見(jiàn)的RS-232接口的傳送距離要遠(yuǎn)。一般的MIDI接收電路如圖2,本文采用與之相同的電路。
其中RX接單片機(jī)的串口RX端,電路中的光耦既起到隔離的作用,又有電平轉(zhuǎn)換的作用,因?yàn)樗俾瘦^高,必須選用開(kāi)關(guān)速度較高的型號(hào),這里使用的是6N136。D1是保護(hù)二極管。
MIDI中共有16個(gè)通道,一般稱之為通道1至通道16,每個(gè)通道相當(dāng)于樂(lè)曲中的個(gè)聲部,使用者可以為每個(gè)通道指定一種音色。音色可以是MIDI規(guī)范中規(guī)定的128種音色中的任何一種,每一個(gè)通道只能有一種音色。也就是說(shuō),在一個(gè)標(biāo)準(zhǔn)的MIDI系統(tǒng)中,最多相當(dāng)于可以有16種樂(lè)器同時(shí)演奏。
按照MIDI協(xié)議的規(guī)定,傳送的數(shù)據(jù)可以分為兩類:狀態(tài)字節(jié)和數(shù)據(jù)字節(jié)。所謂狀態(tài)字節(jié)實(shí)際就是命令字,表明其后所跟數(shù)據(jù)的種類,狀態(tài)字節(jié)總是大于等于80H,而數(shù)據(jù)字節(jié)總是小于80H,因此,可以很容易地區(qū)分狀態(tài)字節(jié)和數(shù)據(jù)字節(jié)。在狀態(tài)字節(jié)中,用數(shù)據(jù)的低4位表示通道號(hào),高4位表示不同的命令。比如,設(shè)定音色為ChH指令,其中n是通道號(hào)。
在各種MIDI的指令中,與本機(jī)有關(guān)的只有兩種:8nH和9nH,兩種指令的基本格式一樣,一般由3個(gè)字節(jié)組成,格式是
8n(9n)aabb
其中,aa是音符數(shù)據(jù),表明所演奏的音符,其范圍為0~7fH,這樣共有128個(gè)音符,足以覆蓋整個(gè)音域;bb是速度數(shù)據(jù),表明擊鍵的速度,又稱力度數(shù)據(jù),其范圍也是0~7fH。
第一個(gè)字節(jié)是狀態(tài)字節(jié),其具體含義說(shuō)明
8nH——“音符關(guān)”指令,在多數(shù)MIDM設(shè)備中,該指令中的速度數(shù)據(jù)bb被忽略。
9nH——“音符開(kāi)”指令,如果速度數(shù)據(jù)等于0,則等同于8nH指令。在本機(jī)中,因?yàn)橹恍枰@示音符的開(kāi)關(guān),而不必考慮其聲音的大小,故速度數(shù)據(jù)被忽略。
MIDI中有一個(gè)特殊的通道即通道10,通道10是節(jié)奏樂(lè)器的專用通道,與其它通道不同,其它通道中不同的音符表示不同的音高,而在通道1中,不同音符表示不同的節(jié)奏樂(lè)器,因?yàn)楣?jié)奏樂(lè)器是沒(méi)有音高的,一般如各種鼓等,在本機(jī)中,所要顯示的是各種旋律的音符,因此,通道10的數(shù)據(jù)要過(guò)濾掉。
2顯示電路
音符的顯示,通過(guò)一個(gè)鋼琴鍵盤的面板,在鍵盤的每個(gè)鍵上,都有一個(gè)LED指示燈,用LED的亮和滅代表音符的開(kāi)和關(guān)。一個(gè)完整的鋼琴鍵盤,83個(gè)鍵,再加上系統(tǒng)中用于指示工作狀態(tài)的指示燈等,本機(jī)需要顯示LED達(dá)100多個(gè)。因此,選用了16位數(shù)碼管及64鍵鍵盤接口芯片BC7281,該芯片可以驅(qū)動(dòng)128個(gè)獨(dú)立的LED,同時(shí)還可以提供鍵盤管理,筆者設(shè)計(jì)的系統(tǒng)中16個(gè)按鍵,完全可以滿足要求。而其本身僅為18腳DIP封裝,體積小巧。
該芯片與MCU之間采用串行通信,只需要3根引線,為簡(jiǎn)單起見(jiàn),這里只給出本系統(tǒng)中鍵盤、顯示部分的電路框圖如圖3。
BC7281中有16位顯示寄存器,其每一數(shù)據(jù)位都對(duì)應(yīng)著顯示矩陣中的一個(gè)LED,每個(gè)數(shù)據(jù)位都有一個(gè)位地址,用以做尋址,樣每一個(gè)LED的開(kāi)關(guān)都可以單獨(dú)控制,其地址范圍是07FH。將地址0~52H的LED作為音符顯示用,69H~7FH的地址作為系統(tǒng)狀態(tài)指示用,共余LED顯示不用。
3程序設(shè)計(jì)
因?yàn)镸IDI數(shù)據(jù)的傳送速率較高,因此,決定采用中斷的方式來(lái)處理MIDI數(shù)據(jù)。對(duì)于顯示部分,則在數(shù)據(jù)區(qū)中設(shè)立一個(gè)特定的緩沖區(qū),處理MIDI數(shù)據(jù)的中斷程序只負(fù)責(zé)對(duì)緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行更新,而不直接完成對(duì)顯示芯片的操作,這樣可以提高中斷處理速度。顯示的刷新,則放在程序的主循環(huán)中來(lái)完成。
用于處理MIDI數(shù)據(jù)的串口中斷程序,必須完成以下工作
根據(jù)狀態(tài)字節(jié),過(guò)濾掉不必要的數(shù)據(jù);
根據(jù)保留下的“音符開(kāi)”和“音符關(guān)”數(shù)據(jù),更新顯示數(shù)據(jù)緩沖區(qū)。
因?yàn)樵O(shè)計(jì)要求所有旋律通道的音符都要顯示出來(lái),也就是說(shuō),除第10通道外,每個(gè)通道的音符都要顯示出來(lái)。這樣就存在著音符重疊的問(wèn)題,比如第一通道中的C音和第二通道中的C音同時(shí)演奏,這時(shí)如果單片機(jī)收到一個(gè)“音符關(guān)”指令,則必須判斷其它通道中有沒(méi)有相同的音符處在“開(kāi)”的狀態(tài),如果有,則相應(yīng)的音符指示燈就不能關(guān)閉。為了到達(dá)這個(gè)目的,將音符顯示的緩沖區(qū)設(shè)置為一個(gè)128單元的數(shù)組,數(shù)組單元和MIDI的128個(gè)音符一一對(duì)應(yīng),但是為了簡(jiǎn)化程序及日后升級(jí)的方便,仍將數(shù)組設(shè)為128單元,只在主程序中顯示刷新的部分才將多余的數(shù)據(jù)忽略),每當(dāng)收到一個(gè)“音符開(kāi)”指令時(shí),相應(yīng)的數(shù)組單元就加一,而收到“音符關(guān)”指令時(shí),則減一,在顯示時(shí),只要數(shù)組單元不等于零,對(duì)應(yīng)的音符指示LED就點(diǎn)亮,而只
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年私人房產(chǎn)買賣合同環(huán)保要求與執(zhí)行標(biāo)準(zhǔn)3篇
- 2025年度路演展示廳清潔維護(hù)服務(wù)租賃合同4篇
- 二零二五版水利工程開(kāi)工合同范例2篇
- 2025年度多功能培訓(xùn)學(xué)校教室租賃合同范本3篇
- 2025年度廚師行業(yè)人才引進(jìn)與培養(yǎng)服務(wù)協(xié)議3篇
- 2025年度文化藝術(shù)品樣品展覽與上樣合作協(xié)議3篇
- 2024綜藝節(jié)目拍攝基地租賃合同
- 2025年物業(yè)保潔外包服務(wù)合同(含節(jié)能環(huán)保服務(wù))3篇
- 2025年度智能電網(wǎng)建設(shè)采購(gòu)戰(zhàn)略合作協(xié)議合同范本3篇
- 2025年消防給排水系統(tǒng)節(jié)能改造與優(yōu)化合同3篇
- 企業(yè)年會(huì)攝影服務(wù)合同
- 電商運(yùn)營(yíng)管理制度
- 二零二五年度一手房購(gòu)房協(xié)議書(shū)(共有產(chǎn)權(quán)房購(gòu)房協(xié)議)3篇
- 2025年上半年上半年重慶三峽融資擔(dān)保集團(tuán)股份限公司招聘6人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 城市公共交通運(yùn)營(yíng)協(xié)議
- 內(nèi)燃副司機(jī)晉升司機(jī)理論知識(shí)考試題及答案
- 2024北京東城初二(上)期末語(yǔ)文試卷及答案
- 2024設(shè)計(jì)院與職工勞動(dòng)合同書(shū)樣本
- 2024年貴州公務(wù)員考試申論試題(B卷)
- 電工高級(jí)工練習(xí)題庫(kù)(附參考答案)
- 村里干零工協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論