資料介紹
利用單片機(jī)(或單板機(jī))奏樂大概是無線電愛好者感興趣的問題之一。本文從單片機(jī)的基本發(fā)間實(shí)驗(yàn)出發(fā),談?wù)勔魳烦绦虻脑O(shè)計(jì)原理,并給出具體實(shí)例,以供參考。單片機(jī)的基本發(fā)音實(shí)驗(yàn)
我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。
例如,要產(chǎn)生200HZ 的音頻信號,按圖1接入喇叭(若屬臨時(shí)實(shí)驗(yàn),也可將喇叭直接接在P1口線上),實(shí)驗(yàn)程序?yàn)椋?/p>
其中子程序DEL 為延時(shí)子程序,當(dāng)R3為1時(shí),延時(shí)時(shí)間約為20us,R3中存放延時(shí)常數(shù),對200HZ音頻,其周期為1/200秒,即5ms。這樣,當(dāng)P1.4的高電平或低電平的持續(xù)時(shí)間為2.5ms,即R3的時(shí)間常數(shù)取2500/20=125(7DH)時(shí),就能發(fā)出200HZ 的音調(diào)。將上述程序鍵入學(xué)習(xí)機(jī),并持續(xù)修改R3的常數(shù)能感到音調(diào)的變化。樂曲中,每一音符對應(yīng)著確定的頻率,表1給出C 調(diào)時(shí)各音符頻率及其對應(yīng)的時(shí)間常數(shù)。讀者能根據(jù)表1所供給的常數(shù),將其16進(jìn)制代碼送入R3,反復(fù)練習(xí)體會(huì)。根據(jù)表1能奏出音符。僅這還不夠,要準(zhǔn)確奏出一首曲子,必須準(zhǔn)確地控制樂曲節(jié)奏,即一音符的持續(xù)時(shí)間。
音符的節(jié)拍我們能用定時(shí)器T0來控制,送入不一樣的初值,就能產(chǎn)生不一樣的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。其它節(jié)拍與時(shí)間的對應(yīng)關(guān)系見表2。但時(shí),由于T0的最大定時(shí)時(shí)間只能為131毫秒,因此不可能直接用改變T0的時(shí)間初值來實(shí)現(xiàn)不一樣節(jié)拍。我們能用T0來產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長短。表2中也給出了各種節(jié)拍所對應(yīng)的時(shí)間常數(shù)。例如對1/4拍音符,定時(shí)時(shí)間為0.16秒,對應(yīng)的時(shí)間常數(shù)為16(即10H);對3拍音符,定時(shí)時(shí)間為1.92秒,對應(yīng)時(shí)間長數(shù)為192(即C0H)。
我們將每一音符的時(shí)間常數(shù)和其對應(yīng)的節(jié)拍常數(shù)作為一組,按次序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就能實(shí)現(xiàn)演奏效果。此外,結(jié)束符和體止符能分別用代碼00H 和FFH 來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生對應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不一樣的音符。
下面給出程序序清單,可直接在TD-III 型學(xué)習(xí)機(jī)上演奏,對其它不一樣型號的學(xué)習(xí)機(jī),只需對應(yīng)地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開”,C 調(diào),節(jié)奏為94拍/分。讀者也能自行找出一首歌,按表1和表2給定的常數(shù),將樂曲翻譯成碼表輸入機(jī)器,而程序不變。本實(shí)驗(yàn)辦法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機(jī)器的演奏學(xué)唱一首歌曲,其趣味無窮。
- 嵌入式設(shè)計(jì)教程之匯編語言程序設(shè)計(jì)的詳細(xì)資料說明 10次下載
- 51單片機(jī)匯編語言教程之單片機(jī)鍵盤接口程序設(shè)計(jì)的詳細(xì)資料說明 19次下載
- 51單片機(jī)匯編語言教程之單片機(jī)條件轉(zhuǎn)移指令的詳細(xì)資料說明 15次下載
- 51單片機(jī)匯編語言教程之單片機(jī)定時(shí)器與計(jì)算器的詳細(xì)資料說明 23次下載
- 51單片機(jī)匯編語言教程之單片機(jī)邏輯與或異或指令的詳細(xì)資料講解 17次下載
- 51單片機(jī)匯編語言教程之單片機(jī)數(shù)據(jù)傳遞類指令的詳細(xì)資料概述 14次下載
- 嵌入式系統(tǒng)原理及應(yīng)用教程之ARM匯編語言程序設(shè)計(jì)的詳細(xì)資料說明 11次下載
- 單片機(jī)基礎(chǔ)教程之匯編語言程序設(shè)計(jì)知識的詳細(xì)資料說明 10次下載
- 51單片機(jī)教程之80C51的匯編語言程序設(shè)計(jì)資料總結(jié) 9次下載
- 80C51單片機(jī)教程之80C51的匯編語言程序設(shè)計(jì)詳細(xì)資料總結(jié) 10次下載
- 51單片機(jī)教程之MCS51單片機(jī)C程序設(shè)計(jì)的詳細(xì)資料概述 11次下載
- 51單片機(jī)教程之指令系統(tǒng)及程序設(shè)計(jì)的詳細(xì)資料概述 8次下載
- 單片機(jī)教程之匯編語言程序設(shè)計(jì)的詳細(xì)資料講解 16次下載
- 基于51單片機(jī)匯編語言教程:22課單片機(jī)串行口通信程序設(shè)計(jì) 25次下載
- 51單片機(jī)匯編語言教程_單片機(jī)延時(shí)程序分析 0次下載
- PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ)知識詳細(xì)說明 4636次閱讀
- 51單片機(jī)的匯編程序庫 9731次閱讀
- 51單片機(jī)實(shí)現(xiàn)最小系統(tǒng)的原理和電路與編程設(shè)計(jì)說明 8867次閱讀
- pic單片機(jī)的各種匯編語言指令解析 2495次閱讀
- PIC的指令系統(tǒng)和匯編語言指令格式說明 3539次閱讀
- 單片機(jī)C語言有哪些優(yōu)越性?如何建立一個(gè)Keil C51項(xiàng)目 1.2w次閱讀
- 單片機(jī) | 基礎(chǔ)匯編語言編程實(shí)例 1w次閱讀
- 51單片機(jī)的匯編語言指令中英文對照 5480次閱讀
- 單片機(jī)匯編語言常見錯(cuò)誤知識點(diǎn)分析 6641次閱讀
- C語言與匯編語言相互結(jié)合的嵌套匯編語言 3541次閱讀
- 跑馬燈實(shí)驗(yàn)用匯編語言和C51語言做出的不同效果 4097次閱讀
- 分享一些單片機(jī)匯編語言常見的語法和程序錯(cuò)誤 7943次閱讀
- 單片機(jī)編程之匯編語言基礎(chǔ)-PIC單片機(jī)匯編指令 3092次閱讀
- 單片機(jī)編程之匯編語言基礎(chǔ)-常用指令和程序模式 1.5w次閱讀
- 匯編語言的結(jié)構(gòu)化設(shè)計(jì)及其在俄羅斯方塊中的應(yīng)用 3083次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論