久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1883|回復: 0
打印 上一主題 下一主題
收起左側

基于單片機AT89C51的簡易電子琴系統設計文檔下載

[復制鏈接]
跳轉到指定樓層
樓主
樂曲聲音算法
一首音樂是許多不同的音階組成的,而每個音階對應著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了,當然對于單片機來產生不同的頻率非常方便,我們可以利用單片機的定時/計數器T0來產生這樣方波頻率信號
4.1音樂頻率的實現:
1.要產生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間,然后利用計時器計時此半周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,如此就可在I/O腳上得到此頻率的脈沖.
2.利用8051的內部計時器讓其工作在計數模式MODE1下,改變計數值TH0及TL0以產生不同的頻率.
3.例如以6MHZ晶振為例:要產生頻率為523HZ,其周期T=1/523=1912us,其半周期為1912/2=956us,因此只要令計數器計時956us/1us=956.所以在每計數956次時將I/O反相,就可得到中音DO(523HZ).
計數脈沖值與頻率的關系公式如下:
N=Fi+2+Fr N:計數值
Fi:內部計時一次2us,以6MHZ晶振為例,故其頻率為500000HZ
Fr:要產生的頻率
4.其計數值的求法如下:
T=65536-N=65536-Fi/2/Fr
例如:求低音DO(261HZ),中音DO(523HZ),高音DO(1046HZ) 的計數值?
設K=65536 F=500000=Fi=0.5MHZ
T=65536-N=65536-Fi/2/Fr=65536-500000/2/Fr=65536-250000/Fr
低音DO的 T=65536-250000/262=64582
中音DO的 T=65536-250000/523=65058
高音DO的 T=65536-250000/1047=65297
5. C調各音符頻率與計數值T的對照表:
音符 頻率HZ 6MHZ 十六進制值 音符 頻率HZ 6MHZ 十六進制值
低1DO 262 64582 FC46 #4FA# 740 65198 FEAE
#1DO# 277 64634 FC7A 中5SO 784 65217 FEC1
低2RE 294 64686 FCAE #5SO# 831 65235 FED3
#2RE# 311 64732 FCDC 中6LA 880 65252 FEE4
低3M 330 64779 FD0B #6LA# 932 65268 FEF4
低4FA 349 64820 FD34 中7SI 988 65283 FF03
#4FA# 370 64860 FD5C 高1DO 1046 65297 FF11
低5SO 392 64898 FD82 #DO# 1109 65311 FF1F
#5SO# 415 64934 FDA6 高2RE 1175 65323 FF2B
低6LA 440 64968 FDC8 #2RE# 1245 65335 FF37
#6LA# 466 65000 FDE8 高3M 1318 65346 FF42
低7SI 494 65030 FE06 高4FA 1397 65357 FF4D
中1DO 523 65058 FE22 #4FA# 1480 65367 FF57
#1DO# 554 65085 FE3D 高5SO 1568 65377 FF61
中2RE 578 65103 FE4F #5S0# 1661 65385 FF69
#2RE# 622 65134 FE6E 高6LA 1760 65394 FF72
中3M 659 65157 FE85 #6LA# 1865 65402 FF7A
中4FA 698 65178 FE9A 高7SI 1976 65409 FF81
"#"表示半音,用于上升或下降半個音

4.2音樂節拍的實現:
每個音符使用1個字節,字節的高4位代表音符的高低,低4位代表音符的節拍,如果1拍節為0.4秒則1/4拍是0.1秒,只要設定延遲時間就可求得節拍的時間,再來我們假設1/4拍為1 DELY單位,則1拍應為4個DELY,以此類推,只要求得1/4拍的DELY單位時間,其余的節拍就是它的倍數.
1/4拍的延遲時間=0.187秒
DELAY:MOV R7,#02H
D2:MOV R4,#31H
D3:MOV R3,#0F1H
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
DJNZ R5,DELAY ;R5存節拍數
RET

各調值1/4節拍的時間設定 各調值1/8節拍的時間設定
曲調值 DELAY 6MHZ(H) 曲調值 DELAY 6MHZ(H)
調4/4 125亳秒 3E 調4/4 62亳秒 1F
3/4 187 5D 3/4 94 2F
2/4 250 7D 2/4 125 3E
建立音樂的步驟: 1.先找出樂曲的最低音,最高音范圍,然后確定音符表首地址.

2.如把音符表建在 0151H,適用簡譜范圍為 低音1 到 高音1. 3.簡譜碼(音符)為高4位,節拍碼(節拍數)為低4位,音符節拍碼放在程序的0300H處.本程序有關約定:根據不同曲調,可以建立不同簡譜音符表0151H- 為一簡譜音符表首地址適用簡譜范圍 低音1 到 高音10159H- 為一簡譜音符表首地址適用簡譜范圍 低音5 到 高音5 0300H- 為第一首歌曲首地址,字節高位為音符代碼,低位為節拍代碼組成簡譜曲碼. 003EH 為歌曲DPH高位首地址,0041H為歌曲DPL低位首地址002FH 為節拍速度代碼; 0073H 為音符表低位地址 ,高位地址為01H,不可改動0047H 內容為該首放音二次,01為放音1次. 008DH 改為00H,則反復放該首曲(調試時用).樂曲存放約定:曲碼中00H表示上首曲結束標記;接著為下首曲節拍速度值,再接著為該首曲音符表首地址,然后才是樂曲曲碼,全部樂曲結束標記為連續兩個單元是00H 00H各調值節拍時間代碼表(6MHZ晶振時)曲調值 節拍速度值4/4 3EH 3/4 5DH
因此,我們只要把一首歌曲的音階對應頻率關系弄正確即可。現在以單片機12MHZ晶振為例,例出高中低音符與單片機計數T0相關的計數值如下表所示


完整的Word格式文檔51黑下載地址:
基于單片機AT89C51的簡易電子琴系統畢業設計(論文).doc (413.5 KB, 下載次數: 43)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕免费中文 | 丝袜久久 | 久久久久国产精品一区二区 | 黄色毛片免费看 | 午夜小电影 | 一区二区在线不卡 | 成人av影院 | 91天堂| 在线观看视频91 | 一区二区三区在线播放 | 日韩免费视频一区二区 | 国产精品自产拍 | 欧美黑人一区 | 亚洲精品免费在线观看 | 99爱视频 | 久久99精品久久 | 亚洲性在线| 久久视频精品 | 天天躁日日躁狠狠躁2018小说 | 中文区中文字幕免费看 | 视频二区国产 | 欧美 日韩 亚洲91麻豆精品 | 韩国毛片一区二区三区 | 欧美国产日韩在线观看 | 亚洲欧美国产精品久久 | 久久亚洲国产精品 | 呦呦在线视频 | 中文字幕国产一区 | 91精品国产一区二区三区 | 欧美精品在线看 | 色吧久久 | 亚洲免费观看视频网站 | 国产偷自视频区视频 | 成人精品毛片国产亚洲av十九禁 | 欧美三级免费观看 | 久久久久久久一区 | 中文字幕在线免费观看 | 亚洲成人www| 精品视频免费在线 | 黄色欧美在线 | 国产偷自视频区视频 |