




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、電子琴設(shè)計摘要:本設(shè)計是用at89s52單片機(jī)為核心控制元件,設(shè)計一個電子琴。以單片機(jī)作為主控核心,與鍵盤、揚聲器、led顯示器等模塊組成核心主控制模塊。在主控模塊上設(shè)有8個按鍵,其中7個按鍵控制7個音符,而1個作為功能轉(zhuǎn)換鍵使用,具有手動隨意彈奏和自動播放樂曲的功能。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。關(guān)鍵詞:at89c52單片機(jī) led顯示器 揚聲器 18矩陣鍵盤 7個音符 自動播放樂曲 1 引言電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。目前市場上各種品牌、型號的電子琴有上百種,由幾十塊的玩具電子琴到幾
2、百,幾千的學(xué)習(xí)、演奏用琴真是琳瑯滿目,電子琴能夠模仿各種音色和具有自動伴奏功能,這些是電子琴最基本的特征。檔次的高低無非是音色模仿的是否逼真,自動伴奏設(shè)計的是否豐富,或者增加了其他制作,編曲功能的。本設(shè)計主要對使用單片機(jī)設(shè)計簡易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴系統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的7個音符,最終可隨意彈奏想要表達(dá)的音樂。并且本設(shè)計分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細(xì)闡述。 一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方
3、便,我們可以利用單片機(jī)的定時/計數(shù)器t0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。2 總體設(shè)計方案2.1 設(shè)計思路2.1.1 從系統(tǒng)實現(xiàn)的功能上來看,電子琴的設(shè)計主要分為手動彈奏樂曲和自動播放音樂兩大部分組成。手動彈奏樂曲是根據(jù)具體的硬件鍵盤設(shè)置了7個音符按鍵和1個功能轉(zhuǎn)換鍵,自動播放音樂是在單片機(jī)的存儲器中通過軟件編程的方法放置音樂代碼和相關(guān)播放程序來實現(xiàn)。2.1.2 從系統(tǒng)硬件結(jié)構(gòu)上來看,主要使用到52系列單片機(jī)、矩陣18鍵輸入電路、led數(shù)碼管顯示電路、揚聲器以及電源電路等等。將這些硬件電路有機(jī)地結(jié)合起來使之滿足電子琴設(shè)計的基本硬件要求。2.1.3 從
4、系統(tǒng)軟件設(shè)計角度來看,將電子琴的設(shè)計采用程序模塊化設(shè)計方法,將程序分為主程序、鍵盤掃描程序模塊、數(shù)碼顯示模塊、轉(zhuǎn)換控制模塊、音樂產(chǎn)生模塊等等。此外,采用程序設(shè)計思想,將中斷定時方式與外部按鍵查詢方式相結(jié)合,實現(xiàn)手動彈奏樂曲到自動播放音樂的切換。2.1.4 從音樂產(chǎn)生原理方面來看,通過控制單片機(jī)的定時器的定時時間產(chǎn)生不同頻率的音頻脈沖,經(jīng)放大后驅(qū)動揚聲器發(fā)出不同音樂的聲音。用軟件延時來控制發(fā)音時間的長短,控制節(jié)拍。把音樂的音符和相應(yīng)的節(jié)拍變換為定時常數(shù)和延時常數(shù),作為數(shù)據(jù)表格存放在程序存儲器中,由程序查表得到定時常數(shù)和延時常數(shù),分別用來控制定時器產(chǎn)生的脈沖頻率和發(fā)出音頻脈沖的持續(xù)時間。 因此,我
5、們可以綜合上述的不同角度的方案設(shè)計原理,主要從軟件和硬件兩部分進(jìn)行有計劃有步驟的系統(tǒng)分析與設(shè)計,最終確立總體的設(shè)計方案。方案確立 1、手動彈奏樂曲和自動播放音樂用非編碼的矩陣鍵盤來實現(xiàn),其中包括數(shù)字鍵和功能鍵,功能鍵主要是將手動彈奏模塊轉(zhuǎn)換到自動播放樂曲模塊。手動彈奏樂曲中7個鍵分別設(shè)置不同的7個音符,然后通過功能鍵可實現(xiàn)手動彈奏樂曲到播放樂曲之間的切換。2、一位led數(shù)碼管顯示當(dāng)前工作狀態(tài),將按下的鍵值送入顯示,并一一對應(yīng)各個音符。采用動態(tài)掃描輸出。3、軟件的設(shè)計主要包括矩形鍵盤鍵值的讀取、led動態(tài)掃描輸出程序、手動彈奏樂曲程序和音樂自動播放程序。4、此次程序設(shè)計主要分為兩大塊:手動彈奏樂
6、曲程序和自動播放程序。兩者之間用功能轉(zhuǎn)換程序?qū)ζ溥M(jìn)行結(jié)合,并實現(xiàn)各種不同功能的控制。2.2 設(shè)計方框圖基于單片機(jī)系統(tǒng)的電子琴的基本結(jié)構(gòu)如圖(1)所示圖(1)3 設(shè)計原理分析3.1演奏音樂原理通過控制單片機(jī)定時器的定時時間產(chǎn)生不同頻率的音頻脈沖,經(jīng)放大后驅(qū)動蜂鳴器發(fā)出不同音節(jié)的聲音。用軟件延時來控制發(fā)音時間的長短,控制節(jié)拍。把樂譜的音符和相應(yīng)的節(jié)拍變換為定時常數(shù)和延時常數(shù),作為數(shù)據(jù)表格存放在存儲器中,由程序到定時常數(shù)和延時常數(shù),分別用來控制定時器產(chǎn)生的脈沖頻率和發(fā)出該音頻脈沖的持續(xù)時間。單片機(jī)晶振頻率為12mhz時,樂曲中的音符、頻率及定時常數(shù)之間的對應(yīng)關(guān)系可制成表格。本次設(shè)計中,定時常數(shù)是有1
7、6定時器t0根據(jù)不同的音符,裝入不同的初值實現(xiàn)延時的,而延時常數(shù)是在自動播放音樂部分使用,控制不同音符的節(jié)拍,其延時常數(shù)是通過16位定時器t1實現(xiàn)的。根據(jù)設(shè)計要求給出的各音符頻率,我們只需要的各音符頻率與計數(shù)值t的關(guān)系如表(1)所示表(1): c調(diào)各音符頻率與計數(shù)值t的關(guān)系音符頻率(hz)半周期(ms) 簡譜碼t值定時值(h)簡譜碼t值定時值(d)1 do2621.90f894h626282 re2941.70f95ch638353 mi3301.51fa1ah640214 fa3491.43fa6ah641035 so3921.28fb00h642606 la4401.14fb8ch6440
8、07 si4941.01fc0eh645243.2 鍵盤掃描原理先將18矩陣鍵盤的行(p2.0)和列(p1口)全部置為高電平,然后再逐行置為低電平,當(dāng)有鍵按下時p1口的值會發(fā)生相應(yīng)的改變,通過與給定數(shù)的比較,判定是否有鍵按下和是否鍵已松開。并給定列號并保存,根據(jù)所給的列號的值,一方面通過p0口給led送入確定好的段碼數(shù)值,從而相對應(yīng)地在led上顯示音符數(shù)字,另一方面從table表中取出相應(yīng)的值,給此時作為16位定時器的t0裝入初值,不同的音符給t0裝入的初值不同,即定時器的定時時間將不相同,將產(chǎn)生不同頻率的音頻脈沖,轉(zhuǎn)換成聲音播出的頻率也將不同,從而實現(xiàn)7個不同的音符。同時,通過示波器可查看p
9、3.7的音頻輸出方波。3.3 硬件電路設(shè)計分析 因為at89cxx系列與mcs-51系列單片機(jī)相比,有兩大優(yōu)勢:第一,片內(nèi)程序存儲器采用閃速存儲器,使程序的寫入更方便;第二,提供了更小尺寸的芯片,使整個硬件電路的體積更小。它以較小的體積、良好的性能價格比倍受青睞。本次綜合實驗設(shè)計采用89c52單片機(jī)。3.3.1 按鍵模塊的設(shè)計如圖(2)所示為18矩陣鍵盤模塊,其行接p2.0口,其列逐一與p1口相接圖(2)因為不同的音符對應(yīng)的頻率是不同的,當(dāng)按到不同的按鍵,發(fā)出的聲音不一樣,所以其產(chǎn)生的方波頻率信號也會不一樣,如下列7個小圖對應(yīng)著7個不同音符的方波頻率信號。 圖 1 do 圖 2 re 圖 3
10、mi 圖 4 fa 圖 5 so 圖 6 la 圖 7 si 3.3.2 led數(shù)碼管顯示模塊的設(shè)計 如圖(3)所示,為led數(shù)碼顯示模塊電路的設(shè)計部分 圖(3) 一位共陽數(shù)碼管 本系統(tǒng)用單片機(jī)的p0口的p0.0p0.6來控制led顯示器的數(shù)字顯示。當(dāng)有7個音符按鍵17中有被按下,led數(shù)碼管將對應(yīng)顯示出該音符的數(shù)字,從而可以通過手動和眼看來確定所按的是哪個音符,應(yīng)該發(fā)出哪個音符的聲音。而最后一個功能轉(zhuǎn)換鍵一旦被按下,程序?qū){(diào)用倒計3秒子程序,led數(shù)碼管將從3開始倒數(shù)到0,緊接著進(jìn)入自動播放音樂子程序,播放程序中通過表格數(shù)據(jù)形式存放在rom的音樂代碼而形成的樂曲3.3.3 揚聲器模塊的設(shè)計
11、 如圖(4)所示為揚聲器模塊電路圖(4) 揚聲器模塊電路電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。本設(shè)計的蜂鳴器通過驅(qū)動電路與單片機(jī)的p3.7連接,單片機(jī)就可以通過p3.7的輸出信號頻率就行控制。令外,通過示波器接到p3.7可方便我們觀察波形。3.3.4 復(fù)位和晶振等其他附屬部分的電路設(shè)計如圖(5)所示,為復(fù)位和晶振等其他附屬部分的電路圖(5) 復(fù)位和晶振等其他附屬部分的電路 xtal1、xtal2分別是系統(tǒng)時鐘信號fosc的輸入和輸出端。晶振電路的設(shè)計
12、可以兩個電容與一個晶振即可,用來產(chǎn)生一個約等于12mhz的穩(wěn)定的頻率。復(fù)位是單片機(jī)的初始化操作,其作用是使cpu和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。本系統(tǒng)采用上電與按鍵復(fù)位電路,為了防止干擾串?dāng)_復(fù)位端,所以再接一個去耦電容。4 實驗數(shù)據(jù)1、利用at89c52的內(nèi)部定時器t0使其工作在方式1的定時方式下,改變計數(shù)值th0及tl0以產(chǎn)生不同頻率的方法產(chǎn)生不同音符。計數(shù)脈沖值與頻率的關(guān)系式是: nfi2fr式中,n是計數(shù)值,fi是機(jī)器頻率(晶體振蕩器為12mhz時,其頻率為1mhz),fr是想要產(chǎn)生的頻率。其計數(shù)初值t的求法如下: t65536n65536fi2fr實驗中
13、的k65536,fi1mhz,根據(jù)設(shè)計要求中給出的音階頻率表,可求出各自的計數(shù)初值。t65536n65536fi2fr6553610000002fr65536500000/fr因此,可以通過計算求得各音階的簡譜碼t值如下:1 do的t65536500000/262.1636282 re的t65536500000/293.7638363 mi的t65536500000/329.6640214 fa的t65536500000/349.2641045 so的t65536500000/392.0642616 la的t65536500000/440.0644007 si的t65536500000/493
14、.964524相應(yīng)求得在要發(fā)出不同音符時先給定時器t0裝入的初值如下表:音階1 do2 re3 mi4 fa5 so6 la7 si頻率(hz)261.1293.7329.6349.2392.0440.0493.9 初值 636286383664021641046426164400645242、因為實驗中用到的led數(shù)碼顯示管是共陽極的,所以07八個數(shù)字的段碼分別為:數(shù)字 01234567段碼40h79h24h30h19h12h02h78h5 結(jié)束語在這一周里,一有空余時間都把時間花在本次實驗。其過程很艱苦,有時候做到深夜,但收獲是頗多。一開始拿到題目,關(guān)于不同頻率的音符,我就知道肯定需要用到
15、定時中斷來實現(xiàn),可是自己學(xué)習(xí)的進(jìn)度很慢,大多數(shù)時間都是自學(xué)。不過后來用大量時間去細(xì)看每一章節(jié),做起實驗來就容易多了。本次設(shè)計性實驗讓我無論是在硬件還是軟件方面都有了很大的提高,同時也增強(qiáng)了自己的信心和對學(xué)習(xí)的興趣。這些也是老師嚴(yán)格要求我們做好每一個實驗的好處。參考文獻(xiàn)1潘永雄.新編單片機(jī)原理與應(yīng)用(第二版).西安電子科技大學(xué)出版社,20072楊欣.51單片機(jī)應(yīng)用從零開始:清華大學(xué)出版社,20083彭偉.單片機(jī)c語言程序設(shè)計實訓(xùn)100例基于8051+proteus仿真. 電子工業(yè)出版社,2010附錄1:總體電路圖附錄2:程序流程圖設(shè)計附錄3:源程序代碼keybuf equ 30hsth0 equ
16、 31hstl0 equ 32htemp equ 33hspkequ p3.7 ; 發(fā)聲器所在端口 org 0000h ljmp start org 000bh ljmp int_t0 ;定時器0放置彈奏樂曲程序 org 001bh ljmp time0start: mov tmod,#11h ;設(shè)置定時器的工作方式,定時器t0和t1都是方式1,作為16為定時計數(shù)器使用(定時方式) setb et0 ;開各中斷開關(guān) setb et1 setb ea ;開放中斷總允許和源允許 acall saomiao ;進(jìn)入手動彈奏程序 sjmp start;*手動彈奏程序*saomiao: mov p2,#
17、0ffh ;手動彈奏程序 mov p1,#0ffh ;先將鍵盤的行和列全部置為高電平,然后再逐行置為低電平 clr p2.0 mov a,p1 xrl a,0ffh cjne a,#00h,neq ;判斷有沒鍵按下 ljmp nokeys ;沒有按鍵按下即跳轉(zhuǎn)到nokeysneq: ;有按鍵按下即跳到neq lcall dely10ms ;延時10ms mov a,p1 ;消除擾動和干擾 xrl a,0ffh cjne a,#00h,neq1 ljmp nokeysneq1: mov a,p1 ;判斷是否按下#0鍵 cjne a,#0feh,nk1 ;按下#0鍵即順序執(zhí)行程序,否則跳到nk1檢
18、查下一鍵位 mov keybuf,#0 ;保存列號#0 mov p0,#79h ;讓led顯示為1 ljmp dk1nk1: cjne a,#0fdh,nk2 ;判斷是否按下#1鍵 mov keybuf,#1 ;保存列號#1 mov p0,#24h ;讓led顯示為2 ljmp dk1nk2: cjne a,#0fbh,nk3 ;判斷是否按下#2鍵 mov keybuf,#2 ;保存列號#2 mov p0,#30h ;讓led顯示為3 ljmp dk1nk3: cjne a,#0f7h,nk4 ;判斷是否按下#3鍵 mov keybuf,#3 ;保存列號#3 mov p0,#19h ;讓led
19、顯示為4 ljmp dk1nk4: cjne a,#0efh,nk5 ;判斷是否按下#4鍵 mov keybuf,#4 ;保存列號#4 mov p0,#12h ;讓led顯示為5 ljmp dk1nk5: cjne a,#0dfh,nk6 ;判斷是否按下#5鍵 mov keybuf,#5 ;保存列號#5 mov p0,#02h ;讓led顯示為6 ljmp dk1 nk6: cjne a,#0bfh,nk7 ;判斷是否按下#6鍵 mov keybuf,#6 ;保存列號#6 mov p0,#78h ;讓led顯示為7 ljmp dk1nk7: cjne a ,#7fh,nk8 nk8: ljmp
20、 choicedk1: mov a,keybuf mov b,#2 mul ab ;對應(yīng)讀取表格table1的數(shù)據(jù) mov temp,a mov dptr,#table1 movc a,a+dptr mov sth0,a mov th0,a inc temp mov a,temp movc a,a+dptr mov stl0,a mov tl0,a setb tr0 ;開啟定時器t0,t0開始計數(shù)dk1a: mov a,p1 xrl a,#0ffh jnz dk1a mov a,p2 anl a,#0f0h mov p2,a clr tr0nokeys: ret;*功能轉(zhuǎn)換程序*choice:
21、 mov p2,#0ffh ;功能轉(zhuǎn)換程序 mov p1,#0ffh clr p2.0 mov a,p1 cjne a,#7fh,next1111 ;按下了p1.7鍵后,順序執(zhí)行,否則則跳轉(zhuǎn)到next1111 next111: mov p2,#0ffh mov p1,#0ffh clr p2.0 mov a,p1 xrl a,#0ffh jnz next111 ;如果a不為0,即按鍵有變化,繼續(xù)循環(huán) acall display ;如果按鍵沒變化,即調(diào)用display mov sp,#60h mov dptr,#table acall musicnext1111: ljmp saomiao;*自
22、動播放音樂程序*music: mov 21h,#00h mov p2,#0ffh mov p1,#0ffh clr p2.0 mov a,p1 jnb acc.7,aa1 setb 21h.7 aa1: mov p2,#0ffh mov p1,#0ffh clr p2.0 mov a,p1 xrl a, #0ffh jnz aa1 jnb 21h.7,next1111 clr a movc a,a+dptr mov r1,a inc dptr clr a movc a,a+dptr mov r0,a orl a,r1 jz next1 mov a,r0 anl a,r1 cjne a,#0ff
23、h,next sjmp music next: mov th1,r1 mov tl1,r0 setb tr1 sjmp next2 next1: clr tr1 next2: clr a inc dptr movc a,a+dptr mov r2,a loop1: acall delay djnz r2,loop1 inc dptr sjmp music rep12: clr tr1 ret time0: mov th1,r1 mov tl1,r0 cpl p3.7 retidel1s: mov r5,#30 d1: mov r6,#100 d2: mov r7,#80 djnz r7,$ d
24、jnz r6,d2 djnz r5,d1 retdel: nopdel3: mov r4,#02hdel4: nop djnz r4,del4 nop djnz r3,del3 ret nop;*延時10ms子程序*dely10ms: mov r6,#10d3: mov r7,#248djnz r7,$djnz r6,d3ret;*t0中斷服務(wù)子程序*int_t0: mov th0,sth0mov tl0,stl0cpl p3.7reti;*倒計3秒進(jìn)入自動播放音樂子程序*display:mov dptr,#table0 mov r0,#0loop10 :mov a,r0 movc a,a+dptr mov p0,a clr p2.0 lcall delay0 inc r0 cjne r0,#4,loop10 ret;*數(shù)碼顯示display9*display9:mov dptr,#table8 ;數(shù)碼管顯示數(shù)字 mov r0,#0loop15 :mov a,r0 movc a,a+dptr mov p0,a ;送到p0口顯示數(shù)字 clr p2.0 lcall delay0 inc r0 cjne r0,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽外國語學(xué)院《醫(yī)藥品制造管理韓》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025雇傭離職人員勞動合同
- 2025企業(yè)招聘合同范本
- 宜賓職業(yè)技術(shù)學(xué)院《測量學(xué)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 中南財經(jīng)政法大學(xué)《電子商務(wù)技術(shù)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 寶雞文理學(xué)院《先唐詩歌專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春十一高中消防管道更換電力增容等維修項目一標(biāo)段招標(biāo)文件
- 互助縣第一中學(xué)2024-2025學(xué)年高三5月考化學(xué)試題含解析
- 無錫市重點中學(xué)2025屆中考物理試題全真模擬密押卷含解析
- 張家界航空工業(yè)職業(yè)技術(shù)學(xué)院《紀(jì)念品設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- GB 16246-1996車間空氣中硫酸二甲酯衛(wèi)生標(biāo)準(zhǔn)
- 驅(qū)動橋畢業(yè)設(shè)計
- 2023機(jī)關(guān)公文寫作與處理PPT模板
- 基坑支護(hù)、降水及土方開挖專項施工方案
- 幼兒數(shù)字1-100字帖練習(xí)
- 細(xì)胞生物學(xué)-7細(xì)胞信號轉(zhuǎn)導(dǎo)課件
- 攪拌站安全培訓(xùn)試卷
- 茶葉市場營銷講義
- 走進(jìn)中國傳統(tǒng)節(jié)日 詳細(xì)版課件
- 乙肝兩對半ppt課件
- 鍋爐空氣預(yù)熱器拆除安裝方案
評論
0/150
提交評論