《單片機課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《單片機課程設(shè)計(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單片機課程設(shè)計大慶石油學(xué)院課程設(shè)計課程單片課程設(shè)計題目簡易電子琴設(shè)計院系電氣信息工程學(xué)院測控系專業(yè)班級測控技術(shù)與儀器專業(yè)06-1班學(xué)生姓名劉潔學(xué)生學(xué)號060601240105指導(dǎo)教師曹廣華宋金波2009年7 月17 日大慶石油學(xué)院課程設(shè)計任務(wù)書課程單片機課程設(shè)計題目簡易電子琴設(shè)計專業(yè)測控技術(shù)與儀器姓名劉潔學(xué)號060601240105 一、任務(wù)設(shè)計一個基于AT89C51單片機的簡易電子琴。二、設(shè)計要求1 利用所給鍵盤的八個鍵,能夠發(fā)出8個不同的音調(diào),并且要求按下按鍵發(fā)聲,松開延時一段時間停止,中間再按別的鍵則發(fā)另一音調(diào)的聲音。2 當(dāng)系統(tǒng)掃描到鍵盤上有鍵被按下,則快速檢測出是哪一個鍵被按下,然后單
2、片機的定時器被啟動,發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出相應(yīng)的音調(diào)。如果在前一個按下的鍵發(fā)聲的同時有另一個鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音程序,發(fā)出后按的鍵的音。三、參考資料1 劉國鈞,陳紹業(yè),王鳳翥.圖書館目錄M.北京:高等教育出版社,1957.15-18.2 劉潤華,劉立山.模擬電子技術(shù)J.山東:石油大學(xué)出版社,2003.3 蘇成富.彩燈控制器J.北京:電機電器技術(shù),2000,(01).4 祝富林.音樂彩燈電路CS9482J.北京:電子世界,1995,(12).5 彭介華.電子技術(shù)課程設(shè)計指導(dǎo)J.北京:高等教育出版社,1997.完
3、成期限 2009.7.6至2009.7.17指導(dǎo)教師曹廣華宋金波專業(yè)負(fù)責(zé)人曹廣華2009年 7 月 6 日目錄1 引言 (3)1.1電子琴概述 (3)1.2電子琴技術(shù)狀況 (3)1.3本設(shè)計任務(wù) (4)2 總體方案論證與設(shè)計 (5)2.1 播放模塊 (5)2.2按鍵控制模塊 (5)2.3總體硬件組成框圖 (5)3 系統(tǒng)硬件設(shè)計 (6)3.1 中心控制模塊的硬件設(shè)計 (6)3.2 播放模塊的硬件設(shè)計 (6)3.3 按鍵控制模塊的硬件設(shè)計 (6)4 系統(tǒng)的軟件設(shè)計 (8)4.1 下位機軟件流程 (8)4.2上位機軟件 (9)5 系統(tǒng)調(diào)試與測試結(jié)果分析 (11)5.1 使用的儀器儀表 (11)5.2
4、 系統(tǒng)調(diào)試 (11)5.3 測試結(jié)果 (11)總結(jié) (12)參考文獻 (13)附錄1 (14)附錄2 (16)課程設(shè)計成績評價表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 引言在電子音樂領(lǐng)域,自從20世紀(jì)末期MIDI(樂器數(shù)字化接口)推出和逐步規(guī)范化后,各種樂器及眾多數(shù)碼音視頻產(chǎn)品中采用MIDI技術(shù)已逐漸成為一種潮流。但是當(dāng)前各廠商的電子琴產(chǎn)品通常使用自己設(shè)計的專用音源,并且軟硬件均不對外公開,阻礙了MIDI技術(shù)的交流。作者在開發(fā)基于MIDI模塊的音樂發(fā)生器的過程中,進行了用單片機控制通用MIDI音源模
5、塊的相關(guān)功能制作電子琴的實踐,制作出具有8個按鍵的 MIDI電子琴,該琴支持單音和復(fù)音彈奏,單片機以標(biāo)準(zhǔn)的MIDI波特率傳送信息,通過串口連接蜂鳴器,從而獲得優(yōu)美的樂音。1.1電子琴概述鍵盤樂器,采用半導(dǎo)體集成電路,對樂音信號進行放大,通過揚聲器產(chǎn)生音響。發(fā)音音量可以自由調(diào)節(jié)。音域較寬,和聲豐富,甚至可以演奏出一個管弦樂隊的效果,表現(xiàn)力極其豐富。它還可模仿多種音色,甚至可以奏出常規(guī)樂器所無法發(fā)出的聲音(如人聲,風(fēng)雨聲等)。另外,電子琴在獨奏時,還可隨意配上類似打擊樂音響的節(jié)拍伴奏,適合于演奏節(jié)奏性較強的現(xiàn)代音樂。另外,電子琴還安裝有混響、回聲、延長音、震音和顫音等多項功能裝置,表達各種情緒時運
6、用自如。電子琴是電聲樂隊的中堅力量,常用于獨奏主旋律并伴以豐富的和聲。還常作為獨奏樂器出現(xiàn),具有鮮明時代特色。但電子琴的局限性也十分明顯:旋律與和聲缺乏音量變化,過于協(xié)和、單一;在模仿各類管、弦樂器時,音色還不夠逼真,模仿提琴類樂器的音色時,失真度更大,還需要不斷改進。電子琴的演奏有較大一部分是通過自動和弦伴奏來配合完成的,在音樂中和弦的連接推動了旋律地進行,不同的和聲連接,形成了不同的音樂色彩。1.2電子琴技術(shù)狀況本次設(shè)計提出了用AT89C51單片機為核心控制元件,設(shè)計一個簡易的電子琴. 本方案以AT89C51單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊在主控模塊上設(shè)有16個按
7、鍵和揚聲器.根據(jù)使用者的操作隨意彈奏想要表達的音樂。一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號。1.3本設(shè)計任務(wù)利用所給鍵盤的1,2,3,4,5,6,7,8八個鍵,能夠發(fā)出8個不同的音調(diào),并且要求按下按鍵發(fā)聲,松開延時一段時間停止,中間再按別的鍵則發(fā)另一音調(diào)的聲音。當(dāng)系統(tǒng)掃描到鍵盤上有鍵被按下,則快速檢測出是哪一個鍵被按下,然后單片機的定時器被啟動,發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出相
8、應(yīng)的音調(diào)。如果在前一個按下的鍵發(fā)聲的同時有另一個鍵被按下,則啟用中斷系統(tǒng),前面鍵的發(fā)音停止,轉(zhuǎn)到后按的鍵的發(fā)音程序,發(fā)出后按的鍵的音。2 總體方案論證與設(shè)計本系統(tǒng)采用單片機AT89C51為電子琴的控制核心,系統(tǒng)主要包括播放模塊、按鍵控制模塊。下面對各模塊的設(shè)計逐一進行論證比較。2.1 播放模塊播放模塊是喇叭構(gòu)成。它幾乎不存在噪聲,音響效果較好。而且由于所需驅(qū)動功率較小,且價格低廉,所以,被廣泛應(yīng)用。2.2按鍵控制模塊電子琴設(shè)有8個按鍵,其中7個作為音符輸入,另外1個作為模式轉(zhuǎn)換按鍵,實現(xiàn)用戶自彈作曲。7個按鍵分別代表7個音符,包括中音段的全部音符。通過軟硬件設(shè)計,模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷
9、使程序跳轉(zhuǎn),實現(xiàn)模式轉(zhuǎn)換,啟動電子琴。然后通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對應(yīng)的程序人口,實現(xiàn)自編歌曲。當(dāng)需要取消電子琴編曲功能時,再次按下模式轉(zhuǎn)換按鍵引起外部中斷即可退出電子琴功能而返回原來按鍵播放處。2.3總體硬件組成框圖圖2-1 總體硬件組成框圖3 系統(tǒng)硬件設(shè)計為使該模塊化電子琴控制系統(tǒng)具有更加方便和靈活性,我們對系統(tǒng)的硬件做了精心設(shè)計。硬件電路包括中心控制模塊、播放模塊、按鍵控制模塊三大模塊。3.1 中心控制模塊的硬件設(shè)計本次設(shè)計中中心控制模塊是采用AT89C51單片機來控制整個系統(tǒng)。其中P1口作為輸入口,連接蜂鳴器驅(qū)動電路,而P2口連接按鍵控制電路,從而實現(xiàn)播放
10、音樂的功能。3.2 播放模塊的硬件設(shè)計如下圖所示,播放模塊其實就是喇叭,它接到P1.0口上當(dāng)有按鍵按下時,它就會發(fā)出聲音.圖 3-1 播放模塊硬件連接圖3.3 按鍵控制模塊的硬件設(shè)計在P.2口十連有8個按鍵并加有8個拉電阻.它們一端接5伏電源,一端接地.在仿真時,只要有一個鍵被按下,并被單片機掃描到,則會使播放器發(fā)出聲音.圖 3-2按鍵控制連接圖圖3-2按鍵控制電路圖4 系統(tǒng)的軟件設(shè)計軟件是該電子琴控制系統(tǒng)的重要組成部分,在系統(tǒng)的軟件設(shè)計中我們也才用了模塊化設(shè)計,將系統(tǒng)的各部分功能編寫成子模塊的形式,這樣增強了系統(tǒng)軟件的可讀性和可移植性。4.1 下位機軟件流程本系統(tǒng)中下位機(單片機89C51)
11、的主要功能就是實現(xiàn)音樂播放功能。其主程序流程如圖4-1所示。圖4-1 軟件程序流程圖4.2上位機軟件本系統(tǒng)的上位機軟件主要是編輯電子琴播放狀態(tài)的內(nèi)容,在設(shè)計中采用匯編語言編寫了電子琴控制系統(tǒng)控制和播放內(nèi)容的程序。ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 0100HMAIN:MOV SP,#60H ;初始化堆棧指針MOV 30H,#00 ;定時器初值清零MOV 31H,#00MOV P1,#0FFH ;設(shè)置P1口為輸入模式MOV TMOD,#01H ;設(shè)置定時器0為工作模式1SETB ET0 ;開定時器0中斷SETB EA ;開總中斷CLR TR0 ;關(guān)
12、閉定時器0START:MOV R0, P2CJNE R0,#0FFH,KEY1 ;鍵盤掃描CLR TR0SJMP STARTKEY1:CJNE R0,#0FEH,KEY2 ;K1鍵按下MOV 30H,#0FBH ;設(shè)置音階1MOV 31H,#0E9HLJMP SET_TIMERKEY2:CJNE R0,#0FDH,KEY3 ;K2鍵按下MOV 30H,#0FCH ;設(shè)置音階2MOV 31H,#5CHLJMP SET_TIMERKEY3:CJNE R0,#0FBH,KEY4 ;K3鍵按下MOV 30H,#0FCH ;設(shè)置音階3MOV 31H,#0C1HLJMP SET_TIMERKEY4:CJN
13、E R0,#0F7H,KEY5 ;K4鍵按下MOV 30H,#0FCH ;設(shè)置音階4MOV 31H,#0EFHLJMP SET_TIMERKEY5:CJNE R0,#0EFH,KEY6 ;K5鍵按下MOV 30H,#0FDH ;設(shè)置音階5MOV 31H,#045HLJMP SET_TIMERKEY6:CJNE R0,#0DFH,KEY7 ;K6鍵按下MOV 30H,#0FDH ;設(shè)置音階6MOV 31H,#92HLJMP SET_TIMERKEY7:CJNE R0,#0BFH,KEY8 ;K7鍵按下MOV 30H,#0FDH ;設(shè)置音階7MOV 31H,#0D6HLJMP SET_TIMERK
14、EY8:CJNE R0,#7FH,NOKEY ;K8按下MOV 30H,#0FDH ;設(shè)置音階8MOV 31H,#0FBHSET_TIMER:SETB TR0 ;發(fā)聲SJMP STARTNOKEY:CLR TR0 ;無鍵按下SJMP STARTINT_T0: ;T0中斷服務(wù)程序MOV TH0,30H ;定時器賦初值MOV TL0,31HCPL P1.0 ;輸出方波RETIEND5 系統(tǒng)調(diào)試與測試結(jié)果分析5.1 使用的儀器儀表單片機仿真器KEILC蜂鳴器 LS15.2 系統(tǒng)調(diào)試根據(jù)系統(tǒng)設(shè)計方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計中采用模塊設(shè)計法,所以方便對
15、各電路模塊功能進行逐級測試:中心控制模塊的調(diào)試,音樂播放模塊的調(diào)試,按鍵控制模塊的調(diào)試等,最后將各模塊組合后進行整體測試。5.2.1硬件調(diào)試對各個模塊的功能進行調(diào)試,主要調(diào)試各模塊能否實現(xiàn)指定的功能。5.2.2軟件調(diào)試軟件調(diào)試采用單片機仿真器KEILC及微機,將編好的程序進行調(diào)試,主要是檢查語法錯誤。5.2.3硬件軟件聯(lián)調(diào)將調(diào)試好的硬件和軟件進行聯(lián)調(diào),主要調(diào)試系統(tǒng)的實現(xiàn)功能。5.3 測試結(jié)果此次系統(tǒng)設(shè)計結(jié)果較好,分別播動8個按鍵會發(fā)出8種高低不同的聲音,如果送入音樂程序,則會播放歌曲??偨Y(jié)經(jīng)過兩周的忙碌,我的電子琴終于仿真成功.雖然失敗了幾次,但經(jīng)過老師對硬件連接圖的糾正,自己又調(diào)整.了程序最
16、后終于方仿真成功.心情很激動,一方面:覺得很有成就感;另一方面:收獲很大,:不但鍛煉了編程的能力,而且通過編程對硬件的整個流程了解了。在仿真過程中,我犯了兩個低級錯誤:一個是用了沒有模型的元件,另一個是喇叭可以不用驅(qū)動就能發(fā)出聲音。經(jīng)老師提醒,我改正了連接圖。結(jié)果成功了。用單片機控制播放模塊和按鍵控制模塊制作出的電子琴,結(jié)構(gòu)簡單,可靠性高,并且價格低廉,具有實用的價值。這種電子琴能夠支持單音和復(fù)音彈奏,如果與高品質(zhì)的音源芯片連接,音質(zhì)更可與高檔電子琴相媲美。參考文獻1 張毅剛,彭喜元。單片機原理與應(yīng)用M(十)北京:高等教育出版社,2007.102 張毅剛。MCS-51單片機應(yīng)用設(shè)計M。哈爾濱。
17、哈爾濱工業(yè)大學(xué)出版,19993 李廣弟。單片機基礎(chǔ)M。北京:北京航天航空大學(xué)出版社,20014 楊振江。智能儀器與數(shù)據(jù)采集系統(tǒng)的新器件及應(yīng)用M。西安:西安電子科技大學(xué)出版社,20015 彭介華.電子技術(shù)課程設(shè)計指導(dǎo)J.北京:高等教育出版社,1997.附錄1 源程序ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 0100HMAIN:MOV SP,#60H ;初始化堆棧指針MOV 30H,#00 ;定時器初值清零MOV 31H,#00MOV P1,#0FFH ;設(shè)置P1口為輸入模式MOV TMOD,#01H ;設(shè)置定時器0為工作模式1SETB ET0 ;開定時器
18、0中斷SETB EA ;開總中斷CLR TR0 ;關(guān)閉定時器0START:MOV R0, P2CJNE R0,#0FFH,KEY1 ;鍵盤掃描CLR TR0SJMP STARTKEY1:CJNE R0,#0FEH,KEY2 ;K1鍵按下MOV 30H,#0FBH ;設(shè)置音階1MOV 31H,#0E9HLJMP SET_TIMERKEY2:CJNE R0,#0FDH,KEY3 ;K2鍵按下MOV 30H,#0FCH ;設(shè)置音階2MOV 31H,#5CHLJMP SET_TIMERKEY3:CJNE R0,#0FBH,KEY4 ;K3鍵按下MOV 30H,#0FCH ;設(shè)置音階3MOV 31H,#
19、0C1HLJMP SET_TIMERKEY4:CJNE R0,#0F7H,KEY5 ;K4鍵按下MOV 30H,#0FCH ;設(shè)置音階4MOV 31H,#0EFHLJMP SET_TIMERKEY5:CJNE R0,#0EFH,KEY6 ;K5鍵按下MOV 30H,#0FDH ;設(shè)置音階5MOV 31H,#045HLJMP SET_TIMERKEY6:CJNE R0,#0DFH,KEY7 ;K6鍵按下MOV 30H,#0FDH ;設(shè)置音階6MOV 31H,#92HLJMP SET_TIMERKEY7:CJNE R0,#0BFH,KEY8 ;K7鍵按下MOV 30H,#0FDH ;設(shè)置音階7MOV 31H,#0D6HLJMP SET_TIMERKEY8:CJNE R0,#7FH,NOKEY ;K8按下MOV 30H,#0FDH ;設(shè)置音階8MOV 31H,#0FBHSET_TIMER:SETB TR0 ;發(fā)聲SJMP STARTNOKEY:CLR TR0 ;無鍵按下SJMP STARTINT_T0: ;T0中斷服務(wù)程序MOV TH0,30H ;定時器賦初值MOV TL0,31HCPL P1.0 ;輸出方波RETIEND附錄2 電子琴仿真圖圖6-1 電子琴仿真電路圖大慶石油學(xué)院課程設(shè)計成績評價表指導(dǎo)教師:年月日