基于單片機(jī)的簡單電子琴設(shè)計(jì)_第1頁
基于單片機(jī)的簡單電子琴設(shè)計(jì)_第2頁
基于單片機(jī)的簡單電子琴設(shè)計(jì)_第3頁
基于單片機(jī)的簡單電子琴設(shè)計(jì)_第4頁
基于單片機(jī)的簡單電子琴設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)原理與應(yīng)用課程設(shè)計(jì)報(bào)告基于單片機(jī)的簡易電子琴設(shè)計(jì)專業(yè):學(xué)號(hào):姓名:2015-12-25一、課題名稱基于單片機(jī)的簡易電子琴設(shè)計(jì)二、任務(wù)要求1、4x4鍵盤矩陣識(shí)別,即矩陣掃描,顯示當(dāng)前的音符。2、不同頻率音符播放,可以通過按鍵控制16種發(fā)音。三、任務(wù)分析1、以AT89C51單片機(jī)為核心控制元件,與鍵盤,揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。2、從電路原理圖,主要芯片、模塊原理及各模塊的程序等方面入手設(shè)計(jì)。3、效果按下鍵盤矩陣中的按鍵會(huì)是數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的音符。四、設(shè)計(jì)方案1、硬件方案本系統(tǒng)只要以51單片機(jī)為主控核心,與矩陣鍵盤、揚(yáng)聲器、LED顯

2、示管模塊一起組合而成。具體如下:表1.簡易電子琴硬件方案數(shù)碼管單片機(jī)矩陣鍵盤揚(yáng)聲器2、軟件方案仿真使用Proteus軟件,可以將電子琴仿真實(shí)驗(yàn)形象化,幫助我們學(xué)習(xí)。仿真原理圖一共分為四個(gè)部分,AT89C51單片機(jī)及其復(fù)位電路、時(shí)鐘電路部分,4x4矩陣鍵盤部分,LED顯示管部分,揚(yáng)聲器部分。所需元器件有:AT89C51(51單片機(jī)),7SEG-COM-AN-BLUE(藍(lán)色7段數(shù)碼管)BUTTON(按鍵),CAP(電容),CRYSTAL(晶振),MINELECT100U10V(電解電容)RESPACK-8(有公共端電阻排),RT0805FRE071KL(電阻),SOUNDER(揚(yáng)聲器)五、具體實(shí)現(xiàn)

3、1、硬件電路圖及工作原理描述 本系統(tǒng)由鍵盤矩陣、LED顯示管、揚(yáng)聲器這幾個(gè)部分組成,LED顯示管顯示當(dāng)前按鍵,揚(yáng)聲器發(fā)出對(duì)應(yīng)音符。硬件總體設(shè)計(jì)圖如下:圖1.硬件總體原理圖LED顯示模塊如圖所示,利用AT89S51單片機(jī)的P0端口的P0.0P0.7連接到一個(gè)七段數(shù)碼管的ah的筆段上,數(shù)碼管的公共端接電源。圖2.LED顯示模塊矩陣掃描顯示當(dāng)前按鍵模塊如下:圖3.矩陣掃描模塊矩陣掃描揚(yáng)聲器發(fā)出對(duì)應(yīng)音符模塊如下:圖4.揚(yáng)聲器模塊單片機(jī)時(shí)鐘電路,復(fù)位電路如下:圖5.時(shí)鐘電路、復(fù)位電路2、軟件流程圖及對(duì)應(yīng)實(shí)現(xiàn)程序本系統(tǒng)的軟件流程圖如下: 表2.軟件總體流程圖開始模塊初始化發(fā)送掃描碼有鍵按下 否掃描鍵盤矩陣

4、 是停止播放顯示按鍵啟動(dòng)定時(shí)器根據(jù)KEY發(fā)音延時(shí)結(jié)束 七段LED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的極管的接線形式,可分成共陰極型和共陽極型。 LED數(shù)碼管的ga七個(gè)發(fā)光二極管因加零電壓而發(fā)亮,因加正電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼。本系統(tǒng)按鍵顯示模塊軟件流程圖如下: 表3.按鍵模塊軟件流程圖開始模塊初始化有鍵按下 是 掃描鍵盤矩陣 否顯示按鍵結(jié)束 一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單

5、片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系正確即可。 利用AT89C51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計(jì)數(shù)器計(jì)時(shí)956s/1s956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系式是:Nfi÷2÷fr 2-1式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下:T65536N655

6、36fi÷2÷fr例如:設(shè)K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。T65536N65536fi÷2÷fr655361000000÷2÷fr65536500000/fr低音DO的T65536500000/26263627中音DO的T65536500000/52364580高音DO的T65536500000/104665059本系統(tǒng)按鍵發(fā)出對(duì)應(yīng)音符模塊軟件流程圖如下: 表4.揚(yáng)聲器模塊流程圖開始模塊初始化有鍵按下 是掃描鍵盤矩陣 否啟動(dòng)定時(shí)器根據(jù)KEY發(fā)音結(jié)束Keil

7、軟件程序:#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar temp,num;uint x,y;sbit bell=P30;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff, ;uint code yy=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968

8、,65030,65058,65110,65157,65178, ;void delay(uint z)for(x=z;x>0;x-)for(y=110;y>0;y-);void timer0() interrupt 1 TH0=yynum/256;TL0=yynum%256;bell=bell;void display(num) P0=tablenum; void keyscan()P1=0xfe;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0)t

9、emp=P1;switch(temp)case 0xee:num=0; break;case 0xde:num=4; break;case 0xbe:num=8; break;case 0x7e:num=12; break;P1=0xfd;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0)temp=P1;switch(temp)case 0xed:num=2; break;case 0xdd:num=6; break;case 0xbd:num=10; brea

10、k;case 0x7d:num=14; break; P1=0xfb;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0)temp=P1;switch(temp)case 0xeb:num=2; break;case 0xdb:num=6; break;case 0xbb:num=10; break;case 0x7b:num=14; break;P1=0xf7;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);

11、temp=P1;temp=temp&0xf0;if(temp!=0xf0)temp=P1;switch(temp)case 0xe7:num=3; break;case 0xd7:num=7; break;case 0xb7:num=11; break;case 0x77:num=15; break; void main()bell=0;EA=1;ET0=1;TR0=0;TMOD=0x01;num=16;P0=tablenum; while(1)P1=0xf0;if(P1!=0xf0)keyscan();display(num);TR0=1;elseTR0=0;delay(2); 六、

12、仿真、實(shí)驗(yàn)驗(yàn)證過程及硬件結(jié)果、現(xiàn)象1、按照設(shè)計(jì)要求在Proteus軟件上做出仿真電路。2、利用Keil軟件編寫相應(yīng)的單片機(jī)程序,以實(shí)現(xiàn)硬件仿真電路的功能。3、仿真結(jié)果截圖如下:圖6.Proteus仿真結(jié)果七、總結(jié)(體會(huì)) 通過這次課程設(shè)計(jì),我學(xué)到了不少課本上沒有的知識(shí),也鍛煉了自己的動(dòng)手能力,將以前學(xué)過的零散的知識(shí)串到一起。經(jīng)過我長時(shí)間的設(shè)計(jì)及調(diào)試,本系統(tǒng)基本能實(shí)現(xiàn)按下鍵盤矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的音符。但本設(shè)計(jì)音頻效果不是很好。不足之處有:1.可彈奏的音符數(shù)較少,只能在一定范圍內(nèi)滿足用戶需要2.音量不可調(diào)。 我的綜合設(shè)計(jì)主要涉及硬件和軟件兩方面的內(nèi)容,通過這些我的硬件和軟件開發(fā)能力都獲

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論