版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 物理與信息工程系</b></p><p> 課 程 設(shè) 計(jì) 報(bào) 告 </p><p> 課程名稱 專 業(yè) 綜 合 </p><p> 課題名稱 基于單片機(jī)的電子琴設(shè)計(jì) </p><p> 專 業(yè) 電子信息科學(xué)與
2、技術(shù) </p><p> 年 班 級(jí) 09級(jí)電科3班 </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 指導(dǎo)教師
3、 </p><p> 2012年6月1 日</p><p><b> 目 錄</b></p><p><b> 封面1</b></p><p> 目錄2 </p><p>
4、 第一章 設(shè)計(jì)要求及工作原理 3</p><p> 1.1 設(shè)計(jì)指標(biāo)3</p><p> 1.2 設(shè)計(jì)要求3</p><p> 1.3 設(shè)計(jì)說明3</p><p> 1.4 設(shè)計(jì)原理簡(jiǎn)介3</p><p> 第二章 硬件電路設(shè)計(jì)5</p><p> 2.1 單片機(jī)
5、最小系統(tǒng)5</p><p> 2.2 鍵盤模塊7</p><p> 2.3數(shù)碼管模塊7</p><p> 2.4 發(fā)聲模塊8</p><p> 第三章 軟件設(shè)計(jì)9</p><p> 3.1 軟件功能模塊9</p><p> 3.2 軟件程序流程圖10</p>
6、<p> 3.3 軟件源程序11</p><p> 第四章 實(shí)驗(yàn)焊接及調(diào)試13</p><p> 4.1 元器件清單13</p><p> 4.2電路焊接14</p><p> 4.2軟件燒寫與調(diào)試14</p><p> 4.2系統(tǒng)聯(lián)調(diào) 14</p><p&
7、gt; 附錄1:電子琴成品圖14</p><p><b> 心得體會(huì)15</b></p><p> 第一章 設(shè)計(jì)要求及工作原理</p><p> 1.1)、設(shè)計(jì)指標(biāo):</p><p> ?。?)設(shè)計(jì)一個(gè)(4×4)的鍵盤,并將16個(gè)鍵設(shè)計(jì)成16個(gè)音;</p><p> ?。?)
8、按下按鍵顯示相應(yīng)的鍵值</p><p> ?。?)可彈奏想要表達(dá)的音樂;</p><p> ?。?)該電子琴包含1首示例音樂,接通電源按下按鍵可播放示例音樂。</p><p> 1.2)、設(shè)計(jì)要求:</p><p> ?。?)按仿真圖進(jìn)行電路設(shè)計(jì);</p><p> (2)制作符合設(shè)計(jì)指標(biāo)的硬件電路。</p&
9、gt;<p> 1.3)、設(shè)計(jì)說明:</p><p> 電子琴是高科技在音樂領(lǐng)域的一個(gè)代表,它是古典文化與現(xiàn)代文明的一個(gè)濃縮體。它不但可以幫助我們的音樂教師進(jìn)行傳統(tǒng)音樂文化的教育教學(xué)工作,而且由于它又具備現(xiàn)代音樂,特別是電子音樂、電腦音樂的基本結(jié)構(gòu)、特征,因而使我們的教師在進(jìn)行現(xiàn)代音樂、電子音樂、電腦音樂的教學(xué)時(shí),更直接、更簡(jiǎn)便。</p><p> 單片微型計(jì)算機(jī)是大規(guī)
10、模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。</p><p> 電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替
11、代的一部分。本文的主要內(nèi)容是用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有15個(gè)彈奏按鍵、1個(gè)播放鍵和揚(yáng)聲器。</p><p> 1.4)、設(shè)計(jì)簡(jiǎn)單原理介紹</p><p> 一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)
12、然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。</p><p> 若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P1.0反相,然后重復(fù)計(jì)時(shí)再反相。就可在P1.0引腳上得到此頻率的脈沖。</p><p&
13、gt; 利用AT89S51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。</p><p> 計(jì)數(shù)脈沖值與頻率的關(guān)系式(如式3-1所示)是:</p><p>
14、 N=fi÷2÷fr </p><p> 3-1式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。</p><p> 其計(jì)數(shù)初值T的求法如下: T=65536-N=65536-fi÷2÷fr</p><p> 例如:設(shè)K=65536,fi=1MHz,D
15、O(523Hz)的計(jì)數(shù)值。</p><p> T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/f, DO的T=65536-500000/523=64580</p><p> 單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表4-2所示</p><p>
16、 表3-2 音符頻率表</p><p> 我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù) 低音0-19之間,中音在20-39之間,高音在40-59之間</p><p> 在這個(gè)程序中,彈奏音樂的程序是和播放音樂都用定時(shí)/計(jì)數(shù)器T0來完成的</p><p> 第二章 硬件電路設(shè)計(jì)</p><p> 2)、硬
17、件總體方案及說明:</p><p> 51單片機(jī)P2口通過連接4*4的矩陣鍵盤,各鍵盤的音調(diào)在程序中做解釋,P1口接通過74LS247譯碼器連接兩個(gè)數(shù)碼管,按下相應(yīng)的按鍵產(chǎn)生相應(yīng)鍵值,P3.0連接一個(gè)蜂鳴器用于產(chǎn)生示例音樂,P3.7接一個(gè)揚(yáng)聲器,用于各按鍵的音調(diào)發(fā)聲,通過執(zhí)行相應(yīng)的功能程序使電子琴發(fā)出不同音色的聲音。</p><p> 2.1)、芯片介紹:</p><
18、;p> 在本次電子琴設(shè)計(jì)中,我們組成員單片機(jī)芯片選用了STC89C52芯片,因?yàn)榘l(fā)下來的AT89S52我們無法下載程序所以改用了自己買的芯片,但是芯片無太大差異,89C51系列的兼容性比較好。下圖為單片機(jī)AT89S52的引腳說明及其最小系統(tǒng)。</p><p><b> 復(fù)位電路:</b></p><p> 復(fù)位電路我們本來在方案選擇的時(shí)候有兩種選擇的,上電
19、復(fù)位和按扭復(fù)位,上電復(fù)位是利用電容充電來實(shí)現(xiàn)的,而按扭復(fù)位是電源對(duì)外節(jié)電容的充電使RST為高電平,復(fù)位松開后,電容通過下拉電阻放電,使RST恢復(fù)低電平。為了制作軟件的方便我們還是選擇用按扭復(fù)位,因?yàn)樗容^直觀。</p><p><b> 時(shí)鐘電路:</b></p><p> 用兩個(gè)30pf的陶瓷電容與12M的晶振并聯(lián)產(chǎn)生。</p><p>
20、<b> 其他引腳:</b></p><p> 31、40引腳接電源,20引腳接地。</p><p> P3口特殊功能引腳說明:</p><p> 2.2)、矩陣模塊:</p><p> ?。?)利用P2口為按鍵接入口,形成4×4組成16個(gè)按鍵矩陣,設(shè)計(jì)成15個(gè)音,下圖所示:</p>&l
21、t;p> 說明:按下按鍵顯示鍵值,并發(fā)出相應(yīng)的音調(diào)。</p><p> 2.3)、數(shù)碼管模塊</p><p> 一位靜態(tài)數(shù)碼管管腳及封裝說明</p><p> 74LS247引腳及其封裝說明</p><p> 硬件連接說明:通過按鍵顯示相應(yīng)的鍵值,通過74LS247產(chǎn)生相應(yīng)的二進(jìn)制代碼一次傳送給數(shù)碼管的各個(gè)引腳,使其顯示相應(yīng)的
22、鍵值數(shù),如圖protues仿真所示,</p><p><b> 2.4)、發(fā)聲模塊</b></p><p> 通過一個(gè)P3.7引腳,連接一個(gè)2N~3906然后與揚(yáng)聲器使其放大發(fā)聲, P3.0也通過一個(gè)三極管接到蜂鳴器用于示例音樂播放輸出。</p><p> 連線說明:具體參照protues仿真電路圖</p><
23、p> (4)protues仿真設(shè)計(jì)圖如下:</p><p><b> 第三章 軟件設(shè)計(jì)</b></p><p> 3.1)、軟件功能模塊</p><p> ?。?.1.1)鍵盤掃描程序:</p><p> 檢測(cè)是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無鍵按下,則返回鍵盤掃描程序繼續(xù)檢
24、測(cè)</p><p> ?。?.1.2)功能轉(zhuǎn)移程序:</p><p> 對(duì)檢測(cè)到得按鍵值進(jìn)行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們?cè)O(shè)計(jì)的功能程序有兩種,即音色調(diào)節(jié)功能和自動(dòng)播放樂曲功能</p><p> (3.1.3)琴鍵處理程序:</p><p> 根據(jù)檢測(cè)到得鍵值,查詢音律表,給計(jì)時(shí)器賦值,使發(fā)出相應(yīng)
25、頻率的聲音</p><p> ?。?.1.4)數(shù)碼管顯示程序</p><p> 根據(jù)得到的鍵值,通過74LS247轉(zhuǎn)換得到相應(yīng)的八位二級(jí)制并傳送給數(shù)碼管顯示相應(yīng)的鍵值。</p><p> ?。?.1.5)自動(dòng)播放歌曲程序:</p><p> 檢測(cè)到按鍵按下的是自動(dòng)播放歌曲功能鍵后執(zhí)行該程序,電子琴會(huì)自動(dòng)播放事先已經(jīng)存放好的歌曲,歌曲播放完
26、畢之后自動(dòng)返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下</p><p> 3.2)、程序簡(jiǎn)易流程圖</p><p><b> 否</b></p><p><b> 是</b></p><p><b> 否</b></p><p><b>
27、 是</b></p><p> 3.3)、設(shè)計(jì)源程序</p><p> #include <reg51.h> </p><p> #include <intrins.h> </p><p> #define uint unsigned int </p><p> #defi
28、ne uchar unsigned char</p><p> sbit SPK = P3^7; //P3.7外接揚(yáng)聲器</p><p> sbit BEEP=P3^0; </p><p> //生日快樂歌的音符頻率表,不同頻率由不同的延時(shí)來決定 </p><p> uchar code SONG_TO
29、NE[]={212,212,190,212,159,169,212,212,190,212,142,159, </p><p> 212,212,106,126,159,169,190,119,119,126,159,142,159,0}; </p><p> //生日快樂歌節(jié)拍表,節(jié)拍決定每個(gè)音符的演奏長(zhǎng)短 </p><p> uchar code SONG
30、_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, </p><p> 9,3,12,12,12,12,12,9,3,12,12,12,24,0}; </p><p><b> //延時(shí) </b></p><p> void DelayMS(uint x) </p><p><
31、b> { </b></p><p><b> uchar t; </b></p><p> while(x--) for(t=0;t<120;t++); </p><p><b> } </b></p><p><b> //播放函數(shù) </b>
32、</p><p> void PlayMusic() </p><p><b> {</b></p><p> unsigned int i=0,j,k; </p><p> while(SONG_LONG[i]!=0||SONG_TONE[i]!=0) </p><p><b>
33、; { </b></p><p> //播放各個(gè)音符,SONG_LONG 為拍子長(zhǎng)度 </p><p> for(j=0;j<SONG_LONG[i]*20;j++) </p><p><b> { </b></p><p> BEEP=~BEEP; </p><p>
34、 //SONG_TONE 延時(shí)表決定了每個(gè)音符的頻率 </p><p> for(k=0;k<SONG_TONE[i]/3;k++); </p><p><b> } </b></p><p> DelayMS(50); </p><p><b> i++; </b></p&g
35、t;<p><b> } </b></p><p><b> }</b></p><p> uint FreqTemp;</p><p> unsigned int code Freqtab[] = { //定時(shí)半周期的初始值</p><p> 64021,64103,642
36、60,64400, //低音3 4 5 6</p><p> 64524,64580,64684,64777, //低音7,中音1 2 3</p><p> 64820,64898,64968,65030, //中音4 5 6 7</p><p> 65058,65110,65157,65178}; //高音1 2 3 4<
37、/p><p> uchar Keyscan(void) </p><p><b> { </b></p><p> uchar i, j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7}; </p><p> for(j = 0; j < 4; j++) { //循環(huán)四
38、次,掃描四行</p><p> P2 = Buffer[j]; //在低四位分別輸出一個(gè)低電平</p><p><b> _nop_(); </b></p><p> temp = 0x10; //計(jì)劃先讀出P1.7位</p><p> for(i = 0; i <
39、 4; i++) { //循環(huán)四次,檢查四列</p><p> if(!(P2 & temp)) { //從高四位,截取1位</p><p> return (i + j * 4); //返回取得的按鍵值 </p><p><b> }</b></p><p> temp <<= 1;
40、 //換右邊一位</p><p><b> } }</b></p><p> return 16; //沒有鍵按下就返回16</p><p><b> } </b></p><p> void Display(uchar k)</p
41、><p><b> {</b></p><p> P1=((k/10)<<4)+(k%10);</p><p><b> }</b></p><p> void Main(void) </p><p><b> { </b></p
42、><p> uchar Key_Value = 16, Key_Temp1, Key_Temp2;//讀出的鍵值 </p><p> TMOD = 0x01; //T0定時(shí)方式1</p><p> ET0 = 1; //允許T0中斷</p><p> EX0 =
43、1; //允許X0中斷</p><p><b> EA = 1;</b></p><p> while(1) { </p><p> TR0 = 0; //暫不發(fā)音</p><p> Key_Temp1 = Keyscan();
44、 //讀入按鍵</p><p> if(Key_Temp1 != 16) { //有鍵按下</p><p> Display(Key_Value); //顯示鍵值、延時(shí)消抖 </p><p> Key_Temp2 = Keyscan(); //再讀一次</p><p> if (Key_Temp1 =
45、= Key_Temp2) {//兩次相等</p><p> Key_Value = Key_Temp1; //就確認(rèn)下來</p><p> FreqTemp = Freqtab[Key_Value]; //根據(jù)鍵值,取出定時(shí)半周期的初始值</p><p> Display(Key_Value); //顯示</p><p> /
46、/啟動(dòng)定時(shí)器,發(fā)音</p><p> if( FreqTemp == Freqtab[15])</p><p><b> { </b></p><p><b> BEEP=0; </b></p><p><b> SPK=1;</b></p>
47、<p> PlayMusic(); //播放生日快樂 </p><p> DelayMS(500); //播放完后暫停一段時(shí)間 </p><p><b> }</b></p><p> TR0 = 1; </p><p> while (Keyscan() < 16); /
48、/等待釋放</p><p> SPK =1; //停止發(fā)音</p><p><b> } } } }</b></p><p> //============================================================== </p><p> voi
49、d T0_INT(void) interrupt 1</p><p><b> {</b></p><p> TL0 = FreqTemp; //載入定時(shí)半周期的初始值</p><p> TH0 = FreqTemp >> 8;</p><p> SPK =~SPK;
50、 //發(fā)音</p><p><b> } </b></p><p> //============================================================</p><p> 第四章 實(shí)驗(yàn)焊接及調(diào)試</p><p> 4.1)、元器件清單<
51、/p><p> 主要儀器設(shè)備:計(jì)算機(jī)、萬用表、烙鐵等設(shè)備、5V電源適配器</p><p><b> 主要元器件: </b></p><p> 獨(dú)立按鍵 17個(gè)</p><p> 單片機(jī)AT89S52一片</p><p> 12MHz晶振 1個(gè)</p><p&g
52、t; 2N3906三極管 2個(gè)</p><p> 不同阻值電阻 數(shù)個(gè)</p><p><b> 電源開關(guān) 1個(gè)</b></p><p> 喇叭 1個(gè)</p><p> 蜂鳴器 1個(gè)</p><p> 30pf電容 2個(gè)</p>
53、<p> 22u電解電容 1個(gè)</p><p> 萬能板 1塊</p><p> 共陽數(shù)碼管 2個(gè)</p><p> 74ls247譯碼器 2個(gè)</p><p><b> 導(dǎo)線 若干</b></p><p><b> 4.2)、電路焊接
54、</b></p><p> 根據(jù)protues仿真圖,和萬能板的排版,把元器件一一的通過電烙鐵焊接,并盡量簡(jiǎn)潔美觀。</p><p><b> 4.3)、軟件調(diào)試</b></p><p> 通過要實(shí)現(xiàn)的功能,編寫相應(yīng)的程序,通過自頂向下的模塊化程序設(shè)計(jì),編寫出各模塊的程序,用keil軟件進(jìn)行調(diào)試與編譯,并到protues仿真驗(yàn)
55、證,最終得出成功的程序。</p><p><b> 4.4)、系統(tǒng)聯(lián)調(diào)</b></p><p> 通過開發(fā)板,我們用自己的芯片燒寫程序,到單片機(jī)中,并把單片機(jī)放入我們所焊接的萬能板上面,接通電源,通過萬用表,能工具不斷的調(diào)試,終于能夠穩(wěn)定的工作了。</p><p> 附錄一:電子琴成品圖</p><p><b
56、> 五、心得體會(huì):</b></p><p> 這次設(shè)計(jì)從軟件方面來講不是很難,protues仿真也不是很難,所以比較容易就做好了準(zhǔn)備,在焊接的過程,兩人相互配合,用了將近8個(gè)小時(shí),完成焊接,在protues上仿真中看得出效果,因?yàn)樵骷际抢硐霠顟B(tài)的,但做出實(shí)物來卻不是那么簡(jiǎn)單。回去下載程序到單片機(jī)后,接通電源還是有點(diǎn)小小的錯(cuò)誤的,經(jīng)過多次調(diào)試、修改才得以出結(jié)果。調(diào)試成功后,可任意彈奏自己想
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子琴課程設(shè)計(jì)--基于單片機(jī)的電子琴設(shè)計(jì)
- 電子琴課程設(shè)計(jì)-- 基于單片機(jī)的電子琴設(shè)計(jì)
- 電子琴單片機(jī)課程設(shè)計(jì)--電子琴模擬實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)---電子琴
- 單片機(jī)課程設(shè)計(jì)(電子琴)
- 單片機(jī)課程設(shè)計(jì)-電子琴
- 單片機(jī)課程設(shè)計(jì)——電子琴
- 單片機(jī)電子琴課程設(shè)計(jì)--基于單片機(jī)的可存儲(chǔ)式電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子琴設(shè)計(jì)
- 基于單片機(jī)的電子琴課程設(shè)計(jì)
- 基于單片機(jī)的電子琴課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)簡(jiǎn)易電子琴
- 基于單片機(jī)的電子琴設(shè)計(jì)課程設(shè)計(jì)
- 簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 簡(jiǎn)易電子琴單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子琴
- 單片機(jī)課程設(shè)計(jì)簡(jiǎn)易電子琴
- 單片機(jī)課程設(shè)計(jì)——簡(jiǎn)易電子琴
評(píng)論
0/150
提交評(píng)論