日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蜂鸣器播放青鸟,含曲谱(小萌白新文)

發布時間:2024/8/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蜂鸣器播放青鸟,含曲谱(小萌白新文) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此次是用proteus仿真單片機加蜂鳴器播放青鳥,簡譜和代碼最后給出。

蜂鳴器發聲原理

以標準音高“ A ”為例:A 的頻率 f=440Hz,其對應的周期為:T=1/f=1/440=2272us。

控制蜂鳴器的波形圖,通過對端口循環的置位、清零來達到輸出固定頻率波形,相對于A音頻率440Hz, T=2272us,那么t=T/2=2272/2=1136us。所以我們只要在程序中將端口置為高電平,延時1136us,再置為低電平,延時 1136us,如此循環,就可以得到 440Hz 頻率的聲音。

七個基本音級的音名是:C,D,E,F,G,A,B,其唱名形式為:Do,Re,Mi,Fa,Sol,La,Si。

在單片機里用定時器中斷完成七個音的高,中,低音部分,也就是21個音。

頻率對照表
Do2625231046
Re2945871175
Mi3306591318
Fa3496981397
Sol3927841568
La4408801760
Si4949881976

單片機仿真用到的是Atmega32,之前用的是Atmega16,曲譜占用的內存超了,所以就改了。完整曲譜和代碼在最后給出,曲譜還有更省內存的寫法,懶得改了。

單片機產生以上表中音調的原理都一樣,以我仿真用到的單片機為例,8Mhz時鐘,定時器1,普通模式,8分頻,計數上限65536。8M的時鐘,設置8分頻,計時頻率就是:8M/8 = 1 Mhz(加1所需要的時間是1ns)

頻率與計數初值就有以下關系:

TCNT1 = 65536-1000000/2f

以上公式可以這么理解,計數初值(ns)=溢出值(ns)-半周期(ns),單位都是ns,TCNT1就是Atmega單片機的初值寄存器。1/f 是這個頻率所對應的時間,1/2f 就是半周期所對應的時間,因為單位是ns所以要乘1000000。

編輯曲譜用到了查看簡譜的知識,以下圖為例,數字頭頂帶點的就是高音,腳下帶點的就是低音,不帶的就是中音。以16分拍為時間單位1,8分拍就是2,四分拍就是4??梢栽谀扯然蚰骋舨橐恍┖喿V知識,最多10分鐘就會看了。

就是高音1,2分拍。對于下面的簡譜編程如下:

{H1,8,2}, {M7,6,2}, {M6,2,1}, {M6,8,2}, {0,2,2}, {M3,2,2}, {M6,2,2}, {M7,2,2},

H1,M7 等等在宏定義里,H是高音,M是中音,L是低音。{H1,8,2},8就是8個時間單位,即2分拍?,2是代表后面沒有延音線,1就是有延音線,此次曲譜全部是按照這個規則寫的,不過根據簡譜知識,延音線并不是這么用的,我這個方案還有很大漏洞,小伙伴有更好的方案歡迎分享。

uchar QN_Music[400][3]={ //12 {15,2,2}, {10,2,2}, {15,2,2}, {14,2,1}, {14,2,2}, {13,2,2}, {12,2,2}, {13,2,1}, {13,2,2}, {8,2,2}, {9,2,2}, {10,2,1}, {10,2,2}, {10,2,2}, {10,2,2}, {10,2,2}, {10,4,2}, {15,4,2}, {14,3,1}, {13,3,1}, {12,3,2}, {12,2,2}, {13,2,2}, {13,4,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, //13 {15,12,2},{15,4,2}, {14,2,2}, {15,4,2}, {14,2,1}, {14,2,2}, {14,2,2}, {14,2,2}, {15,2,2}, {16,12,2},{0,2,2}, {16,2,2}, {15,2,2}, {14,4,2}, {13,2,1}, {13,2,2}, {13,2,2}, {15,2,2}, {16,2,2}, {17,2,1}, {13,2,2}, {13,2,2}, {15,2,2}, {16,2,2}, {17,4,2}, {17,2,1}, //14 {17,2,2}, {19,2,1}, {19,2,2}, {18,2,1}, {18,2,2}, {17,6,1}, {17,2,1}, {17,6,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,8,2}, {14,6,2}, {13,2,1}, {13,8,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,6,2}, {15,2,2}, {16,4,2}, {15,2,2}, {16,2,1}, //15 {16,2,2}, {17,6,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,8,2}, {14,6,2}, {13,2,1}, {13,8,2}, {0,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {12,4,2}, {12,2,1}, {12,2,2}, {13,2,2}, {13,4,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, //16 {15,8,2}, {14,6,2}, {13,2,1}, {13,8,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,6,1}, {15,2,2}, {16,4,2}, {15,2,2}, {16,2,1}, {16,2,2}, {17,6,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,8,2}, {14,6,2}, {13,2,1}, //17 {13,8,2}, {0,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {12,4,2}, {12,2,1}, {12,2,2}, {13,2,2}, {13,12,2}, {0,30,2}, {13,2,2}, //18 {17,4,2}, {13,2,2}, {13,2,1}, {13,2,2}, {12,4,2}, {12,2,1}, {13,12,2},{0,2,2}, {13,2,2}, {17,4,2}, {13,2,2}, {13,2,1}, {13,2,2}, {12,4,2}, {12,2,1}, {13,12,2},{0,2,2}, {14,2,2}, {15,2,1}, {13,2,2}, {13,2,2}, {15,2,1}, {15,2,2}, {0,2,2}, {16,2,2}, //19 ------- - - {16,2,1}, {14,2,2}, {14,2,2}, {16,2,1}, {16,4,2}, {0,2,2}, {16,2,2}, {17,3,2}, {17,1,1}, {17,2,2}, {17,2,2}, {15,3,2}, {15,1,1}, {15,2,2}, {16,2,2}, {17,16,1}, {17,8,2}, {0,30,2}, //20 {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,8,2}, {14,6,2}, {13,2,1}, {13,8,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,6,2}, {15,2,2}, {16,4,2}, {15,2,2}, {16,2,1}, {16,2,2}, {17,6,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, //21 {15,8,2}, {14,6,2}, {13,2,1}, {13,8,2}, {0,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {12,4,2}, {12,2,1}, {12,2,2}, {13,2,2}, {13,4,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,8,2}, {14,6,2}, {13,2,1}, //22 {13,8,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,6,1}, {15,2,2}, {16,4,2}, {15,2,2}, {16,2,1}, {16,2,2}, {17,6,2}, {0,2,2}, {10,2,2}, {13,2,2}, {14,2,2}, {15,8,2}, {14,6,2}, {13,2,1}, {13,8,2}, {0,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, //23 {16,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {12,4,2}, {12,2,1}, {12,2,2}, {13,2,2}, {13,4,2}, {0,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {12,4,2}, {12,2,1}, {12,2,2}, {13,2,2}, {13,4,2}, {0,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, //24 {16,2,2}, {13,2,2}, {17,2,2}, {16,2,1}, {16,2,2}, {12,4,2}, {12,2,1}, {12,2,2}, {13,2,2}, {13,12,2}, {0xff,0,0} }; /******************蜂鳴器音樂常量******************/// 計時值=65536-8000000/8/2/頻率 // 音名 計時值 頻率Hz#define L1 63627 //262 #define L2 63835 //294 #define L3 64021 //330 #define L4 64103 //349 #define L5 64270 //392 #define L6 64400 //440 #define L7 64524 //494 #define M1 64580 //523 #define M2 64684 //587 #define M3 64777 //659 #define M4 64820 //698 #define M5 64898 //784 #define M6 64968 //880 #define M7 65030 //988 #define H1 65058 //1046 #define H2 65110 //1175 #define H3 65157 //1318 #define H4 65178 //1397 #define H5 65217 //1568 #define H6 65252 //1760 #define H7 65283 //1976 uint Music_tone[22]={0,L1,L2,L3,L4,L5,L6,L7,M1,M2,M3,M4,M5,M6,M7,H1,H2,H3,H4,H5,H6,H7 };void biu_speaker(unsigned int aa) {TIMSK=0x05; //Timer1 溢出中斷使能 tone=aa; //取音調頻率 TCNT1=tone; //將頻率值對應的計數值寫入計時器,開始發聲 } void play_music() {unsigned int i=0,p_time=10,con_time=1;while(1){if(QN_Music[i][0]==0xff){break;}else if(QN_Music[i][0]==0){biu_speaker(0);delay_ms(p_time*QN_Music[i][1]);}else{biu_speaker(Music_tone[QN_Music[i][0]]);delay_ms(p_time*QN_Music[i][1]);}biu_speaker(0);delay_ms(con_time*QN_Music[i][2]);i++; } }

play_music 里面的兩變量 p_time,con_time 分別是 16分音符的時長 和 兩個音符之間的間隔時長。曲譜代碼中注釋的數字對應就是下面曲譜的行數,青鳥的曲譜是在網上找的,如下:

最后可仿真的proteus、.c代碼、完整曲譜、完整曲譜的代碼都放在壓縮包里,Atmega單片機編程使用到的軟件是CodeVisionAVR。

壓縮包會發一個資源或群,主要是譜子,需要的可以改改用。

企鵝 群:7443五五五15

總結

以上是生活随笔為你收集整理的蜂鸣器播放青鸟,含曲谱(小萌白新文)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 涩涩涩涩涩涩涩涩涩涩 | 亚洲天堂午夜 | 欧美性欧美zzzzzzzzz | 精品麻豆一区二区 | 中国在线观看视频高清免费 | 一级黄色电影片 | 91看片视频| 国产一级一区 | 亚洲在线一区 | 在线观看aa | 午夜在线看 | 成人一区二区三区视频 | 欧美成人一区二免费视频软件 | 美女让男生桶 | 综合久久亚洲 | 99精品视频免费看 | 一本色道久久综合狠狠躁 | 91日批视频 | 欧美区一区 | 69堂免费视频 | 精品国产乱码久久久久久蜜柚 | 免费午夜人成电影 | 成人综合在线观看 | 一级视频在线观看 | 欧美瑟瑟| 同性色老头性xxxx老头 | av影片在线看 | 亚洲色成人网站www永久四虎 | 不卡日本 | 国产精品自产拍在线观看 | 亚洲乱码国产乱码精品精剪 | 91正在播放 | 中文字幕精品无码一区二区 | 国产精品视频在线观看免费 | 97狠狠操| 91在线网 | 97视频在线免费观看 | 成人a毛片久久免费播放 | 制服丝袜av一区二区三区下载 | 亚欧美一区二区三区 | 69精品在线 | 日韩免费观看一区二区 | 精品久久久精品 | 一区二区三区在线免费观看视频 | 日韩精品一区二区三区av | 丁香五色月 | 特一级黄色片 | 中文字幕你懂的 | av图片在线| 在线成人av网站 | 咪咪色在线视频 | 三级视频国产 | 51调教丨国产调教视频 | 激情五月视频 | 中文字幕永久在线播放 | 天天干天天操天天拍 | 这里只有精品国产 | 亚色中文字幕 | 三年中文在线观看免费观看 | 玉蒲团在线 | 亚洲免费视频一区二区三区 | 欧美jizz欧美性大全 | 一个人看的www日本高清视频 | 一级黄色片欧美 | 久久艹在线视频 | 伊人久久狼人 | 成人高潮片免费网站 | 亚洲国产精品久久久久爰性色 | 男女瑟瑟视频 | 国产老熟女一区二区三区 | 国产精品www在线观看 | www亚洲| 日本在线第一页 | 欧美性猛交xxxx乱大交hd | 国产精品黄色网 | www噜噜噜| 欧美一区免费 | 97在线公开视频 | 日本人妻不卡一区二区三区中文字幕 | 色女生影院| 国产三级在线免费 | 久久久久亚洲av无码a片 | www.色哟哟 | 日韩美女少妇 | 日韩国产片 | 亚洲精品免费视频 | 亚洲精品在线播放视频 | 在线观看无码精品 | 中国黄色录像一级片 | 国产aaa毛片 | 国内精品视频一区二区三区 | 成人免费视频国产在线观看 | 麻豆久久精品 | 欧美成人国产精品一区二区 | 亚洲国产成人精品女人久久久 | av大片免费 | 日本裸体网站 | 免费成人美女女 | 69色视频|