色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 單片機學習 > 單片機教程 > 單片機播放音樂的基本知識及設計原理解析

單片機播放音樂的基本知識及設計原理解析 時間:2018-07-26      來源:未知

單片機播放音樂的基本知識及設計原理解析,使用單片機播放音樂或播放電子琴,實際上,根據特定的頻率輸出一系列方波。為了輸出適當的方波,我們首先要知道音符和頻率之間的關系。

1.音名

從常見的電子琴的鍵盤談起。

在下表中,可以看到一列黑白相間的琴鍵(示意)。主要分成低音、中音和高音三個區域,每個區域都有12個琴鍵。其中的白鍵,簡譜音符標為1、2、3、4、5、6、7,大家一般都讀成哆、來、咪、發、嗦、拉、西。

2.頻率

注意看一下幾個6(拉)的頻率,它們是整數,容易看出規律――是成2倍的關系。其它的音符,也有同樣的規律。這些頻率,如220、440等,它們在琴鍵上的位置是世界統一的,無論是鋼琴、手風琴,還是電子琴,都是一樣的。

包括黑鍵和白鍵在內的全部音符的頻率數值,是成“等比數列”的關系,它們之間有個公比,可以按照“2倍”的規律推算出來。

已知最低音的6(拉)的頻率是220,設公比為q,那么:7的頻率就是220*q*q 。

乘了兩個q,是因為6、7之間隔了個黑鍵。以此類推,兩個6之間,共有12個琴鍵,所以:

低音區的6(拉)的頻率就是:220*q*q*q*q*q*q*q*q*q*q*q*q = 440。

馬上就可以看出,12個q相乘,等于: 440 / 220 = 2。

那么就可以求出公比:q = 2的12次方根 = 1.059463094。

用這個公比,和已知的220進行計算,可以得出全部琴鍵所對應的頻率,如下表中所示。

3.定時初值

頻率的倒數是周期,用單片機輸出方波,應該在半個周期的時刻,將輸出取反。

設單片機的晶振為12MHz,那么定時器將在1us進行一次加一,加到65536就會出現中斷。據此,就可計算出定時器定時半個周期所需的初值,如下表中所示。4.音調數據表

單片機發出不同頻率的方波,人聽起來,就是不同的音調。

上表中的頻率數值,有些過多,去掉不常用的黑鍵頻率,只是把白鍵對應的數據存放在單片機中,即可滿足絕大部分的應用需求。

定義音調數據表的程序如下:

DW 63625, 63833, 64019, 64104, 64260, 64400, 64524 ;低音區:1 2 3 4 5 6 7

DW 64580, 64685, 64778, 64820, 64898, 64968, 65030 ;中音區:1 2 3 4 5 6 7

DW 65058, 65110, 65157, 65178, 65217, 65252, 65283 ;高音區:1 2 3 4 5 6 7

DW 65297 ;超高音:1

把這個數據表,放在程序中,需要播音的時候,就從表中取出一個數據送到定時器,當定時器溢出中斷的時候,再對輸出引腳取反,那么,在揚聲器中,即可聽到上表中頻率的聲音。

單片機的基本發音實驗

我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的“高”電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續時間,就能改變輸出頻率,從而改變音調。

例如,要產生200HZ的音頻信號,按圖1接入喇叭(若屬臨時實驗,也可將喇叭直接接在P1口線上),實驗程序為:

其中子程序DEL為延時子程序,當R3為1時,延時時間約為20us,R3中存放延時常數,對200HZ音頻,其周期為1/200秒,即5ms。這樣,當P1.4的高電平或低電平的持續時間為2.5ms,即R3的時間常數取2500/20=125(7DH)時,就能發出200HZ的音調。將上述程序鍵入學習機,并持續修改R3的常數能感到音調的變化。樂曲中,每一音符對應著確定的頻率,表1給出C調時各音符頻率及其對應的時間常數。讀者能根據表1所供給的常數,將其16進制代碼送入R3,反復練習體會。根據表1能奏出音符。僅這還不夠,要準確奏出一首曲子,必須準確地控制樂曲節奏,即一音符的持續時間。

音符的節拍我們能用定時器T0來控制,送入不一樣的初值,就能產生不一樣的定時時間。便如某歌曲的節奏為每分鐘94拍,即一拍為0.64秒。其它節拍與時間的對應關系見表2。

但時,由于T0的最大定時時間只能為131毫秒,因此不可能直接用改變T0的時間初值來實現不一樣節拍。我們能用T0來產生10毫秒的時間基準,然后設置一個中斷計數器,通過判別中斷計數器的值來控制節拍時間的長短。表2中也給出了各種節拍所對應的時間常數。例如對1/4拍音符,定時時間為0.16秒,對應的時間常數為16(即10H);對3拍音符,定時時間為1.92秒,對應時間長數為192(即C0H)。

我們將每一音符的時間常數和其對應的節拍常數作為一組,按次序將樂曲中的所有常數排列成一個表,然后由查表程序依次取出,產生音符并控制節奏,就能實現演奏效果。此外,結束符和體止符能分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產生對應的停頓效果。為了產生手彈的節奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不一樣的音符。

下面給出程序序清單,可直接在TD-III型學習機上演奏,對其它不一樣型號的學習機,只需對應地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開”,C調,節奏為94拍/分。讀者也能自行找出一首歌,按表1和表2給定的常數,將樂曲翻譯成碼表輸入機器,而程序不變。本實驗辦法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機器的演奏學唱一首歌曲,其趣味無窮。

上一篇:關于單片機復位的相關問題詳解

下一篇:基于51單片機解碼紅外遙控器原理

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲av日韩av成人av | 亚洲国产精品无码第一区二区三区 | 黑人巨茎大战白人女40CM | 国产成人av在线影院无毒 | 美女扒开下面让男生桶白浆 | 亚洲乱码中文字幕精品久久 | 免费国无人区码卡二卡 | 又大又粗又爽免费视频a片 欧美又色又爽又黄的A片18禁 | 妺妺晚上吃我精子黄文 | 欧美狠狠干 | 欧美日韩激情 | 香蕉久久国产AV一区二区 | 青草国产精品久久久久久久久 | 最近免费中文高清在线观看 | 中国一级毛片在线观看 | 亚洲欧洲AV综合一区二区三区 | 麻豆传媒在线完整视频 | 黄色大片观看 | 三个男吃我奶头一边一个视频 | 中文字幕亚洲欧美专区 | 麻豆最新国产AV原创精品 | 午夜成人无码免费看网站 | 久久久久久久夜 | 肥大BBWBBW高潮喷水 | 伊人春色视频 | 国产乱人伦精品一区二区三区 | 亚洲一区二三区好的精华液 | 777米奇影视第四色 欧美无砖专区一中文字 | 天天做天天爱夜夜爽毛片L 无码AV在线一本无码 | 亚洲AV日韩AV一区谷露 | 高清偷自拍亚洲精品三区 | 亚洲毛片AV日韩AV无码 | 永久免费观看的毛片手机视频 | 人妻熟女一区二区aⅴ图片 亚洲精品国产一区二区 | 被强行灌满精子的少妇 | 18禁黄网站男男禁片免费观看 | 亚洲AV永久无码精品天堂动漫 | 国产各种高潮合集在线观看 | 亚洲欧美日韩v中文在线 | 伊人中文字幕无码专区 | 天堂网资源中文最新版 |