資料介紹
利用單片機(或單板機)奏樂大概是無線電愛好者感興趣的問題之一。本文從單片機的基本發間實驗出發,談談音樂程序的設計原理,并給出具體實例,以供參考。
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,則產生相應的停頓效果。
為了產生手彈的節奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不同的音符。
程序框圖如圖2所示。
下面給出程序序請單,可直接在TD-III型學習機上演奏,對其它不同型號的學習機,只需相應地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開”,C調,節奏為94拍/分。讀者也可以自行找出一首歌,按表1和表2給定的常數,將樂曲翻譯成碼表輸入機器,而程序不變。本實驗方法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機器的演奏學唱一首歌曲,其趣味無窮。
- 單片機音樂程序的設計原理解析資料下載
- 使用單片機設計電子音樂門鈴的程序免費下載 28次下載
- 單片機設計程序和觀察定時器工作狀況的詳細資料說明 5次下載
- 51單片機匯編語言教程之音樂程序設計的詳細資料說明 4次下載
- 如何使用單片機設計音樂盒進行播放小蘋果的C語言程序免費下載 21次下載
- 使用單片機設計的音樂噴泉源程序免費下載 23次下載
- 使用51單片機設計音樂盒的程序資料免費下載 15次下載
- 51單片機的五個匯編音樂程序資料免費下載 21次下載
- 使用51單片機設計的音樂播放器的程序資料免費下載 34次下載
- 使用51單片機設計的C語言音樂程序代碼資料免費下載 17次下載
- 使用C51單片機進行演奏生日快樂音樂程序的詳細資料免費下載 20次下載
- 使用單片機設計的音樂門鈴程序資料免費下載 32次下載
- 如何使用單片機設計一個多功能音樂播放器資料合集內含程序 25次下載
- 蜂鳴器播放音樂程序 34次下載
- 單片機音樂程序教程
- 基于STM32F103單片機設計 1818次閱讀
- 單片機里的程序是如何運行? 4548次閱讀
- PIC系列單片機程序設計基礎知識詳細說明 4636次閱讀
- 單片機實現按鍵的電路和程序設計資料說明 9819次閱讀
- 單片機的結構和原理說明 5517次閱讀
- 使用單片機設計搶答器的資料和程序概述 3050次閱讀
- 單片機對音樂程序的設計原理解析 1383次閱讀
- 單片機音樂程序的設計原理解析 3899次閱讀
- 基于Proteus單片機的音樂演奏實現系統 5631次閱讀
- 單片機8x8矩陣鍵盤原理說明 2.6w次閱讀
- 怎么讀取單片機程序_單片機程序是如何執行的_如何讀懂單片機程序 7.6w次閱讀
- STC單片機燒寫程序步驟說明 7.2w次閱讀
- 單片機與程序設計(上) 3889次閱讀
- AVR單片機設計I/O口使用注意事項 1651次閱讀
- 單片機學習知識點全攻略(完結篇) 2.9w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多