激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

MIDI信號的解碼及實(shí)時(shí)音符顯示

時(shí)間:2024-06-25 21:16:51 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

MIDI信號的解碼及實(shí)時(shí)音符顯示

摘要:介紹了MIDI數據的格式,討論了一種使用AT89C51系列單片機完成MIDI信號的實(shí)時(shí)解碼,從中提高音符數據,并隨時(shí)利用專(zhuān)用LED驅動(dòng)芯片將音符顯示出來(lái)的設計方案。該方案經(jīng)實(shí)際產(chǎn)品應用,證明合理可靠。

MIDI是音樂(lè )設備數字接口的簡(jiǎn)答,是各種電子音樂(lè )設備之間數據傳輸的標準接口,廣泛應用于各種電子樂(lè )器上,目前較高檔的電子琴子均帶有MIDI接口。筆者在開(kāi)發(fā)用于音樂(lè )教學(xué)的產(chǎn)品“音樂(lè )電教板”的過(guò)程中,遇到了有關(guān)MIDI信號解碼的問(wèn)題,產(chǎn)品要求能夠接受電子琴傳送來(lái)的MIDI信號,并將相應的音符顯示出來(lái)。經(jīng)過(guò)對MIDI協(xié)議的研究,用AT89C51單片機和128段LED顯示控制芯片BC7281構成的系統完成了設計要求。

1 MIDI信號簡(jiǎn)介及與單片機的接口

MIDI信號的傳輸采用異步串行方式,其速率為31.5kbps,數據格式為8個(gè)數據位、1個(gè)起始位和1個(gè)停止位。因此,完全可以采用MCS51單片機內部的硬件UART串口完成MIDI信號的接收和發(fā)送(本設計中只用到其接收部分),在硬件方面只需采取適當的電路進(jìn)行電平轉換即可。

MIDI接口采用標準的5芯DIN連接器,如圖1。傳送電纜使用屏蔽層的雙絞線(xiàn)電纜,因為信號的傳輸利用的是電流信號而不是電壓信號,所以其抗干擾能力比較強,盡管其速率高達31.5kbps,傳輸距離仍可以達到15m,比常見(jiàn)的RS-232接口的傳送距離要遠。一般的MIDI接收電路如圖2,本文采用與之相同的電路。

其中RX接單片機的串口RX端,電路中的光耦既起到隔離的作用,又有電平轉換的作用,因為速率較高,必須選用開(kāi)關(guān)速度較高的型號,這里使用的是6N136。D1是保護二極管。

MIDI中共有16個(gè)通道(channel),一般稱(chēng)之為通道1至通道16,每個(gè)通道相當于樂(lè )曲中的個(gè)聲部,使用者可以為每個(gè)通道指定一種音色。音色可以是MIDI規范中規定的128種音色中的任何一種,每一個(gè)通道只能有一種音色。也就是說(shuō),在一個(gè)標準的MIDI系統中,最多相當于可以有16種樂(lè )器同時(shí)演奏。

按照MIDI協(xié)議的規定,傳送的數據可以分為兩類(lèi):狀態(tài)字節和數據字節。所謂狀態(tài)字節實(shí)際就是命令字,表明其后所跟數據的種類(lèi),狀態(tài)字節總是大于等于80H,而數據字節總是小于80H,因此,可以很容易地區分狀態(tài)字節和數據字節。在狀態(tài)字節中,用數據的低4位表示通道號,高4位表示不同的命令。比如,設定音色為ChH指令,其中n是通道號。

在各種MIDI的指令中,與本機有關(guān)的只有兩種:8nH和9nH(n為通道號),兩種指令的基本格式一樣,一般由3個(gè)字節組成,格式是:

8n(9n) aa bb

其中,aa是音符數據,表明所演奏的音符,其范圍為0~7fH,這樣共有128個(gè)音符,足以覆蓋整個(gè)音域;bb是速度數據,表明擊鍵的速度,又稱(chēng)力度數據,其范圍也是0~7fH。

第一個(gè)字節是狀態(tài)字節(指令),其具體含義說(shuō)明如下:

8nH——“音符關(guān)”指令,在多數MIDM設備中,該指令中的速度數據bb被忽略。

9nH——“音符開(kāi)”指令,如果速度數據等于0,則等同于8nH指令。在本機中,因為只需要顯示音符的開(kāi)關(guān),而不必考慮其聲音的大小,故速度數據被忽略(速度數據不等于0時(shí))。

MIDI中有一個(gè)特殊的通道即通道10,通道10是節奏樂(lè )器的專(zhuān)用通道,與其它通道不同,其它通道中不同的音符表示不同的音高,而在通道1中,不同音符表示不同的節奏樂(lè )器,因為節奏樂(lè )器是沒(méi)有音高的,一般如各種鼓等,在本機中,所要顯示的是各種旋律的音符,因此,通道10的數據要過(guò)濾掉。

2 顯示電路

音符的顯示,通過(guò)一個(gè)鋼琴鍵盤(pán)的面板,在鍵盤(pán)的每個(gè)鍵上,都有一個(gè)LED指示燈,用LED的亮和滅代表音符的開(kāi)和關(guān)。一個(gè)完整的鋼琴鍵盤(pán),83個(gè)鍵,再加上系統中用于指示工作狀態(tài)的指示燈等,本機需要顯示LED達100多個(gè)。因此,選用了16位數碼管(128位LED)及64鍵鍵盤(pán)接口芯片BC7281,該芯片可以驅動(dòng)128個(gè)獨立的LED,同時(shí)還可以提供鍵盤(pán)管理,筆者設計的系統中16個(gè)按鍵,完全可以滿(mǎn)足要求。而其本身僅為18腳DIP封裝,體積小巧。

該芯片與MCU之間采用串行通信,只需要3根引線(xiàn),為簡(jiǎn)單起見(jiàn),這里只給出本系統中鍵盤(pán)、顯示部分的電路框圖如圖3。

BC7281中有16位顯示寄存器,其每一數據位都對應著(zhù)顯示矩陣中的一個(gè)LED,每個(gè)數據位都有一個(gè)位地址,用以做尋址,樣每一個(gè)LED的開(kāi)關(guān)都可以單獨控制,其地址范圍是07FH。將地址0~52H的LED作為音符顯示用,69H~7FH的地址作為系統狀態(tài)指示用,共余LED顯示不用。

3 程序設計

因為MIDI數據的傳送速率較高,因此,決定采用中斷的方式來(lái)處理MIDI數據。對于顯示部分,則在數據區中設立一個(gè)特定的緩沖區,處理MIDI數據的中斷程序只負責對緩沖區內的數據進(jìn)行更新,而不直接完成對顯示芯片的操作,這樣可以提高中斷處理速度。顯示的刷新,則放在程序的主循環(huán)中來(lái)完成。

用于處理MIDI數據的串口中斷程序,必須完成以下工作:

(1)根據狀態(tài)字節,過(guò)濾掉不必要的數據;

(2)根據保留下的“音符開(kāi)”和“音符關(guān)”數據,更新顯示數據緩沖區。

【MIDI信號的解碼及實(shí)時(shí)音符顯示】相關(guān)文章:

連續實(shí)時(shí)信號處理器的性能分析03-19

電視信號的實(shí)時(shí)監測與數字化處理03-20

DSP和CPLD的空間瞬態(tài)光輻射信號實(shí)時(shí)探測研究12-07

基于凌陽(yáng)單片機的語(yǔ)音信號實(shí)時(shí)采集03-18

蒙特卡羅法在數字調頻信號解碼方面的應用03-07

一種改進(jìn)的基于頻譜平移的語(yǔ)音信號實(shí)時(shí)變調算法03-07

基于FPGA的雙功能多普勒超聲成像儀實(shí)時(shí)信號處理系統設計03-07

實(shí)時(shí)混音的實(shí)現03-18

VGA顯示與TV顯示的區別及轉換03-19

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频