資料介紹
我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。例如,要產(chǎn)生200Hz的音頻信號,按圖1接入喇叭(若屬臨時實驗,也可將喇叭直接接在P1口線上),實驗程序為:其中子程序DEL為延時子程序,當R3為1時,延時時間約為20us,R3中存放延時常數(shù),對200HZ音頻,其周期為1/200秒,即5ms。這樣,當P1.4的高電平或低電平的持續(xù)時間為2.5ms,即R3的時間常數(shù)取2500/20=125(7DH)時,就能發(fā)出200HZ的音調(diào)。將上述程序鍵入學(xué)習(xí)機,并不斷修改R3的常數(shù)可以感到音調(diào)的變化。樂曲中,每一音符對應(yīng)著確定的頻率,表1給出C調(diào)時各音符頻率及其相應(yīng)的時間常數(shù)。讀者可以根據(jù)表1所提供的常數(shù),將其16進制代碼送入R3,反復(fù)練習(xí)體會。根據(jù)表1可以奏出音符。僅這還不夠,要準確奏出一首曲子,必須準確地控制樂曲節(jié)奏,即一音符的持續(xù)時間。音符的節(jié)拍我們可以用定時器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時時間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。其它節(jié)拍與時間的對應(yīng)關(guān)系見表2。但時,由于T0的最大定時時間只能為131毫秒,因此不可能直接用改變T0的時間初值來實現(xiàn)不同節(jié)拍。我們可以用T0來產(chǎn)生10毫秒的時間基準,然后設(shè)置一個中斷計數(shù)器,通過判別中斷計數(shù)器的值來控制節(jié)拍時間的長短。表2中也給出了各種節(jié)拍所對應(yīng)的時間常數(shù)。例如對1/4拍音符,定時時間為0.16秒,相應(yīng)的時間常數(shù)為16(即10H);對3拍音符,定時時間為1.92秒,相應(yīng)時間長數(shù)為192(即C0H)。我們將每一音符的時間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實現(xiàn)演奏效果。此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不同的音符。程序框圖如圖2所示。下面給出程序序請單,可直接在TD-III型學(xué)習(xí)機上演奏,對其它不同型號的學(xué)習(xí)機,只需相應(yīng)地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開”,C調(diào),節(jié)奏為94拍/分。讀者也可以自行找出一首歌,按表1和表2給定的常數(shù),將樂曲翻譯成碼表輸入機器,而程序不變。本實驗方法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機器的演奏學(xué)唱一首歌曲,其趣味無窮。硬件連接說明:隨便找一個仿真機或者什么單片機實驗板,只要能工作的就行,將程序輸入,運行,然后找個音箱(你計算機旁邊應(yīng)當就有一對吧)撥出插頭,插頭的前端接在P1。0上,后面部分找根線接單片機的地,就應(yīng)當有聲了,然后怎么改進硬件連接就是你的事了。(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 51單片機串行通信的原理解析資料下載
- 使用單片機實現(xiàn)按鍵選播電子音樂的程序和仿真資料免費下載 27次下載
- 使用單片機實現(xiàn)按鍵控制定時器選播多段音樂的程序和仿真資料免費下載 16次下載
- 使用單片機實現(xiàn)音樂播放器的程序免費下載 45次下載
- 使用單片機設(shè)計音樂程序的資料說明 0次下載
- 使用51單片機自制音樂盒的詳細資料和程序及電路圖免費下載
- 51單片機匯編語言教程之音樂程序設(shè)計的詳細資料說明 4次下載
- 如何使用單片機進行蜂鳴器演奏音樂的程序資料免費下載 9次下載
- 使用單片機進行音樂盒的設(shè)計資料合集免費下載 49次下載
- 使用單片機實現(xiàn)音樂播放器的源代碼程序免費下載
- 51單片機的五個匯編音樂程序資料免費下載 21次下載
- 使用51單片機設(shè)計的C語言音樂程序代碼資料免費下載 17次下載
- 使用C51單片機進行演奏生日快樂音樂程序的詳細資料免費下載 20次下載
- 蜂鳴器播放音樂程序 34次下載
- 單片機音樂程序教程
- 單片機里的程序是如何運行? 4550次閱讀
- 單片機的主程序是如何執(zhí)行的 1w次閱讀
- 一文解析單片機晶振腳的原理 4397次閱讀
- 如何自制一個AVR單片機ISP下載線 4228次閱讀
- 如何對STC單片機進行免掉電下載 2237次閱讀
- 單片機對音樂程序的設(shè)計原理解析 1383次閱讀
- 單片機音樂程序的設(shè)計原理解析 3899次閱讀
- 51單片機的工作流程及原理解析 5.8w次閱讀
- 基于Proteus單片機的音樂演奏實現(xiàn)系統(tǒng) 5631次閱讀
- 怎么讀取單片機程序_單片機程序是如何執(zhí)行的_如何讀懂單片機程序 7.6w次閱讀
- ch340g單片機下載程序電路原理 7.9w次閱讀
- 針對常用51單片機下載程序問題做下詳解 1.5w次閱讀
- ARDUINO IDE編寫和AVR單片機程序的下載 1w次閱讀
- STC單片機程序燒錄與ISP下載相關(guān)知識 1w次閱讀
- 單片機學(xué)習(xí)知識點全攻略(完結(jié)篇) 2.9w次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 3次下載 | 免費
- 2AN-1267: 使用ADSP-CM408F ADC控制器的電機控制反饋采樣時序
- 1.41MB | 3次下載 | 免費
- 3AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費
- 4AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費
- 5AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 6AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費
- 7AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 8SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 5美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 18次下載 | 免費
- 7感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費
- 8萬用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論