




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
//簡(jiǎn)易電子琴//包含51單片機(jī)寄存器定義的頭文件unsignedcharkeyval;//定義變量?jī)?chǔ)存按鍵值unsignedintf;//全局變量,儲(chǔ)存定時(shí)器的定時(shí)常數(shù)//全局變量,儲(chǔ)存音階的頻率//以下是C調(diào)低音的音頻宏定義#definel_re286//將“l(fā)_re”宏定義為低音“2”的頻率286Hz#definel_fa349//將“l(fā)_fa”宏定義為低音“4”的頻率349Hz#definel_sao392//將“l(fā)_sao”宏定義為低音“5”的頻率392Hz#definel_la440//將“l(fā)_a”宏定義為低音“6”的頻率440Hz#definel_xi494//將“l(fā)_xi”宏定義為低音“7”的頻率494Hz//以下是C調(diào)中音的音頻宏定義xi987//將“fa”宏定義為中音“4”的頻率698Hz//將“l(fā)a”宏定義為中音“6”的頻率880Hz//將“xi”宏定義為中音“7”的頻率53//以下是C調(diào)高音的音頻宏定義//將“h_la”宏定義為高音“6”的頻率1760Hz//將“h_xi”宏定義為高音“7”的頻率1975Hz/**************************************************************函數(shù)功能:軟件延時(shí)子程序**************************************************************/{i,j;for(i=0;i<100;i++)for(j=0;j<60;j++);}/*************************************************************************************/voiddelay(){i,j;for(i=0;i<250;i++)for(j=0;j<250;j++);}/*******************************************函數(shù)功能:輸出音頻******************************************/{C=(46083/f)*10;方法//計(jì)算定時(shí)常數(shù)法delay();//延時(shí)200ms,播放音頻TR0=0;播放按鍵音頻后,將按鍵值更改,停止播放//keyval=0xff;}/*******************************************函數(shù)功能:主函數(shù)******************************************/{TR1=1;//定時(shí)器T1啟動(dòng),開始鍵盤掃描無(wú)限循環(huán)while(1)//{switch(keyval){頻率賦給f//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case2:f=l_xi;頻率賦給fbreak;//如果第2個(gè)鍵按下,將低音7的//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)case3:f=l_la;//如果第3個(gè)鍵按下,將低音6的頻率賦給fOutput_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;如果第4個(gè)鍵按下,將低case4:f=l_sao;//f5的頻率賦給音Output_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case5:f=sao;f5的頻率賦給中音//如果第5個(gè)鍵按下,將Output_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case6:f=fa;//如果第6個(gè)鍵按下,將f4的頻率賦給中音break;Output_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)如果第7case7:f=mi;//個(gè)將f中音3的頻率賦給轉(zhuǎn)去計(jì)算定時(shí)常數(shù)Output_Sound();//break;case8:f=re;//如果第8個(gè)鍵按下,將中Output_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case9:f=h_re;//如果第9f2的頻率賦給音轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;個(gè)鍵按下,將高//f1的頻率賦給將高音轉(zhuǎn)去計(jì)算定時(shí)常數(shù)Output_Sound();//break;如果第1111:f=xi;//個(gè)鍵按下,將f的頻率賦給7中音轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;//如果第12case12:f=la;//個(gè)鍵按下,將中f的頻率賦給音6轉(zhuǎn)去計(jì)算定時(shí)常數(shù)Output_Sound();//break;個(gè)鍵按下,將13如果第case13:f=h_la;//fOutput_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case14:f=h_sao;//如果第14個(gè)鍵按下,將高音5的頻率賦給fOutput_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case15:f=h_fa;//如果第15個(gè)鍵按下,將高音4的頻率賦給fOutput_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;case16:f=h_mi;//如果第16個(gè)鍵按下,將高音3的頻率賦給fOutput_Sound();//轉(zhuǎn)去計(jì)算定時(shí)常數(shù)break;}}}/**************************************************************函數(shù)功能:定時(shí)器引腳輸出音頻方波P3.7T0的中斷服務(wù)子程序,使**************************************************************/voidTime0_serve(void)interrupt1using1{賦初值方法初值方法//將P3.7引腳取反,輸出音頻方波}/**************************************************************函數(shù)功能:定時(shí)器T1的中斷服務(wù)子程序,進(jìn)行鍵盤掃描,判斷鍵位**************************************************************/voidtime1_serve(void)interrupt3using2//定時(shí)器T1的中{置為高電平“1”if((P1&0xf0)!=0xf0){delay20ms();if((P1&0xf0)!=0xf0){//關(guān)閉定時(shí)器T0//延時(shí)一段時(shí)間、軟件消抖//確實(shí)有鍵按下低電平“0”keyval=1;線//如果檢測(cè)到接P1.4引腳的列線為//可判斷是S1鍵被按下//如果檢測(cè)到接P1.5引腳的列為低電平“0”keyval=2;//可判斷是S2鍵被按下如果檢測(cè)到接P1.6引腳的列線if(P16==0)//0”為低電平“可判斷是S3鍵被按下keyval=3;//如果檢測(cè)到接if(P17==0)//P1.7引腳的列線為低電平“0”可判斷是S4keyval=4;//鍵被按下如果檢測(cè)到接”低電平“0鍵被按下可判斷是keyval=5;//S5引腳的列線如果檢測(cè)到接if(P15==0)//P1.50為低電平“”鍵被按下keyval=6;//可判斷是S6引腳的列線如果檢測(cè)到接if(P16==0)//線為低電平“0”keyval=8;//如果檢測(cè)到接P1.7引腳的列//可判斷是S8鍵被按下if(P14==0)//如果檢測(cè)到接P1.4引腳的列線為低電平“0”可判斷是S9鍵被按下keyval=9;//如果檢測(cè)到接P1.5if(P15==0)//引腳的列線為被按下如果檢測(cè)到接if(P16==0)//P1.6引腳的列線為0”低電平“可判斷是keyval=11;被按下如果檢測(cè)到接P1.7if(P17==0)//引腳的列線為低電平“0”可判斷是S12
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育機(jī)構(gòu)教師人力資源派遣合同
- 二零二五年度個(gè)人手車交易綠色環(huán)保認(rèn)證協(xié)議
- 二零二五年度交通事故車輛損失評(píng)估及自行協(xié)商協(xié)議書
- 2025年度美甲店線上線下融合推廣合作協(xié)議
- 2025年度高新技術(shù)產(chǎn)業(yè)掛名股東投資協(xié)議書
- 二零二五年度城市核心區(qū)租賃住宅及子女入學(xué)協(xié)議
- 二零二五年度專業(yè)倉(cāng)儲(chǔ)物流停車場(chǎng)租賃合作協(xié)議
- 2025年度班組勞務(wù)分包合同終止及清算協(xié)議
- 二零二五年度勞動(dòng)合同終止證明書模板與案例分析
- 2025年度電商代運(yùn)營(yíng)服務(wù)與品牌形象塑造合同
- 山東省《山東省仿古建筑工程消耗量定額》交底培訓(xùn)資料
- 語(yǔ)法大全之一般現(xiàn)在時(shí)動(dòng)詞三單變化練習(xí)題-(答案)
- 骨科疾病臨床診療指南
- 魯迅《祝?!?公開課)省公開課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)
- 2024年長(zhǎng)江工程職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- T∕CACM 1075-2018 中醫(yī)治未病技術(shù)操作規(guī)范 艾灸
- 宣傳視頻拍攝服務(wù) 投標(biāo)方案(技術(shù)方案)
- 竹簡(jiǎn)制作工藝
- 比例的意義公開課省公開課一等獎(jiǎng)全國(guó)示范課微課金獎(jiǎng)?wù)n件
- 倉(cāng)庫(kù)管理員培訓(xùn)考試試題-含答案-
- 水庫(kù)巡查方案
評(píng)論
0/150
提交評(píng)論