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