基于C51單片機電子琴的設(shè)計與實現(xiàn)_第1頁
基于C51單片機電子琴的設(shè)計與實現(xiàn)_第2頁
基于C51單片機電子琴的設(shè)計與實現(xiàn)_第3頁
基于C51單片機電子琴的設(shè)計與實現(xiàn)_第4頁
基于C51單片機電子琴的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. . . 基于C51單單片機電子琴的設(shè)計與實現(xiàn)組員:周靜馬帥夢艷班級:通信2班1.設(shè)計任務(wù)與要求22方案論證32.1單片機32.2發(fā)聲器43.理論分析與計算:44.硬件電路與程序設(shè)計64.1電路圖:64.2程序框圖65.軟件程序76總結(jié)與展望13附錄1:14附錄2:14摘要:打造一個多功能電子琴,核心是一塊單片機。單片機讀取鍵值,為置定時器賦初值,定時器每溢出一次,驅(qū)動蜂鳴器的引腳電平就取反一次,產(chǎn)生相應(yīng)頻率的方波,即音調(diào);設(shè)好鍵值與數(shù)碼管段碼表的對應(yīng)關(guān)系,鍵按下時,數(shù)碼管顯示對應(yīng)音調(diào)。 一首音樂儲存在一個表中,表中的數(shù)據(jù)是音調(diào)與節(jié)拍,單片機讀取音符的音調(diào)與節(jié)拍,根據(jù)音調(diào)賦予定時器

2、初值,根據(jù)節(jié)拍決定定時器工作的時間,也就是蜂鳴器響的時間,一個接一個地讀取音符,即可播放一首歌曲。關(guān)鍵字:單片機電子琴蜂鳴器1.設(shè)計任務(wù)與要求電子琴設(shè)有8個按鍵,其中7個作為音符輸入,另外1個作為模式轉(zhuǎn)換按鍵,實現(xiàn)用戶作曲。7個按鍵分別代表7個音符,包括中音段的全部音符。通過軟硬件設(shè)計,模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實現(xiàn)模式轉(zhuǎn)換,啟動電子琴。然后通過查詢電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對應(yīng)的程序人口,實現(xiàn)自編歌曲。當(dāng)需要取消電子琴編曲功能時,再次按下模式轉(zhuǎn)換按鍵引起外部中斷即可退出電子琴功能而返回到原來音樂播放處。2方案論證2.1單片機方案一:AT89C51是美國AT

3、MEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片含4k bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。方案二:采用凌陽公司的SPCE061A單片機作為控制器的方案。該單片機I/O資源豐富,并集成了語音功能。它整合了多個常用的功能模塊,讓我們在進行系統(tǒng)開發(fā)的時候不用外加過多的硬件就可方便的&#

4、160;完成一個系統(tǒng)的設(shè)計,這就是人們常說的 SoC(System on chip)技術(shù)。 耗電少,可以滿足很多手提設(shè)備、掌上設(shè)備低能耗的需求,低能耗也是電子技術(shù)一直在追求的 一個目標(biāo)。但其價格較高。 方案三:TI公司的MSP430系列是一個特別強調(diào)超低功耗的單片機品種很適合應(yīng)用于采用電池供電的長時間工作場合在這個系列中有很多個型號它們是由一些基本功能模塊按不同的應(yīng)用目標(biāo)組合而成MSP430系列的CPU采用16位精簡指令系統(tǒng),集成有16位寄存器和常數(shù)發(fā)生器 發(fā)揮了最高的代碼效率它采用數(shù)字控制振蕩器DCO使得從低功耗模式到喚醒

5、模式的轉(zhuǎn)換時間小于6 µs. 其中MSP430x41x 系列微控制器設(shè)計有一個16位定時器,一個比較器,96段LCD驅(qū)動器和48個通用I/O引腳。 根據(jù)這次實訓(xùn)的要求,方案三單片機原理復(fù)雜,掌握難度大,方案二,價格較高,方案一已經(jīng)能夠滿足我們的需要,且價格低廉,經(jīng)濟實用,故采用方案一。2.2發(fā)聲器方案一:采用中頻揚聲器。一般來說,只要頻率響應(yīng)曲線平坦,有效頻響圍大于它在系統(tǒng)中擔(dān)負的放聲頻帶的寬度,阻抗與靈敏度和低頻單元一致即可。有時中音的功率容量不夠,也可選擇靈敏度較高,而阻抗高于低音單元的中音,從而減少中音單元的實際輸入功率。中音單元一般有錐

6、盆和球頂兩種。只不過它的尺寸和承受功率都比高音單元大而適合于播放中音頻而已。方案二:采用蜂鳴器。它的優(yōu)點如下:1. 便宜;2. 聲音頻率可控,可以做出“多來米發(fā)索拉西”的效果;3. 在一些特例中,可以和LED復(fù)用一個控制口。4. 程序控制方便。我們采用方案二,操作簡單,價格合適。3.理論分析與計算:系統(tǒng)初始化后,進入按鍵掃描函數(shù)。當(dāng)檢測到按鍵被按下時,判斷是1到7按鍵還是8按鍵,若是1到7按鍵被按下則啟動定時器T1,按照音階所對應(yīng)的周期初始值數(shù)組表中的初值,輸出方波信號;當(dāng)判斷是第八個按鍵被按下時,直接調(diào)用揮著翅膀的女孩歌曲的音調(diào)和節(jié)拍數(shù)組,啟用中斷循環(huán)輸出。各個音階的頻率以與對應(yīng)半周期如下圖

7、所示:通過Time0的溢出中斷實現(xiàn)單頻產(chǎn)生。Time0的溢出中斷發(fā)生后輸出引腳的電壓反向,然后定時器重新裝入初值。所以編程時要確定Time0的工作模式和計數(shù)初值。這里采用工作模式1,定時器的初值設(shè)定通過軟件重復(fù)實現(xiàn)。而且定時器的初值則依據(jù)各音頻頻率設(shè)置。例如:中音Do音頻是523Hz,其周期T=l523=1 912s,其半周期為19122=956s。本設(shè)計的計時時鐘周期是ls,因此設(shè)置Time0的計數(shù)器每計956次則中斷一次,從而實現(xiàn)Do的音頻,然后通過中斷觸發(fā)實現(xiàn)引腳電壓的循環(huán)取反得到相應(yīng)音頻輸出。4.硬件電路與程序設(shè)計4.1電路圖:我們按鍵部分用AT89C51的P0口,而該芯片的P0需接上

8、拉電阻,一共需要八個,因此我們用9引腳的排阻代替,排阻多出來的一個引腳接VCC。4.2程序框圖經(jīng)過以上分析論證,最終我們得到如下框圖。AT89C51聲音模塊放大電路模塊系統(tǒng)時鐘硬件復(fù)位按鍵模塊5.軟件程序#include <reg52.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned intsbit buz=P31;uchar keycode;uchar i,j;uint toneh8= 0xfc43,0xfcab,0xfd09,0xfd33,0xfd81,0xfdc7,0xfe05

9、,0xfe21;uchar keymode8= 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code Music_hzcb=0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03,

10、0x18,0x02,0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,0x18,0x03, 0x17,0x03

11、, 0x18,0x03, 0x20,0x03, 0x20,0x02,0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0

12、x03,0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,0x1B,0x03, 0x1A,0x03, 0x19

13、,0x03, 0x19,0x02, 0x17,0x03,0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,0

14、x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,0x1B,0x03, 0x1F,0x66, 0x1F,0x03

15、, 0x1B,0x03, 0x19,0x03,0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0xff,0xff; unsigned char code Music_Code= 0xf8,0x8b,0xf9,0x5b,0xfa,0x14

16、,0xfa,0x66, /11111000,100010110xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfd,0xee; unsigned char const yinfu1314=0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0xfd,0xc7,0xfe,0x050xfb,0x21,0xfe,0x55,0xfe,0x84,0xfe,0x99,0xfe,0xc0,0xfe,0xe3,0

17、xff,0x02; /11111000,10001011unsigned char const length=1,2,4,8,16,32,64;unsigned char sth,stl;void delay_ms(unsigned int k) / 12Munsigned int i0;unsigned char i,j;for(i0=0;i0<k;i0+)for(i=5;i>0;i-)for(j=97;j>0;j-); void Sys_Init() TMOD=0x10; EA=1; ET1=1; P1=0xff; uchar Get_Key ()uchar i,temp

18、;P1=0xff;temp=P1;for(i=0;i<8;i+)if(temp=keymodei)return i; return 8;void Play(uchar key) uchar j;if(key=7) TR1=1; for(j=0;Music_hzcbj!=0xff;j+) keycode=Music_hzcbj; delay_ms(10);sth=yinfu1(Music_hzcbj%100)/10-1(Music_hzcbj%10)-1)*2;stl=yinfu1(Music_hzcbj%100)/10-1(Music_hzcbj%10)-1)*2+1;j+;TR0=1;delay_ms(4*500/lengthMusic_hzcbj%10);TR0=0; for (;)while(P3=0x7f);delay_ms(

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論