版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄一 設(shè)計(jì)的內(nèi)容、要求及目的 . 3 1 設(shè)計(jì)內(nèi)容 . 3 2 設(shè)計(jì)要求 . 3 3 設(shè)計(jì)目的 . 3二 系統(tǒng)總體方案選擇與說(shuō)明 . 3 1 系統(tǒng)方案綜述 . 3 2 系統(tǒng)設(shè)計(jì)思路 . 4三 系統(tǒng)方框圖與工作原理 . 5 1 系統(tǒng)硬件電路設(shè)計(jì)框圖 . 5 2 工作原理 . 5四 各部分方案選定、功能及計(jì)算 . 7 1 單片機(jī)選用 . 7 2 LED數(shù)碼管顯示模塊的設(shè)計(jì) . 8 3 按鍵模塊的設(shè)計(jì) . 8 4 揚(yáng)聲器模塊的設(shè)計(jì) . 9五 器件說(shuō)明 . 10六 應(yīng)用系統(tǒng)的程序設(shè)計(jì) . 11 1 程序總框圖 . 11 2 主函數(shù)設(shè)計(jì) . 12 3 軟件延時(shí)函數(shù) . 12 4 頻率設(shè)定函數(shù) . 13
2、 5 定時(shí)器0中斷函數(shù) . 13 6 被檢測(cè)到按鍵處理函數(shù) . 13 7 被檢測(cè)到按鍵釋放處理函數(shù) . 13 8 鍵盤掃描函數(shù) . 14七 調(diào)試說(shuō)明、使用說(shuō)明 . 17 1 調(diào)試說(shuō)明 . 17八 設(shè)計(jì)總結(jié) . 18九 參考文獻(xiàn) . 19 1附錄一 程序清單 . 20附錄二 設(shè)計(jì)電路原理圖 . 26一 設(shè)計(jì)的內(nèi)容、要求及目的1 設(shè)計(jì)內(nèi)容本課題以單片機(jī)為核心,設(shè)計(jì)和制作一個(gè)電子琴。要求由4X4組成16個(gè)按鈕矩陣,設(shè)計(jì)成16個(gè)音,可隨意彈奏想要表達(dá)的音樂(lè)2 設(shè)計(jì)要求1.設(shè)計(jì)方案要合理、正確;2.系統(tǒng)硬件設(shè)計(jì);3.完成必要元器件選擇;4.系統(tǒng)軟件設(shè)計(jì)及調(diào)試;5.寫出設(shè)計(jì)報(bào)告。3 設(shè)計(jì)目的本課題主要對(duì)使
3、用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。本系統(tǒng)是簡(jiǎn)易電子琴的設(shè)計(jì),按下鍵盤矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放器對(duì)應(yīng)的音符。通過(guò)設(shè)計(jì)本系統(tǒng)可了解單片機(jī)的基本功能,對(duì)單片機(jī)的了解有一個(gè)小的飛躍。二 系統(tǒng)總體方案選擇與說(shuō)明1 系統(tǒng)方案綜述從系統(tǒng)實(shí)現(xiàn)的功能上來(lái)看,簡(jiǎn)易電子琴的課程設(shè)計(jì)為手動(dòng)彈奏樂(lè)曲,手動(dòng)彈奏樂(lè)曲是根據(jù)具體的硬件鍵盤設(shè)置功能鍵實(shí)現(xiàn)低音、中音和高音.從系統(tǒng)硬件結(jié)構(gòu)上來(lái)看,我們主要使用到51系列單片機(jī)、八
4、位七段數(shù)碼管顯示電路、矩陣4X4鍵輸入電路、揚(yáng)聲器以及電源電路等等。將這些硬件電路有機(jī)地結(jié)合起來(lái)使之滿足簡(jiǎn)易電子琴的實(shí)現(xiàn)硬件需要。從系統(tǒng)軟件設(shè)計(jì)角度來(lái)看,將簡(jiǎn)易電子琴的課程設(shè)計(jì)采用程序模塊化設(shè)計(jì)方法,將程序分為主程序、鍵盤掃描程序模塊、數(shù)碼顯示模塊、音樂(lè)產(chǎn)生模塊等等。此外,采用程序設(shè)計(jì)思想,將中斷定時(shí)方式與外部按鍵查詢方式相結(jié)合,實(shí)現(xiàn)手動(dòng)彈奏樂(lè)曲的功能。從音樂(lè)產(chǎn)生原理方面來(lái)看,通過(guò)控制單片機(jī)的定時(shí)器的定時(shí)時(shí)間產(chǎn)生不同頻率的音頻脈沖,經(jīng)放大后驅(qū)動(dòng)揚(yáng)聲器發(fā)出不同音樂(lè)的聲音。用定時(shí)器來(lái)控制發(fā)音時(shí)間的長(zhǎng)短。把音樂(lè)的音符變換為定時(shí)常數(shù),作為數(shù)據(jù)表格存放在存儲(chǔ)器中,由程序查表得到定時(shí)常數(shù),分別用來(lái)控制定時(shí)
5、器產(chǎn)生的脈沖頻率和發(fā)出該音頻脈沖的持續(xù)時(shí)間。因此,我們可以綜合上述的方案設(shè)計(jì)原理,從軟件和硬件兩部分進(jìn)行有計(jì)劃有步驟的系統(tǒng)分析和設(shè)計(jì)。2 系統(tǒng)設(shè)計(jì)思路1、手動(dòng)彈奏樂(lè)曲用非編碼的矩形鍵盤來(lái)實(shí)現(xiàn),手動(dòng)彈奏樂(lè)曲中矩陣鍵盤的16個(gè)鍵分別設(shè)置成不同的音符。2、八位LED數(shù)碼管顯示對(duì)應(yīng)的各個(gè)音符。采用動(dòng)態(tài)掃描輸出。3、軟件的設(shè)計(jì)主要包括矩形鍵盤鍵值的讀取、LED動(dòng)態(tài)掃描輸出程序、和手動(dòng)彈奏樂(lè)曲程序。三 系統(tǒng)方框圖與工作原理1 系統(tǒng)硬件電路設(shè)計(jì)框圖2 工作原理1、演奏音樂(lè)原理:通過(guò)控制單片機(jī)定時(shí)器的定時(shí)時(shí)間產(chǎn)生不同頻率的音頻脈沖,經(jīng)放大后驅(qū)動(dòng)揚(yáng)聲器發(fā)出不同音節(jié)的聲音。把樂(lè)譜的音符變換為定時(shí)常數(shù),作為數(shù)據(jù)表格
6、存放在存儲(chǔ)器中,由程序到這些定時(shí)常數(shù),用來(lái)控制定時(shí)器產(chǎn)生的脈沖頻率。單片機(jī)晶振頻率為12MHZ時(shí),樂(lè)曲中的音符、頻率及定時(shí)常數(shù)之間的對(duì)應(yīng)關(guān)系可制成表格2、鍵盤掃描原理:先將4×4矩陣鍵盤的行和列全部置為高電平,然后再逐行置為低電平,當(dāng)有鍵按下時(shí)P1口的值會(huì)發(fā)生相應(yīng)的改變,通過(guò)與給定數(shù)的比較,判定是否有鍵按下和是否鍵已松開(kāi)。并給定列號(hào),根據(jù)所給的列號(hào)的值,一方面給LED送入確定好的數(shù)值,另一方面從TABLE表中取出相應(yīng)的值,送入單片機(jī)轉(zhuǎn)換成聲音播出。四 各部分方案選定、功能及計(jì)算由于LK-51單片機(jī)實(shí)驗(yàn)、開(kāi)發(fā)學(xué)習(xí)機(jī)的各功能模塊已經(jīng)設(shè)計(jì)好,在使用時(shí)只要設(shè)計(jì)模塊間電路的連接,因此硬件電路的
7、設(shè)計(jì)及實(shí)現(xiàn)相對(duì)簡(jiǎn)單。硬件電路由LED數(shù)碼管顯示模塊、按鍵模塊、發(fā)光二極管電路和蜂鳴器模塊、復(fù)位電路和電源電路部分組成。1 單片機(jī)選用根據(jù)設(shè)計(jì)方案的分析,可以選擇帶有EPROM的單片機(jī),應(yīng)用程序直接存儲(chǔ)在片內(nèi),不用在外部擴(kuò)展程序存儲(chǔ)器,電路可以簡(jiǎn)化。ATMEL公司生產(chǎn)的AT89CXX系列單片機(jī),AT89CXX系列與MCS-51系列單片機(jī)相比,有兩大優(yōu)勢(shì):第一,片內(nèi)程序存儲(chǔ)器采用閃速存儲(chǔ)器,使程序的寫入更方便;第二,提供了更小尺寸的芯片,使整個(gè)硬件電路的體積更小。它以較小的體積、良好的性能價(jià)格比倍受青睞。本次課程設(shè)計(jì)采用89C51單片機(jī)。AT89C52單片機(jī)的接口圖如圖所示:P0口作為顯示的段碼,
8、 P1口作為4×4矩陣鍵盤的4個(gè)列的掃描端口,P1.0P1.3作為4×4矩陣鍵盤的4個(gè)行的掃描端口,P1.4-P1.7作為4×4矩陣鍵盤的4個(gè)列的掃描端口,P3.0-P3.7作為顯示位碼,P2.1作為揚(yáng)聲器接口。2 LED數(shù)碼管顯示模塊的設(shè)計(jì)本系統(tǒng)的八位LED顯示器采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)地點(diǎn)亮各位顯示器。用單片機(jī)的P0口來(lái)控制LED顯示器的字形輸入(段控),此外,為了實(shí)現(xiàn)位控,以P3口作為輸出位控線 。3 按鍵模塊的設(shè)計(jì)下圖為硬件系統(tǒng)的16鍵4×4的矩陣式鍵盤電路邏輯圖,鍵盤的行線連接到P1.0-P1.3口上,列線連接到P1.4-P1.7口上
9、,單片機(jī)通過(guò)逐行掃描的方法對(duì)鍵盤進(jìn)行掃描,讀取判斷有無(wú)鍵被按下以及按鍵的位置。為了判斷有沒(méi)有鍵被按下,可先經(jīng)輸出口向所有列線輸出高電平然后在輸出各行狀態(tài)。若行線狀態(tài)皆為高電平則表明無(wú)鍵被按下;若行線狀態(tài)中有低電平就表示有鍵被按下,然后再根據(jù)接通的行線和列線判定按鍵的位置。當(dāng)經(jīng)掃描表明有鍵被按下后,緊接著就是進(jìn)行去抖動(dòng)處理,抖動(dòng)時(shí)間的長(zhǎng)短與鍵的機(jī)械特性有關(guān),一般為10-20ms。4 揚(yáng)聲器模塊的設(shè)計(jì)電磁式揚(yáng)聲器由振蕩器、電磁線圈、磁鐵振動(dòng)膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。本系統(tǒng)設(shè)計(jì)的揚(yáng)聲
10、器通過(guò)驅(qū)動(dòng)電路與單片機(jī)的P2.1連接,單片機(jī)就可以通過(guò)P2.1的輸出信號(hào)頻率就行控制。五 器件說(shuō)明AT89C51單片機(jī) 1片 11.0592MHZ的晶振 1片 電容 1個(gè) 4X4矩陣鍵盤 1個(gè) 電阻 1八位LED顯示器 1揚(yáng)聲器 1 個(gè) 個(gè) 個(gè)六 應(yīng)用系統(tǒng)的程序設(shè)計(jì)1 程序總框圖2 主函數(shù)設(shè)計(jì)主程序的的功能,主要是定時(shí)器的初始化和不同功能的調(diào)用,這里使用到不同的子程序,先調(diào)用顯示子程序,再?gòu)椬嗪鸵魳?lè)播放功能。主程序流程圖如圖1所示:主程序的源程序如下:void main()TMOD=0x01;EA=1;ET0=1;while(1)key_scan();3void delayms(uint xm
11、s)uint i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);軟件延時(shí)函數(shù) 124 頻率設(shè)定函數(shù)void set_T0(uint x_TH0,uint y_TL0)TH0=x_TH0;TL0=y_TL0;T0_value_a=x_TH0;T0_value_b=y_TL0;TR0=1;5 定時(shí)器0中斷函數(shù)void Freq_T0() interrupt 1TH0=T0_value_a;TL0=T0_value_b;p21=p21;6 被檢測(cè)到按鍵處理函數(shù)void key_deal(uchar dis,uint freq)set_T0(freq/256,f
12、req%256);/設(shè)置中斷頻率P0=(8=dis)?(table_p0dis-1+0x80):(table_p0dis-1);/數(shù)碼管段選 P3=table_p3dis-1;/數(shù)碼管位選7 被檢測(cè)到按鍵釋放處理函數(shù)void key_relea() TR0=0;/關(guān)中斷 p21=1;/消音 dis_stop/消影(宏定義)8 鍵盤掃描函數(shù)void key_scan()P1=0XFE;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&0xf0;if(temp!=0XF0)switch(temp)case 0xe0:key_deal(1,
13、freq_table0);/dis,freq break;case 0xd0:key_deal(2,freq_table1);/dis,freq break;case 0xb0:key_deal(3,freq_table2);/dis,freq break;case 0x70:key_deal(4,freq_table3);/dis,freq break;default:break;while(temp!=0xf0)temp=P1&0xf0;key_relea();P1=0XFd;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&am
14、p;0xf0;if(temp!=0XF0)switch(temp)case 0xe0:key_deal(1,freq_table4);/dis,freq break;case 0xd0:key_deal(2,freq_table5);/dis,freq break;case 0xb0:key_deal(3,freq_table6);/dis,freq break;case 0x70:key_deal(4,freq_table7);/dis,freq break;default:break;while(temp!=0xf0)temp=P1&0xf0;key_relea();P1=0XFb
15、;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&0xf0;if(temp!=0XF0)switch(temp)case 0xe0:key_deal(5,freq_table8);/dis,freq break;case 0xd0:key_deal(6,freq_table9);/dis,freq break; case 0xb0:key_deal(7,freq_table10);/dis,freq break;case 0x70:key_deal(8,freq_table11);/dis,freq break;default:br
16、eak;while(temp!=0xf0)temp=P1&0xf0;key_relea();P1=0XF7;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&0xf0;if(temp!=0XF0) switch(temp) case 0xe0: key_deal(5,freq_table12);/dis,freq break; case 0xd0: key_deal(6,freq_table13);/dis,freq break; case 0xb0: key_deal(7,freq_table14);/dis,freq br
17、eak; case 0x70: key_deal(8,freq_table15);/dis,freq break; default: break; while(temp!=0xf0) temp=P1&0xf0; key_relea();七 調(diào)試說(shuō)明、使用說(shuō)明1 調(diào)試說(shuō)明1用protus畫好電路原理圖,將hex文件加載到單片機(jī)里面,進(jìn)行仿真,依次按下16個(gè)鍵位,觀察其結(jié)果是否與預(yù)想中的一樣,若一樣,則進(jìn)行硬件調(diào)試。2. 利用單片機(jī)學(xué)習(xí)板,將keil所建工程所生成的hex文件下載到單片機(jī) 17里面,直接按下矩陣鍵盤上的16個(gè)按鍵就可以彈奏16種音符并且八位數(shù)碼顯示器上顯示鍵值。八 設(shè)計(jì)總結(jié)
18、通過(guò)這次的設(shè)計(jì)使我認(rèn)識(shí)到我對(duì)單片機(jī)方面的知識(shí)知道的太少了,對(duì)于書本上的很多知識(shí)還不能靈活運(yùn)用,有很多我們需要掌握的知識(shí)在等著我去學(xué)習(xí),我會(huì)在以后的學(xué)習(xí)生活中彌補(bǔ)我所缺少的知識(shí)。本次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識(shí)運(yùn)用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識(shí),而我們應(yīng)把所學(xué)的用到我們現(xiàn)實(shí)的生活中去,此次的電子琴設(shè)計(jì)給我奠定了一個(gè)實(shí)踐基礎(chǔ),我會(huì)在以后的學(xué)習(xí)、生活中磨練自己,使自己適應(yīng)于以后的競(jìng)爭(zhēng)。九 參考文獻(xiàn)1 王迎旭. 單片機(jī)原理及應(yīng)用M. 機(jī)械工業(yè)出版社.2 郭天祥. 新概念51單片機(jī)C語(yǔ)言教程入門、提高、開(kāi)發(fā)、拓展
19、M .電子工業(yè)出版社.附錄一 程序清單#include<reg51.h>#define uint unsigned int#define uchar unsigned char#define dis_stop P0=0XFF;P3=0X00; sbit p21=P21;uint T0_value_a,T0_value_b;/用來(lái)存放T0的初值 uint temp;/*音符頻率表*/ uint code freq_table=64580,64684,64777,64820,65058,65110,65157,65178,64898,64968,65030,65128,65217,65
20、252,65283,65300;/*數(shù)碼管段譯碼表*/ uchar code table_p0=0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xf9;/*數(shù)碼管位譯碼表*/ uchar code table_p3=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;void delayms(uint);void key_scan();void key_deal(uchar,uint);void set_T0(uint,uint);void key_relea();void Freq_T0() interrupt 1TH0=T0_value_
21、a;TL0=T0_value_b;p21=p21; void main()TMOD=0x01;EA=1;ET0=1;while(1)key_scan();void key_scan()P1=0XFE;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&0xf0;if(temp!=0XF0)switch(temp)case 0xe0:key_deal(1,freq_table0);/dis,freq break;case 0xd0:key_deal(2,freq_table1);/dis,freq break;case 0xb0:key_
22、deal(3,freq_table2);/dis,freq break;case 0x70:key_deal(4,freq_table3);/dis,freq break;default:break;while(temp!=0xf0)temp=P1&0xf0;key_relea();P1=0XFd;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&0xf0;if(temp!=0XF0)switch(temp)case 0xe0:key_deal(1,freq_table4);/dis,freq break;case 0xd0:
23、key_deal(2,freq_table5);/dis,freq break;case 0xb0:key_deal(3,freq_table6);/dis,freq break;case 0x70:key_deal(4,freq_table7);/dis,freq break;default:break;while(temp!=0xf0)temp=P1&0xf0;key_relea();P1=0XFb;temp=P1&0xf0;if(temp!=0XF0)delayms(10);temp=P1&0xf0;if(temp!=0XF0)switch(temp)case 0xe0:key_deal(5,freq_table8);/dis,freq break;case 0xd0:key_deal(6,freq_table9);/dis,freq break; case 0xb0:key_deal(7,freq_table10);/dis,freq break;case 0x70:key_deal(8,freq_table11);/dis,freq break;defau
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024新媒體內(nèi)容版權(quán)授權(quán)與保護(hù)合作協(xié)議2篇
- 2024年標(biāo)準(zhǔn)土地共同開(kāi)發(fā)合同版
- 2023-2024學(xué)年高中信息技術(shù)選擇性必修1(浙教版2019)數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)-說(shuō)課稿-5.4-數(shù)據(jù)查找
- 2024提高教育資源共享傳播能力采購(gòu)合同3篇
- 2024數(shù)碼相機(jī)租賃與體育賽事轉(zhuǎn)播合同范本3篇
- 高血壓健康宣教
- 專業(yè)車輛租賃協(xié)議:2024經(jīng)典版式版
- 職業(yè)學(xué)院學(xué)生外出活動(dòng)安全承諾書
- 2024志愿服務(wù)協(xié)議書
- 個(gè)人最高額抵押融資協(xié)議樣本(2024版)版B版
- 建筑工地節(jié)前停工安全檢查表
- 【語(yǔ)法】小學(xué)英語(yǔ)語(yǔ)法大全
- 除濕機(jī)說(shuō)明書
- 春節(jié)新年紅燈籠中國(guó)風(fēng)信紙
- 優(yōu)雅清新浪漫簡(jiǎn)潔的PPT模板背景(免費(fèi))
- 現(xiàn)代電路技術(shù)——故障檢測(cè)D算法
- 鈑金與成型 其它典型成形
- 注塑件生產(chǎn)通用標(biāo)準(zhǔn)
- 胃腸外科診療規(guī)范成文版
- 八卦象數(shù)療法
- 項(xiàng)目部質(zhì)量管理體系
評(píng)論
0/150
提交評(píng)論