版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機設(shè)計與制作實訓(xùn)報告題目:電子琴系別:xx系班級:xx班姓名:xxx學(xué)號:123456789指導(dǎo)老師:xxx實訓(xùn)時間:一周x年x月xx日1、實訓(xùn)目的:熟悉單片機使用方法及領(lǐng)域,軟硬件結(jié)合掌握單片機綜合應(yīng)用糸統(tǒng)設(shè)計和調(diào)試的方法,2、設(shè)計要求:電子琴有九個按鍵,其中有八個按鍵分別對應(yīng)八個樂譜中的基本音符,第九個按鍵為自動播放按鍵,當按下此鍵即自動播放歌曲直到播放歌曲直到歌曲結(jié)束或按下音符鍵即停止播放音樂。3、開發(fā)環(huán)境及簡介:系統(tǒng)概述KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。4、實訓(xùn)器件:1.AT89C511個2.按鍵9個3.PNP三極管1個4.4.7K電阻1個5.10k電阻1個6.無源蜂鳴器1個7.電解電容1個8.30pF磁片電容2個9.晶振1個4.1主要元器件簡介(1)AT89C51單片機AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。主要特性:與MCS-51兼容;4K字節(jié)可編程閃爍存儲器;壽命:1000寫/擦循環(huán);數(shù)據(jù)保留時間:10年;全靜態(tài)工作:0Hz-24MHz;三級程序存儲器鎖定;128×8位內(nèi)部RAM;32可編程I/O線;兩個16位定時器/計數(shù)器;5個中斷源;可編程串行通道;低功耗的閑置和掉電模式;片內(nèi)振蕩器和時鐘電路。蜂鳴器蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。電壓式蜂鳴器壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。2.電磁式蜂鳴器電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。(3)多諧振蕩器多諧振蕩器由晶體管或集成電路構(gòu)成。當接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。5、設(shè)計原理:通過單片機實現(xiàn)電子琴演奏實質(zhì)就是將不同按鍵和特定頻率的方波信號對應(yīng)起來,以方波信號驅(qū)動蜂鳴器發(fā)出樂音,樂音實質(zhì)是固有頻率的信號,在音樂理論中,把一組音按音調(diào)高低依次排列起來就成為音階,也就是1234567和高音1。為了發(fā)出某一特定頻率的樂音,可以控制I/O接口產(chǎn)生該頻率的方波信號經(jīng)三極管放大信號后發(fā)出該樂音。對于方波的產(chǎn)生可以使用單片機的一個定時,產(chǎn)生溢出中斷,中斷發(fā)生時將輸出引腳的電平取反,然后重新載入計數(shù)器的計數(shù)初值。6、設(shè)計思路:6.1實訓(xùn)原理圖:開始6.3程序流程圖開始音符樂譜編碼音符樂譜編碼初始化初始化音符鍵有按下? N音符鍵有按下?關(guān)閉T0定時器判斷鍵值Y關(guān)閉T0定時器判斷鍵值T0定時器賦初值T0定時器賦初值開啟T0定時器開啟T0定時器中斷P10取反中斷P10取反音樂鍵有按下? N音樂鍵有按下?a值是否<100? Ya值是否<100? N音符鍵是否按下? Y音符鍵是否按下?N Y給T1定時器賦值給T1定時器賦值開啟T1定時器開啟T1定時器中斷取反P10中斷取反P10延時節(jié)拍時長延時節(jié)拍時長6.2軟件程序://電子琴+歌曲#include<reg51.h>#defineucharunsignedcharsbitP10=P1^0;//蜂鳴器接口sbitP30=P3^0;//模式轉(zhuǎn)換端口uchartimer0h,timer0l,time;//T1定時器高八位,低八位初值;//音階頻率表高八位codeucharFH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,//低音0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//中音1,2,3,4,5,6,7,8,1(高)0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//高音0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,//超高音};//音階頻率表低八位codeucharFL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,//低音0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//中音1,2,3,4,5,6,7,8,1(高)0xEE,0x44,0x6B,0xB4,0xF4,0x2D,//高音0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,//超高音};//世上只有媽媽好數(shù)據(jù)表codeucharsszymmh[]={ 6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0};unsignedchark1,k2;//T0定時器高八位,低八位初值ucharkeymode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//鍵模voiddelay(unsignedchartime);//延時子函數(shù)voidkeyscan();//鍵值查詢函數(shù)voidgequ();//歌曲處理函數(shù)//**************************************************************voidmain(void){TMOD=0x11;//初始化EA=1;ET0=1; ET1=1; IT0=1; EX0=1;TH0=k1;TL0=k2;while(1) {keyscan(); if(P30==0)//當鍵按下后播放歌曲 gequ();} }//**************************************************************voidkeyscan()//鍵值查詢函數(shù){ inti; P2=0xff; if(P2!=0xff){ for(i=0;i<8;i++) { while(P2==keymode[i]) { k1=FH[i+7];//鍵音為中音中音時的計數(shù)初值 k2=FL[i+7]; TR0=1;//當有鍵按下開定時器T0 }}} elseTR0=0;//無鍵按下等待按鍵按下 if(i==8){i=0;TR0=0;}//當執(zhí)行一次無按鍵按下時置零}//**************************************************************voiddelay(uchart) //延時函數(shù){ uchart1; unsignedlongt2; for(t1=0;t1<t;t1++) { for(t2=0;t2<8000;t2++); } TR1=0;//計時到關(guān)閉T1定時器}//**************************************************************voidgequ()//歌曲處理函數(shù){ uchara=0; uchars;while(a<100){ if(P2!=0XFF)break; //當歌曲播放時有鍵按下跳出播放執(zhí)行鍵音 s=sszymmh[a]+7*sszymmh[a+1]-1; timer0h=FH[s]; timer0l=FL[s]; time=sszymmh[a+2]; a=a+3;//每執(zhí)行該一個音符歌曲數(shù)據(jù)表跳過三個數(shù)據(jù)TH1=timer0h; TL1=timer0l; TR1=1; delay(time); }}//**************************************************************voidtime0()interrupt1//定時器T0中斷函數(shù){ P10=!P10;TH0=k1;//重新裝T0計數(shù)初值TL0=k2;}//**************************************************************voidt1int()interrupt3 //定時器T1中斷函數(shù){ TR1=0; P10=!P10; TH1=timer0h; TL1=timer0l; TR1=1;} 7、設(shè)計總結(jié)通過這一個星期的單片機實訓(xùn),我收獲了很多關(guān)于單片機的知識。這次課程設(shè)計使我對很多東西有了更深刻的認識??偨Y(jié)如下:單片機的基礎(chǔ)知識要熟練掌握,并且要進一步加強把理論轉(zhuǎn)化為實際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)貿(mào)市場改造施工組織設(shè)計方案
- 吊車設(shè)備維護保養(yǎng)方案
- 城市綠地磚砌排水溝施工方案
- 紅十字會博愛周活動方案
- 電力行業(yè)應(yīng)急信息管理指揮設(shè)計方案
- 礦山皮帶機安裝施工方案
- 酒店入住客人核酸檢測方案
- 大型活動副食品保障方案
- 心理學(xué)研究實驗室耗材方案
- 數(shù)字營銷特許經(jīng)營項目交接方案
- 技術(shù)顧問聘書(通用7篇)
- 穿無菌衣戴無菌手套(課堂)課件
- 胃早癌的簡述課件
- 毛細管電泳檢測糖化血紅蛋白課件
- 核心素養(yǎng)下的道德與法治課教學(xué)課件
- 中學(xué)生良好學(xué)習(xí)習(xí)慣養(yǎng)成教育課件
- 漢語普通話前后鼻音區(qū)分考試題庫(200題版)
- 四年級上冊語文老師家長會
- 12-14mm帶壓開孔器操作說明書
- 初中語文 九年級 君子自強不息 練習(xí)
- 安全培訓(xùn)教育計劃表模板范本
評論
0/150
提交評論