《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > MIDI信號的解碼及實時音符顯示

MIDI信號的解碼及實時音符顯示

2008-10-24
作者:矯 健

  摘? 要: 介紹了MIDI數據的格式,討論了一種使用AT89C51系列單片機完成MIDI信號的實時解碼,從中提取音符數據,并隨時利用專用LED驅動芯片將音符顯示出來的設計方案。該方案經實際產品應用,證明合理可靠。?

  關鍵詞: MIDI? 串行接口? LED顯示?

?

  MIDI是音樂設備數字接口的簡稱,是各種電子音樂設備之間數據傳輸的標準接口,廣泛應用于各種電子樂器上,目前較高檔的電子琴上均帶有MIDI接口。筆者在開發用于音樂教學的產品“音樂電教板”的過程中,遇到了有關MIDI信號解碼的問題,產品要求能夠接受電子琴傳送來的MIDI信號,并將相應的音符顯示出來。經過對MIDI協議的研究,用AT89C51單片機和128段LED顯示控制芯片BC7281構成的系統完成了設計要求" title="設計要求">設計要求。?

1 MIDI信號簡介及與單片機的接口?

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

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

?

?

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

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

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

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

  8n(9n)? aa? bb?

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

  第一個字節是狀態字節(指令),其具體含義說明如下:?

  8nH——“音符關”指令,在多數MIDI設備中,該指令中的速度數據 bb 被忽略。?

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

  MIDI中有一個特殊的通道即通道10,通道10是節奏樂器的專用通道,與其它通道不同,其它通道中不同的音符表示不同的音高,而在通道10中,不同音符表示不同的節奏樂器,因為節奏樂器是沒有音高的,一般如各種鼓等。在本機中,所要顯示的是各種旋律的音符,因此,通道10的數據要過濾掉。?

2 顯示電路?

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

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

?

?

  BC7281中有16個顯示寄存器,其中每一數據位都對應著顯示矩陣中的一個LED,每個數據位都有一個位地址,用以做位尋址,這樣每一個LED的開關都可以單獨控制,其地址范圍是0~7FH。將地址0~52H的LED作為音符顯示用,69H~7FH的地址作為系統狀態指示用,其余LED顯示不用。?

3 程序設計?

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

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

  (1)根據狀態字節,過濾掉不必要的數據;?

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

  因為設計要求所有旋律通道的音符都要顯示出來,也就是說,除第10通道外,每個通道的音符都要顯示出來。這樣就存在著音符重疊的問題,比如第一通道中的C音和第二通道中的C音同時演奏,這時如果單片機收到一個“音符關”指令,則必須判斷其它通道中有沒有相同的音符處在“開”的狀態,如果有,則相應的音符指示燈就不能關閉。為了到達這個目的,將音符顯示的緩沖區設置為一個128單元的數組,數組單元和MIDI的128個音符一一對應(雖然只需要顯示其中的83個音符,但是為了簡化程序及日后升級的方便,仍將數組設為128單元,只在主程序中顯示刷新的部分才將多余的數據忽略),每當收到一個“音符開”指令時,相應的數組單元就加一,而收到“音符關”指令時,則減一,在顯示時,只要數組單元不等于零,對應的音符指示LED就點亮,而只有在數組單元等于零時,才將已經點亮的LED關閉,“音符關”指令不直接控制LED,這樣就很好地解決了音符重疊的問題。?

  AT89C51串口中斷處理程序流程圖如圖4。?

?

?

  目前該產品已經批量生產,并已成功進入市場銷售一年有余,實踐證明該設計方案是合理和可靠的。?

參考文獻?

1 Josha Munnik, Eric Oostendorp著, 敬萬鈞,袁宏春譯.聲霸原理與應用,北京:電子工業出版社, 1995?

2 ESS Technology Inc. ES1868 AudioDrive Data Sheet. 1996

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲字幕在线观看| 久久高清一区| 亚洲欧美色婷婷| 亚洲无限乱码一二三四麻| 欧美在线一区二区| 国产精品99久久久久久久女警| 国产精品久久久久久久浪潮网站| 国产综合自拍| 国产精品久久久久久模特| 欧美精品系列| 榴莲视频成人在线观看| 久久久久成人网| 亚洲电影欧美电影有声小说| 六十路精品视频| 男女av一区三区二区色多| 欧美日韩国产成人在线免费| 欧美jizzhd精品欧美巨大免费| 黄色精品一区二区| 欧美极品一区| 136国产福利精品导航| 亚洲欧洲精品一区二区精品久久久| 午夜免费日韩视频| 一区二区三区视频在线| 国产一区欧美| 国产亚洲精品久久久| 亚洲欧美三级伦理| 欧美电影在线| 欧美日韩福利| 一本一本久久a久久精品综合麻豆| 亚洲伊人一本大道中文字幕| 欧美中文在线免费| 国产一区91精品张津瑜| 亚洲高清网站| 夜夜躁日日躁狠狠久久88av| 香蕉久久夜色精品| 欧美1区免费| 久久婷婷蜜乳一本欲蜜臀| 国产精品一国产精品k频道56| 怡红院精品视频在线观看极品| 欧美亚洲第一区| 亚洲精品小视频在线观看| 午夜精品国产| 欧美精品日日鲁夜夜添| 国产精品露脸自拍| 欧美视频观看一区| 久久免费视频这里只有精品| 欧美亚洲动漫精品| 狠狠色伊人亚洲综合网站色| 欧美色图五月天| 伊人久久婷婷| 久久一区视频| 国产精品美女www爽爽爽视频| 国产一区二区三区久久| 欧美jizzhd精品欧美喷水| 在线一区视频| 一本久久综合亚洲鲁鲁| 国产欧美日韩三区| 夜夜嗨av一区二区三区网页| 亚洲人线精品午夜| 欧美日韩一区二区高清| 亚洲福利精品| 国产精品高潮呻吟久久av无限| 欧美日韩影院| 国产精品久久久久久久久婷婷| 亚洲国产va精品久久久不卡综合| 欧美日本精品在线| 国产一区二区日韩精品欧美精品| 免费一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 国产亚洲欧美中文| 午夜免费电影一区在线观看| 欧美精品亚洲精品| 一区二区日韩精品| 亚洲视频第一页| 国内伊人久久久久久网站视频| 久久精品亚洲一区| 亚洲国产日韩欧美| 国产一区视频在线观看免费| 欧美精品不卡| 国产精品第2页| 久久久国产精品亚洲一区| 国产综合久久久久久| 欧美一区二区在线免费播放| 99国产精品久久久久久久久久| 精东粉嫩av免费一区二区三区| 欧美日韩精品一区二区| 欧美一区二区| 国产伦精品一区二区三区视频黑人| 亚洲欧美网站| 狠狠噜噜久久| 欧美大胆人体视频| 欧美日韩国产高清| 国产精品一区二区久久国产| 欧美国产欧美亚州国产日韩mv天天看完整| 国产日韩一区二区三区| 久久天堂成人| 亚洲精品综合| 国产免费成人| 欧美日韩免费在线观看| **性色生活片久久毛片| 一区二区久久| 亚洲国产成人久久综合一区| 亚洲无毛电影| 国产日韩亚洲欧美精品| 国产一区二区三区奇米久涩| 亚洲精品欧洲| 久久精品日产第一区二区三区| 免费看亚洲片| 欧美午夜在线一二页| 麻豆精品一区二区av白丝在线| 91久久久一线二线三线品牌| 国产情侣一区| 亚洲国产天堂网精品网站| 国产女人水真多18毛片18精品视频| 午夜精品99久久免费| 久久九九精品| 欧美一区二区三区久久精品茉莉花| 久久国产欧美日韩精品| 一区二区三区四区五区精品| 亚洲国产日韩精品| 日韩视频免费观看高清在线视频| 久久av在线| 亚洲欧美激情视频在线观看一区二区三区| 亚洲欧美日韩在线一区| 久久九九免费| 久久久人人人| 久久婷婷久久一区二区三区| 国产婷婷一区二区| 欧美日韩专区| 国产精品盗摄一区二区三区| 亚洲免费观看在线视频| 亚洲欧美日韩综合国产aⅴ| 亚洲欧美日韩另类| 国产亚洲精品美女| 久久露脸国产精品| 国产精品一区久久久| 国产精品成人一区二区网站软件| 亚洲天堂免费在线观看视频| 艳妇臀荡乳欲伦亚洲一区| 久久综合九色综合欧美狠狠| 国产精品av免费在线观看| 亚洲一二三四区| 激情久久久久久久久久久久久久久久| 国产精品一二三| 国产日韩精品一区二区浪潮av| 一区二区亚洲精品| 欧美国产成人精品| 国产精品观看| 影音先锋中文字幕一区| 国产一区二区三区在线免费观看| 亚洲综合视频在线| 亚洲男同1069视频| 欧美肉体xxxx裸体137大胆| 亚洲男人第一网站| 国产欧美日韩综合一区在线观看| 久久婷婷丁香| 欧美日韩国产一区| 久久精品1区| 一本色道久久综合精品竹菊| 久久久精品性| 国产欧美精品在线播放| 欧美日韩在线不卡一区| 欧美色精品在线视频| 亚洲午夜精品| 一区二区三区在线不卡| 亚洲欧美经典视频| 国产亚洲欧美日韩日本| 欧美成人性网| 欧美一区二区在线| 欧美成人免费在线视频| 欧美日韩一区在线观看视频| 精品电影一区| 久久久久99| 在线看片欧美| 国产精品私人影院| 国产一区999| 韩国成人福利片在线播放| 欧美一区二区在线免费播放| 99国产成+人+综合+亚洲欧美| 国产精品国产a级| 国内一区二区三区在线视频| 欧美视频一区二区三区| 欧美国产精品一区| 在线播放国产一区中文字幕剧情欧美| 欧美在线观看视频一区二区| 欧美日韩成人综合在线一区二区| 国产午夜精品全部视频在线播放| 亚洲国产影院| 国产精品高潮呻吟久久| 亚洲专区一区| 免费不卡在线观看av| 亚洲国产精品激情在线观看| 老司机一区二区三区| 久久久av水蜜桃| 国产精品最新自拍| 欧美在线3区| 欧美成人性生活| 亚洲欧洲视频| 亚洲欧洲美洲综合色网| 国产一区二区三区精品欧美日韩一区二区三区| 国产美女搞久久| 卡通动漫国产精品| 海角社区69精品视频| av成人动漫| 久久久九九九九| 国产精品一香蕉国产线看观看| 欧美三级乱码| 国产亚洲一区二区三区| 欧美一区二区国产| 亚洲日韩欧美一区二区在线| 亚洲欧美日韩久久精品| 亚洲日本在线观看| 久久九九国产精品怡红院| 欧美14一18处毛片| 久久一二三四| 欧美日韩专区| 欧美激情第五页| 麻豆av一区二区三区久久| 亚洲午夜激情| 亚洲一区自拍| 性色av一区二区怡红| 国产亚洲精品久久久| 国产伦精品一区二区三区在线观看| 国产午夜精品久久久久久免费视| 久久精品国产99国产精品| 日韩小视频在线观看| 欧美理论电影网| 欧美成人午夜激情| 久久免费观看视频| 久久精品视频免费观看| 国产精品理论片在线观看| 欧美激情一区三区| 国模精品一区二区三区色天香| 国产精品男女猛烈高潮激情| 久久九九国产精品怡红院| 午夜精品久久久99热福利| 国精品一区二区| 午夜视频在线观看一区二区三区| 亚洲精品美女免费| 在线看日韩欧美| 在线播放亚洲| 亚洲肉体裸体xxxx137| 国产日韩欧美另类| 欧美国产亚洲另类动漫| 日韩视频在线你懂得| 亚洲午夜激情网页| 欧美性猛交xxxx乱大交退制版| 亚洲电影免费在线观看| 亚洲美女在线国产| 亚洲国产精品黑人久久久| 欧美日韩少妇| 欧美大片专区| 国产欧美日韩亚洲一区二区三区| 国产精品免费一区二区三区在线观看| aaa亚洲精品一二三区| 美玉足脚交一区二区三区图片| 欧美精品导航| 久久综合综合久久综合| 免费久久99精品国产自在现线| 亚洲欧洲日韩综合二区| 亚洲国产另类久久精品| 欧美精彩视频一区二区三区| 国产精品欧美激情| 亚洲一区在线看| 国产日韩专区在线| 亚洲国产精品一区二区www在线| 欧美精品色网| 久久久久九九视频| 国产精品超碰97尤物18| 99国产精品国产精品毛片| 亚洲欧美清纯在线制服| 久久久综合激的五月天| 亚洲国产精品欧美一二99| 欧美日韩精品在线播放| 久久综合色一综合色88| 欧美激情中文字幕一区二区| 久久激情视频免费观看| 欧美亚韩一区| 欧美丰满高潮xxxx喷水动漫| 欧美一区二区免费观在线| 亚洲一区中文字幕在线观看| 欧美国产日韩一区二区三区| 国产精品美女主播在线观看纯欲| 欧美岛国激情| 免费成人av在线看| 亚洲性视频网站| 欧美日韩ab片| 亚洲激精日韩激精欧美精品| 欧美精品v国产精品v日韩精品| 亚洲国产精品一区二区www| 欧美中文在线视频| 欧美在线国产| 性高湖久久久久久久久| 你懂的国产精品永久在线| 国产资源精品在线观看| 亚洲国产精品一区二区第四页av| 久久综合色综合88| 羞羞色国产精品| 国产午夜精品久久久久久久| 欧美一级理论片| 亚洲国产欧美久久| 男女激情视频一区| 国产专区精品视频| 欧美日韩中文| 国产精品扒开腿做爽爽爽软件| 久久久噜噜噜久久人人看| 午夜亚洲一区| 国产精品久久久久婷婷| 欧美亚洲视频一区二区| 欧美激情视频在线播放| 亚洲国产精品成人va在线观看| 久久中文字幕一区二区三区| 在线观看亚洲| 亚洲一区二区三区在线视频| 欧美日韩精品免费在线观看视频| 欧美另类69精品久久久久9999| 亚洲一区二区三区视频播放| 国产精品亚洲一区二区三区在线| 久久精品99国产精品日本| 久久精品电影| 一区二区电影免费观看| 欧美乱在线观看| 欧美人成在线| 久久久久久久久一区二区| 欧美视频第二页| 久久精品观看| 亚洲小视频在线| 夜夜嗨av一区二区三区中文字幕|