版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于單片機(jī)的電子琴制作課程設(shè)計(jì)</p><p><b> 設(shè)計(jì)指標(biāo)</b></p><p> 設(shè)計(jì)一個(gè)(4×4)的鍵盤,并將16個(gè)鍵設(shè)計(jì)成16個(gè)音;</p><p> 可彈奏想要表達(dá)的音樂;</p><p> 該電子琴包含1首示例音樂,接通電源可播放示例音樂。</p>
2、<p> 設(shè)計(jì)所用實(shí)驗(yàn)儀器和設(shè)備:單片機(jī)芯片、晶體振蕩器一個(gè)、電容電阻若干</p><p><b> 獨(dú)立開關(guān)十六個(gè)。</b></p><p> 設(shè)計(jì)原理 樂音實(shí)際上是有固定周期的信號(hào)。我用AT89C51的一個(gè)定時(shí)器(如T1)控制,在P3.4腳上輸出方波周期信號(hào),產(chǎn)生樂音。根據(jù)不同的按鍵,調(diào)節(jié)T1的溢出時(shí)間,可輸出不同頻率的樂音,這樣就做出了一臺(tái)
3、微型電子琴。其中根據(jù)行列式非編碼鍵盤工作原理設(shè)計(jì)一個(gè)(4*4)的鍵盤,當(dāng)按鍵按下經(jīng)過軟件的掃描電路進(jìn)行掃描掃到對(duì)應(yīng)的按鍵根據(jù)對(duì)應(yīng)的負(fù)值將頻率所對(duì)應(yīng)的負(fù)值放進(jìn)對(duì)應(yīng)寄存器警醒單片機(jī)p3.4引腳的頻率控制輸出,從而使不同按鍵按下中斷得到不同頻率的音樂?! ∶總€(gè)樂音的音高(頻率)是固定的,表1列出了一個(gè)8度以及其上下共16個(gè)音的音名、頻率及定時(shí)器T1初值對(duì)照(設(shè)晶體頻率為6MHz)。</p><p> 四、輸出音節(jié)與
4、單片機(jī)定時(shí)器輸出頻率關(guān)系表格如下:</p><p> 2硬件電路設(shè)計(jì) 微型電子琴的電原理圖見圖1,其中鍵盤可使用小按鍵,排成鋼琴鍵盤狀(鍵多時(shí)可分為幾排),圖中還增加了一只按鍵指示燈(D1)。</p><p><b> 圖1</b></p><p> 3軟件設(shè)計(jì) 軟件由初始化程序、主程序、定時(shí)器1中斷服務(wù)程序、鍵盤掃描程序和延時(shí)程
5、序組成。 (1)初始化程序如下: </p><p> TMR1L EQU 30H</p><p> TMR1H EQU 31H</p><p><b> ORG 0000H</b></p><p> SJMP MAIN</p><p> ORG
6、001BH</p><p> AJMP TMR1</p><p> ORG 0040H</p><p> MAIN: MOV TMOD,#10H ;T1方式1,軟件CONTROL</p><p><b> BEGIN:</b></p><p> MOV TCON,#00H
7、 ;關(guān)閉T1</p><p> MOV IE,#88H ;開T1中斷</p><p> MOV IP,#08H ;T1優(yōu)先</p><p> CLR P3.1 ;關(guān)揚(yáng)聲器</p><p> CLR P3.2 ;點(diǎn)亮燈</p><p> ACA
8、LL DELAY ;延時(shí)</p><p><b> 主程序框圖</b></p><p><b> 主程序 </b></p><p> MAIN PROGRAM</p><p> START:ACALL DELAY ;延時(shí)</p><p> A
9、CALL KEYSCA ;調(diào)用鍵盤掃描子程序</p><p> CJNE R4,#00H,PLAYKEY ;判斷有無按鍵按下</p><p> CLR TR1 ;沒有鍵按下關(guān)閉T1</p><p> SETB P3.2 ;無鍵按下熄滅指示燈</p><p> SJMPSTART ;
10、跳回開始位置PLAYKEY:CJNE R4,#20H,K0;有鍵按下由鍵值給TIMER1L和TIMER1H賦值 </p><p> MOV TMR1L,#06H ;低音7初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND </p><p> SOUND: SETB TR1
11、 ;開啟T1</p><p> CLR P3.2 ;點(diǎn)亮指示燈</p><p> AJMP START ;跳回開始</p><p> K0: CJNE R4,#30H,K1 </p><p> MOV TMR1L,#22H ;中音1初值</p><p> MOV
12、 TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K1: CJNE R4,#50H,K2 </p><p> MOV TMR1L,#3DH ;中音1初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND&
13、lt;/p><p> K2: CJNE R4,#90H,K3 </p><p> MOV TMR1L,#56H ;中音2初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K3: CJNE R4,#21H,K4
14、0; </p><p> MOV TMR1L,#6EH ;中音2初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K4: CJNE R4,#31H,K5 </p><p> MOV TMR1L,#85H ;中音3
15、初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K5: CJNE R4,#51H,K6 </p><p> MOV TMR1L,#9AH ;中音1初值</p><p> MOV TMR1H,#0FEH</p&
16、gt;<p> AJMP SOUND</p><p> K6: CJNE R4,#91H,K7 </p><p> MOV TMR1L,#0AEH ;中音4初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p>
17、; K7: CJNE R4,#23H,K8 </p><p> MOV TMR1L,#0C1H ;中音5初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K8: CJNE R4,#33H,K9</p><p> MOV
18、TMR1L,#0D3H ;中音#5初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K9: CJNE R4,#53H,K10 </p><p> MOV TMR1L,#0E4H ;中音6初值</p><p> MO
19、V TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K10: CJNE R4,#93H,K11 </p><p> MOV TMR1L,#0F4H ;中音#6初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP S
20、OUND</p><p> K11: CJNE R4,#27H,K12 </p><p> MOV TMR1L,#03H ;中音7初值</p><p> MOV TMR1H,#0FEH</p><p> AJMP SOUND</p><p> K12: CJNE R4,#37H,K13&
21、#160; </p><p> MOV TMR1L,#11H ;高音1初值</p><p> MOV TMR1H,#0FFH</p><p> AJMP SOUND</p><p> K13: CJNE R4,#57H,K114 </p><p> MOV TMR1L,#1FH
22、 ;高音2初值</p><p> MOV TMR1H,#0FFH</p><p> AJMP SOUND</p><p> K14: CJNE R4,#97H,K15 </p><p> MOV TMR1L,#02BH ;高音2初值</p><p> MOV TMR1H,#0F
23、FH</p><p> AJMP SOUND</p><p> K15: NOP</p><p> (3)定時(shí)器中斷服務(wù)程序框圖</p><p> 定時(shí)器中斷服務(wù)程序:</p><p> ??;TIMER1 INTERRUPTION SERVICE</p><p> TMR1:MO
24、V TL1,TMR1L ;將初值給T1</p><p> MOV TH1,TMR1H </p><p><b> CPL P3.4</b></p><p><b> RETI</b></p><p> (4) 鍵盤掃描程序框圖</p><p><b&g
25、t; 鍵盤掃描程序:</b></p><p> ??;KEY BOARD SCAN</p><p> KEYSCA: MOV R4,#00H ;初值(無按鍵)賦給R4</p><p> MOV P1,#0F0H ;全鍵盤掃描</p><p> MOV A ,P1 ;讀取掃描結(jié)果</p><
26、p> ANL,A,#0F0H ;屏蔽行信號(hào),取出列信號(hào)</p><p> CJNE A,#0F0H,PRSD1 ;判斷有無按鍵</p><p> SJMP DONE ;無按鍵退出</p><p> PRSD1: ACALL DELAY ;有按鍵延時(shí)后再掃描</p><p> MOV A,P1 ;讀取掃描結(jié)果&
27、lt;/p><p> ANL A,#0F0H ;屏蔽行信號(hào),取出列信號(hào)</p><p> CJNE A,#0F0H,PRSD2 ;判斷有無按鍵</p><p> SJMP DONE </p><p> PRSD2: MOV R2,#04H ;有按鍵逐行掃描</p><p> MOV R3,
28、#01H ;行初值</p><p> SCAN :MOV A ,R3 ;行初值送入A </p><p> CPL A ;形成行掃描信號(hào)</p><p> MOV P1,A ;輸出行掃描信號(hào)</p><p> MOV A,P1 ;讀取掃描結(jié)果</p><p> ANL A,#0F0H
29、 ;屏蔽行信號(hào),讀取列信號(hào)</p><p> CJNE A,#0F0H,FIND ;判斷有無按鍵</p><p> MOV A,R3 ;無按鍵繼續(xù)掃描,調(diào)整行信號(hào)</p><p> RL A ;調(diào)整行信號(hào)</p><p> MOV R3,A ;保存行信號(hào)</
30、p><p> DJNZ R2,SCAN ;判斷是否掃描玩4行</p><p> SJMP DONE ;掃描四行結(jié)束</p><p> FIND: CPL A ;找到按鍵計(jì)算鍵值</p><p> ADD A,R3 ;將行列值相加</p><p>
31、; MOV R4,A ;鍵值R4</p><p> DONE:RET ; 返回</p><p><b> ; DELAY</b></p><p> DELAY: MOV R5,#20H ;延時(shí)</p><p> BB: MOV R6,#0FFH</p&g
32、t;<p> AA: DJNZ R6,AA</p><p> DJNZ R5,BB </p><p><b> RET</b></p><p> TABLE1: DW FE06H,FE22H,FE56H,FE9AH</p><p> DW F
33、E56H, FED3H,FEAEH,FE6E</p><p> DW FED3H,FE9AH,FFF4H,FF03H</p><p> DW FF2BH ,FF1FH,FEAEH,FECEH</p><p><b> END</b></p><p><b> 總結(jié):</b></p>
34、;<p> 這次設(shè)計(jì)雖然說在總體上并不是很難,但是我們兩個(gè)人的能力畢竟還是有限有很多的地方還是沒有弄得很明白,在進(jìn)行程序設(shè)計(jì)的過程中還是參考了很多資料和課本上的知識(shí)。這次設(shè)計(jì)歷經(jīng)將近一個(gè)月,我們從中學(xué)到了很多東西知道了只有通過自己親手做一些東西才能使自己真正的得到和領(lǐng)悟到知識(shí)的精華。</p><p> 下面我就對(duì)我的軟件設(shè)計(jì)和硬件設(shè)計(jì)中遇到的一些問題做一些總結(jié):首先軟件,對(duì)于我們兩人來說對(duì)軟件的
35、學(xué)習(xí)是初學(xué)者在開始的設(shè)計(jì)中借用了其它書上和參考資料上的些程序模塊我們對(duì)其中的一些指令和參數(shù)作了一部分的修改我們把這個(gè)程序大概分為三部分,第一、是主程序的設(shè)計(jì),這一部分相對(duì)需要總括整個(gè)程序?qū)Ω鱾€(gè)子程序需要很熟悉并且進(jìn)行調(diào)用。第二,是對(duì)程序掃描軟件程序部分的設(shè)計(jì),因?yàn)檫@些程序在課本有很多學(xué)習(xí)經(jīng)過對(duì)書本的研究還是沒有用多少力氣就編寫出來了,可是我們對(duì)鍵盤進(jìn)行行掃描還是列掃描進(jìn)行了討論結(jié)果我們還是比較保守的選擇了列掃描方式進(jìn)行鍵盤掃描。第三、是
36、對(duì)定時(shí)程序的設(shè)計(jì)這一部分也是比較簡單這里就不贅述,我要強(qiáng)調(diào)的是對(duì)定時(shí)器的功能設(shè)置上我們還是需要參考書本對(duì)位設(shè)置我們無法記住每一位是什么。關(guān)于第二大項(xiàng)的硬件方面我是用protues進(jìn)行的電路仿真,做的過程中也并不是很順利,畢竟是第一次用這樣一個(gè)軟件在做的過程中有很多地方不明白需要翻書,查資料什么的。因此造成這一部分進(jìn)度很慢不過還好在我們兩個(gè)人的共同努力下終于解決了這個(gè)問題。雖然我們做的仿真并不是很完美但是還是花費(fèi)了我們一定的心血,看著自己
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ī)的電子琴制作 課程設(shè)計(jì)
- 電子琴課程設(shè)計(jì)--基于單片機(jī)的電子琴設(shè)計(jì)
- 電子琴課程設(shè)計(jì)--基于單片機(jī)的電子琴設(shè)計(jì)
- 電子琴課程設(shè)計(jì)-- 基于單片機(jī)的電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—基于單片機(jī)的電子琴
- 基于單片機(jī)的電子琴課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的電子琴設(shè)計(jì)
- 基于單片機(jī)的電子琴課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴
- 單片機(jī)課程設(shè)計(jì)(電子琴)
- 單片機(jī)課程設(shè)計(jì)-電子琴
- 單片機(jī)課程設(shè)計(jì)——電子琴
- 基于單片機(jī)的電子琴設(shè)計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
- 單片機(jī)簡易電子琴單片機(jī)課程設(shè)計(jì)
- 單片機(jī)電子琴課程設(shè)計(jì)--基于單片機(jī)的可存儲(chǔ)式電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
- 課程設(shè)計(jì) ---基于單片機(jī)的電子琴設(shè)計(jì)
- 基于單片機(jī)的電子琴課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)簡易電子琴
評(píng)論
0/150
提交評(píng)論