




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
武 漢 城 市 職 業(yè) 學 院2009級科學教育專業(yè)AVR電子實踐制作作品報告2011年6月28日項目名稱:多首電子音樂選播小組成員及分工:胡婷: 主要負責編寫報告書,電路板設計,輔助protues仿真。焊接電路板。柳思思:負責實驗可行性分析及調(diào)試,編寫C語言程序編程,protues仿真,焊接電路板。溫小曼:負責電路的可行性及調(diào)試,組織小組成員按進度工作,幫助焊接電路板。彭蕓: 購買主要元器件及后期缺失元器件的選購,賬務支出清單核算,幫助焊接電路板。一、 項目概述1、 本項目核心部分為單片機、條形LED和蜂鳴器,其主要功能為單片機編程,實現(xiàn)單片機控制LED發(fā)光及蜂鳴器發(fā)聲。2、 本作品單片機內(nèi)置了六首自定義的電子音樂,通過中斷例程來切換音樂和控制音樂的播放與停止。3、 本作品的條形LED部分隨著音樂調(diào)子的增高而放光的LED數(shù)目增加。二、功能介紹本作品的主要功能為單片機控制條形LED和蜂鳴器,利用中斷例程控制切換播放下一音樂,實現(xiàn)電子音樂的選播。三、 系統(tǒng)框架排針開關(guān)蜂鳴器單片機電阻發(fā)光管電源按鍵四、 實物圖五、 軟硬件模塊劃分 軟件部分1、 單片機上程序編程,發(fā)出的命令到達條形LED和蜂鳴器。2、 按鍵控制程序,通過按鍵可以控制LED發(fā)光個數(shù)以及蜂鳴器的發(fā)聲。 硬件部分1、單片機控制部位是本作品的主要部位,主要是ATMEGA單片機及其控制部分。2、條形LED部分,根據(jù)音調(diào)的不同,顯示不同個數(shù)的LED。3、蜂鳴器部分,根據(jù)程序,發(fā)出不同的音調(diào)或音樂。4、按鍵部分,通過控制按鍵,可以控制多首音樂的選播和啟停。六、PROTEUS仿真電路七、軟件設計(核心代碼)/-/ 名稱: 多首電子音樂的選播/-/ 說明: 本例運行時,每次按下K1將切換播放下一首電子音樂,對應的/ 的LED會進行閃爍,音調(diào)越高,閃爍燈越高,音調(diào)越低,閃爍燈越低./-#define F_CPU 1000000UL#include #include #include #define INT8U unsigned char#define INT16U unsigned int/蜂鳴器#define BEEP() PORTB = _BV(PB0)/音符延時表,它們分別對應于015號音符的輸出頻率const INT16U Tone_Delay_Table = 64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178,;/第一段(Tone為音符,Time為節(jié)拍)const INT8U Music2_Tone = 10,8,10,13,11,13,10,10,6,7,8,7,6,7,10,8,10,13,12,11,13,10,10,7,8,9,5,6,11,13,13,12,11,12,13,11,12,13,11,11,10,8,6,7,10,8,10,13,12,11,13,10,10,7,8,9,5,6,0xFF ; const INT8U Music2_Time = 2,1,1,4,2,2,4,2,1,1,2,1,1,6,2,1,1,3,1,2,2,4,2,1,1,3,1,6,2,2,4,2,1,1,4,1,1,1,1,1,1,1,1,6,2,1,1,3,1,1,2,2,1,2,1,1,3,1,6,0xFF ; /第二段const INT8U Music1_Tone = 6,6,6,8,10,10,10,10,11,11,11,13,10,9,9,9,11,8,8,8,10,7,7,7,7,10,10,6,6,6,8,10,10,10,10,11,11,11,13,10,9,9,9,11,8,8,8,10,7,7,7,8,6,0xFF ; const INT8U Music1_Time =1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,3,0xFF;/第三段 const INT8U Music3_Tone =1,3,6,6,3,2,1,1,1,1,2,3,4,3,1,3,4,6,3,2,1,3,3,4,5,5,6,0xFF; const INT8U Music3_Time =2,1,3,2,1,3,1,1,1,1,1,1,3,3,2,1,3,2,1,3,2,1,1,1,1,3,3,0xFF;/第四段const INT8U Music4_Tone =11,10,11,9,10,10,9,10,11,10,9,8,6,2,4,5,5,5,5,8,7,6,2,6,5,6,2,5,5,4,3,2,2,9,8,9,5,6,5,4,5,6,11,10,9,10,6,0xFF;const INT8U Music4_Time =2,2,4,2,2,2,4,2,2,1,2,2,4,2,2,4,2,2,2,2,2,8,4,2,2,4,4,2,1,2,2,4,4,2,2,4,4,2,1,2,2,4,4,2,2,4,4,0xFF;/第五段const INT8U Music5_Tone =1,4,6,1,4,10,6,1,1,9,10,4,2,2,1,1,6,5,4,4,4,6,5,4,4,4,6,5,5,4,2,6,5,5,1,4,6,1,4,10,6,1,1,9,10,4,2,2,1,1,7,6,0xFF;const INT8U Music5_Time =2,4,2,4,2,4,2,4,2,4,2,4,2,2,2,4,2,2,4,4,4,2,2,4,2,4,2,2,4,2,4,2,2,4,2,2,4,2,4,2,4,2,4,2,2,4,21,4,2,2,2,4,2,2,0xFF;/第六段const INT8U Music6_Tone = 9,7,6,7,3,5,6,14,3,2,2,3,5,6,6,6,6,9,3,3,9,9,6,9,11,10,10,0xFF;const INT8U Music6_Time =4,4,2,2,4,4,2,4,2,2,4,4,2,4,2,2,4,2,2,4,4,2,4,4,4,4,4,4,0xFF;/音符與延時指針數(shù)組Volatile const INT8U * Music_Tone_Ptr=Music1_Tone,Music2_Tone,Music3_Tone,Music4_Tone,Music5_Tone,Music6_Tone, * Music_Time_Ptr=Music1_Time,Music2_Time,Music3_Time,Music4_Time,Music5_Time,Music6_Time;/音樂片段索引,音符索引volatile INT8U Music_Idx = 5, Tone_Idx = 0;/從當前數(shù)組中取音符的位置volatile INT8U i = 0;/暫??刂苬olatile enum bool FALSE = 0, TRUE = 1 Pause = TRUE;/-/ 主程序/-int main()DDRB=0xFF; /端口配置DDRC=0xFF;DDRA=0xFF; DDRD=(_BV(PD2)|_BV(PD3); /終端引腳設為輸入PORTC=0xFF; /LED初始時全部關(guān)閉PORTA=0xFF; PORTD=_BV(PD2)|_BV(PD3); /終端輸入引腳設為內(nèi)部上拉 TCCR1B=0x01; /T1預設分頻:1(未分頻)MCUCR=0x82; /INT0,INT1均為下降沿觸發(fā)GICR=_BV(INT0)|_BV(INT1); /INT0,INT1終端許可SREG=0x80; /開中斷while(1)/暫定控制if(Pause) _delay_ms(200);continue;/Tone_Idx是當前音樂片段中的第i個音符的序號(取值為015中的某一個)/它將用于獲取對應的延時,以便輸出對應的頻率Tone_Idx=Music_Tone_PtrMusic_Idxi;if(Tone_Idx=0xFF) _delay_ms(2000); /每段音樂播放結(jié)束后停頓一段時間i=0; /回到當前音樂片段的第0個音符continue; /繼續(xù)播放TIMSK=_BV(TOIE1); /啟動定時器溢出中斷,開始輸出當前音符/音符輸出時長(節(jié)拍)由各段音樂中Music6_Time數(shù)組中對應音符的延時值決定 _delay_ms(Music_Time_PtrMusic_IdxTone_Idx*200); TIMSK=0x00; /禁止定時器溢出中斷,停止當前音符輸出 i+; /取音符位置變量i遞增INT16U P=0xFFFF;INT16U C;C=(P8;/-/ T1定時器溢出中斷控制音符輸出/-ISR (TIMER1_OVF_vect)/如果遇到音樂片段結(jié)束標志則返回if(Tone_Idx=0xFF)return;/根據(jù)Tone_Delay_TableTone_Idx設置定時初值/該初值即決定了輸出的頻率TCNT1=Tone_Delay_TableTone_Idx;BEEP();/-/ 按鍵觸發(fā)INT0中斷,控制音樂段切換/-ISR (INT0_vect)TIMSK=0x00; /禁止定時器溢出中斷,音符輸出停止/切換到另一段音樂if(Music_Idx=5)Music_Idx=0;else Music_Idx+;/切換到另一段音樂后總是從第0個音符開始輸出i=0;_delay_ms(1000); /在開始另一段音樂輸出前暫停1SPause=FALSE; /暫停取消TIMSK=_BV(TOIE1); /允許定時器溢出中斷,音符輸出繼續(xù)/-/ 播放啟動/停止控制/-ISR (INT1_vect)Pause=! Pause;if(Pause)PORTC=0xFF; /如果停止則關(guān)閉所有的LEDTIMSK=0x00; /停止音符輸出else/允許定時器溢出中斷,輸出音符TIMSK=_BV(TOIE1);八、元件清單09科教多首電子音樂選播序號元件名稱單價(元)數(shù)量金額(元)1TY809-D電路板21229012三極管0.220.43330歐姆電阻0.02200.44無源蜂鳴器0.721.4510位發(fā)光管3.52766mm按鍵0.230.674M晶振1118電容(22PF)0.120.29單片機座子0.410.410排針(40)0.510.511ATMEGA16161161210千歐姆電阻0.0110.01131.5V電池14414電池槽2.512.515開關(guān)11116底座0.54217630電烙鐵1511518松香111合計(元)55.41九、實訓過程中遇到的困難與挫折和實訓過后的收獲(一) 困難與挫折1、 在編程的過程中,我們經(jīng)過很長時間的調(diào)試以及老師的指導才編出我們想要的結(jié)果,耗時很長。2、 在焊錫的過程中,我們的作品出現(xiàn)了問題,但是又找不出問題的所在,以致大家的情緒以及意見很大。3、 在買作品材料時,我們所買的有的東西沒有買到,(比如1兆晶振沒找到而取用4兆的晶振),以至于我們要買一個替代品,從而我們要改程序以及了解這件物品的屬性。(二) 收獲1、 團體合作的力量應是凝聚的,是缺一不可的。2、 團體成員對工作的態(tài)度是齊心協(xié)力的,有錯誤找問題,不懂地方查相關(guān)資料以及請教老師。3、 挫折是難以避免的,我們要學會把它踩在腳下,也許會離成功更近一步。4、 粗心大意,毛毛躁躁,考慮不全是我們學習前進的障礙,學會克服改正它。十、小組成員自我感言彭 蕓:不聞不若聞之,聞之不若見之,見之不若知之,知之不若行之溫小曼:有志者,事竟成。胡 婷:紙上得來終覺淺,得知此事要躬行。柳思思:實踐是檢驗真理的唯一標準。十一、自我評估單片機實訓課程,一個讓我們對實訓課程有了新的定義的名詞,在大學的學習過程中,我們所接觸的實訓課大多逃脫不了關(guān)乎花草樹木,山川石林,蟲魚鳥獸。單片機實訓課,它給我們帶來了更多的挑戰(zhàn),這是我們第一次接觸在動手操作方面比較獨到的實訓課,通過短暫的實訓過程,我們深刻明白了理論和實踐的差別,“不聞不若聞之,聞之不若見之,見之不若知之,知之不若行之”,而我們大多數(shù)人在“知之”這一階段就止住腳步了,所以很多人抱怨“我就只差一步了”,單片機實訓課程給我們的警鐘不僅是理論知識有多重要,而是理論與實踐相結(jié)合有多重要!在設計編程的初級階段,由于我們對一些理論性的東西掌握的不足,在程序的調(diào)試過程以及在焊接的過程中對引腳的模糊感,如何聯(lián)線看起來更美觀,焊接點是否存在虛焊的檢查等等費了很大的功夫,雖然實踐后的成品存在或多或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五育課題申報書模板
- 德育教改課題申報書
- 體育跨學科課題申報書
- 小學課題申報評審書范文
- 地理教學課題申報書
- 代簽離婚協(xié)議合同范例
- 劣質(zhì)柴油采購合同范本
- 傳媒經(jīng)紀人合同范本
- 吊車租賃機械合同范例
- 農(nóng)村油漆購買合同范本
- 吉美版四年級綜合實踐活動下冊全冊表格簡約式教案教學設計
- 通信工程監(jiān)理實施細則
- 電力變壓器監(jiān)造規(guī)范(完整版)資料
- 精品課程:運動訓練學(北京體育大學)
- 程振賢過失致人死亡案辯護意見 第 賽隊
- 改革開放30年文化體制改革評述
- 十八項護理核心制度培訓課件
- GB/T 7631.5-1989潤滑劑和有關(guān)產(chǎn)品(L類)的分類第5部分:M組(金屬加工)
- GB/T 41326-2022六氟丁二烯
- 注塑模具分類及結(jié)構(gòu)組成
- GB/T 14002-2008勞動定員定額術(shù)語
評論
0/150
提交評論