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

標題: 單片機蜂鳴器演奏青花瓷的程序 [打印本頁]

作者: 命名成    時間: 2018-12-6 10:15
標題: 單片機蜂鳴器演奏青花瓷的程序
我把程序加了注釋,去掉了讓人不好理解的和無實際作用的暫停函數(shù),修正了音律賦值代碼后音準更準了,要換歌自己按前段演示的音符把簡譜編入音律符節(jié)拍數(shù)組即可,才學了2周單片機,這是我仔細消化后的改進了前輩的作業(yè)。

#include <REG51.H>#define uchar unsigned charsbit beepIO=P0^7; //定義蜂鳴器端口為p0^7,根據(jù)單片機實際蜂鳴器實際接口改變uchar m,n;     //定義4個八度每八度12分音律共48音律uchar code T[49][2]={{0,0},//定義音律49個二維數(shù)組{0xF9,0x1F},{0xF9,0x82},{0xF9,0xDF},{0xFA,0x37},{0xFA,0x8A},{0xFA,0xD8},{0xFB,0x23},{0xFB,0x68},{0xFB,0xAA},{0xFB,0xE9},{0xFC,0x24},{0xFC,0x5B},{0xFC,0x8F},{0xFC,0xC1},{0xFC,0xEF},{0xFD,0x1B},{0xFD,0x45},{0xFD,0x6C},{0xFD,0x91},{0xFD,0xB4},{0xFD,0xD5},{0xFD,0xF4},{0xFE,0x12},{0xFE,0x2D},{0xFE,0x48},{0xFE,0x60},{0xFE,0x78},{0xFE,0x86},{0xFE,0xA3},{0xFE,0xB6},{0xFE,0xC9},{0xFE,0xDA},{0xFF,0xEB},{0xFE,0xFA},{0xFF,0x09},{0xFF,0x17},{0xFF,0x24},{0xFF,0x30},{0xFF,0x3C},{0xFF,0x47},{0xFF,0x51},{0xFF,0x5B},{0xFF,0x64},{0xFF,0x6D},{0xFF,0x75},{0xFF,0x7D},{0xFF,0x84},{0xFF,0x8B}};uchar code music[][2]={{0,4},//定義曲譜數(shù)組,前數(shù)為音律,后數(shù)為音符節(jié)拍 ,要換歌改變簡譜對應的音律號即可{0,1},{1,1},{3,1},{5,1},{6,1},{8,1},{10,1},{12,1},{13,1},//演示超低音八度 123457671{0,1},{13,1},{15,1},{17,1},{18,1},{20,1},{22,1},{24,1},{25,1},//演示低音八度12345671{0,1},{25,1},{27,1},{29,1},{30,1},{32,1},{34,1},{36,1},{37,1},//演示中音八度12345671{0,1},{37,1},{39,1},{41,1},{42,1},{44,1},{46,1},{48,2},//演示高音八度 1234567{0,4},{24,4},{24,4},{21,4},{19,4},{21,4},{14,8},{19,4},{21,4},{24,4},{21,4},{19,16},//記錄菊花臺簡譜歌詞:0553236 23532 天青色等煙雨 而我在等你{0,4},{24,4},{24,4},{21,4},{19,4},{21,4},{12,8},{19,4},{21,4},{24,4},{19,4},{17,16},//簡譜歌詞:0553235 23521 炊煙裊裊升起 隔江千萬里{0,4},{17,4},{19,4},{21,4},{24,4},{26,4},{24,4},{22,4},{24,4},{21,4},{21,4},{19,4},{19,16},//簡譜歌詞:01235654 53322 在平地書刻你房間上的飄影{0,4},{17,4},{19,4},{17,4},{17,4},{19,4},{17,4},{19,4},{19,4},{21,8},{24,4},{21,4},{21,12},//簡譜歌詞:就當我為遇見你伏筆{0,4},{24,4},{24,4},{21,4},{19,4},{21,4},{14,8},{19,4},{21,4},{24,4},{21,4},{19,16}, //簡譜歌詞:0553236 23532 天青色等煙雨 而我在等你{0,4},{24,4},{24,4},{21,4},{19,4},{21,4},{12,8},{19,4},{21,4},{24,4},{19,4},{17,16}, //簡譜歌詞:0553235 23521 月色被打撈起 掩蓋了結(jié)局{0,4},{17,4},{19,4},{21,4},{24,4},{26,4},{24,4},{22,4},{24,4},{21,4},{21,4},{19,4},{19,12},//簡譜歌詞:0123 5654 5332 25 322 11 如傳世的青花瓷在獨自美麗{12,4},{21,8},{19,8},{19,4},{17,20},                                           //簡譜歌詞:你眼帶笑意{0xFF,0xFF}}; //歌曲結(jié)尾標識void delay(uchar p)  //延時函數(shù)  無符號字符型變量{uchar i,j;     //定義無符號字符型變量J和Ifor(;p>0;p--)  // 此處P值即主函數(shù)的n值節(jié)拍個數(shù)for(i=181;i>0;i--) //延時181*181個機器周期約25毫秒,即一個1/16節(jié)拍for(j=181;j>0;j--);}  void T0_int() interrupt 1{beepIO=!beepIO;  //蜂鳴器翻轉(zhuǎn)發(fā)聲TH0=T[m][0]; TL0=T[m][1]; //音律延時周期次數(shù)碼表賦給定時寄存器作為計數(shù)初始值,每TH0TL0個機器周期觸發(fā)蜂鳴器端口翻轉(zhuǎn),演奏出不同音符}void main(){uchar i=0;      //定義無符號字符型變量i,初始值為0TMOD=0x01; EA=1; ET0=1;  //開啟T0定時16位方式,總中斷開啟,開啟T0外部中斷請求while(1) //開始曲譜演奏,循環(huán)無限重復{m=music[ i][0];n=music[ i][1];  //將音律號賦值給m, 將節(jié)拍號賦值給nif(m==0x00)       //如果音律號為0,{TR0=0;delay(n);i++;}     //關(guān)閉計時器,延遲n拍,將循環(huán)數(shù)I加1 ,準備讀下一個音符else if(m==0xFF)     //否則如果音律數(shù)為FF{TR0=0;delay(30);i=0;}     //開啟節(jié)拍延時30個1/16節(jié)拍,歌曲停頓2秒,將循環(huán)數(shù)I置0else if(m==music[i+1][0])  // 否則如果把下一個音律號數(shù)給變量m{TR0=1;delay(n);TR0=0;i++;} //定時器0打開延遲n拍,關(guān)閉定時器T0,讀下一個音符,循環(huán)數(shù)加1讀下一個音律else     //音符若不為零{TR0=1;delay(n);i++;}//打開定時器,延時n個1/16拍,循環(huán)數(shù)I加1 ,準備演奏下一個音符}}





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人午夜精品 | 日韩精品成人免费观看视频 | 成人欧美一区二区三区黑人孕妇 | 一区二区三区国产在线观看 | 一区二区三区精品视频 | 盗摄精品av一区二区三区 | 亚洲区一| 97精品国产 | 国产精品亚洲成在人线 | 午夜天堂精品久久久久 | 91在线电影 | 亚洲午夜视频在线观看 | 日韩成人精品一区二区三区 | 欧美涩 | 福利社午夜影院 | 日本久久www成人免 成人久久久久 | 亚洲国产视频一区二区 | 欧美精品欧美精品系列 | 亚洲一区有码 | 久久天天躁狠狠躁夜夜躁2014 | 91精品国产综合久久久久久丝袜 | 欧美日韩精品免费观看 | 国产午夜在线 | 精品欧美一区二区三区久久久 | 欧美日韩福利视频 | 日韩精品一区二区三区久久 | 精品美女视频在免费观看 | 国产在线高清 | aaa天堂| 亚洲一区在线日韩在线深爱 | 91久久精品日日躁夜夜躁国产 | 国产特一级黄色片 | 成人网视频 | 亚洲欧美日韩精品久久亚洲区 | 亚洲成人av | www中文字幕 | 精品videossex高潮汇编 | 91视频播放 | 四虎成人在线播放 | 亚洲精品电影在线 | 日韩欧美网 |