資料介紹
利用單片機(或單板機)奏樂大概是無線電愛好者感興趣的問題之一。本文從單片機的基本發間實驗出發,談談音樂程序的設計原理,并給出具體實例,以供參考。單片機的基本發音實驗
我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的“高”電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續時間,就能改變輸出頻率,從而改變音調。
例如,要產生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給定的常數,將樂曲翻譯成碼表輸入機器,而程序不變。本實驗辦法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機器的演奏學唱一首歌曲,其趣味無窮。
- 嵌入式設計教程之匯編語言程序設計的詳細資料說明 10次下載
- 51單片機匯編語言教程之單片機鍵盤接口程序設計的詳細資料說明 19次下載
- 51單片機匯編語言教程之單片機條件轉移指令的詳細資料說明 15次下載
- 51單片機匯編語言教程之單片機定時器與計算器的詳細資料說明 23次下載
- 51單片機匯編語言教程之單片機邏輯與或異或指令的詳細資料講解 17次下載
- 51單片機匯編語言教程之單片機數據傳遞類指令的詳細資料概述 14次下載
- 嵌入式系統原理及應用教程之ARM匯編語言程序設計的詳細資料說明 11次下載
- 單片機基礎教程之匯編語言程序設計知識的詳細資料說明 10次下載
- 51單片機教程之80C51的匯編語言程序設計資料總結 9次下載
- 80C51單片機教程之80C51的匯編語言程序設計詳細資料總結 10次下載
- 51單片機教程之MCS51單片機C程序設計的詳細資料概述 11次下載
- 51單片機教程之指令系統及程序設計的詳細資料概述 8次下載
- 單片機教程之匯編語言程序設計的詳細資料講解 16次下載
- 基于51單片機匯編語言教程:22課單片機串行口通信程序設計 25次下載
- 51單片機匯編語言教程_單片機延時程序分析 0次下載
- PIC系列單片機程序設計基礎知識詳細說明 4636次閱讀
- 51單片機的匯編程序庫 9731次閱讀
- 51單片機實現最小系統的原理和電路與編程設計說明 8867次閱讀
- pic單片機的各種匯編語言指令解析 2495次閱讀
- PIC的指令系統和匯編語言指令格式說明 3539次閱讀
- 單片機C語言有哪些優越性?如何建立一個Keil C51項目 1.2w次閱讀
- 單片機 | 基礎匯編語言編程實例 1w次閱讀
- 51單片機的匯編語言指令中英文對照 5480次閱讀
- 單片機匯編語言常見錯誤知識點分析 6641次閱讀
- C語言與匯編語言相互結合的嵌套匯編語言 3541次閱讀
- 跑馬燈實驗用匯編語言和C51語言做出的不同效果 4097次閱讀
- 分享一些單片機匯編語言常見的語法和程序錯誤 7943次閱讀
- 單片機編程之匯編語言基礎-PIC單片機匯編指令 3092次閱讀
- 單片機編程之匯編語言基礎-常用指令和程序模式 1.5w次閱讀
- 匯編語言的結構化設計及其在俄羅斯方塊中的應用 3083次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多