單片機課程設(shè)計--基于51單片機的簡易電子琴_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于51單片機的簡易電子琴</p><p><b>  一、前言:</b></p><p>  我們生活在一個信息時代,各種電子產(chǎn)品層出不窮,作為一個電子信息專業(yè)的學(xué)生,了解這些電子產(chǎn)品的基本組成和設(shè)計原理是十分必要的,我們學(xué)習(xí)的是51單片機原理與應(yīng)用,而課程設(shè)計正是對我們學(xué)習(xí)的理論的實踐與鞏固。本設(shè)計主要介紹的是基于51單片機的簡易電子琴,設(shè)計

2、的一個具有若干功能的簡易電子琴,本設(shè)計使用的語言是匯編語言。</p><p><b>  二、設(shè)計目的:</b></p><p> ?。?)能夠?qū)﹄娮与娐?、電子元器件等方面的知識有進一步的認(rèn)識,獨立對其進行測試與檢查;</p><p> ?。?)熟悉8051單片機的內(nèi)部結(jié)構(gòu)和功能,合理使用其內(nèi)部寄存器,能夠完成匯編語言編程設(shè)計工作;</p

3、><p> ?。?)為實現(xiàn)預(yù)期功能,能夠?qū)ο到y(tǒng)進行快速的調(diào)試,并能夠?qū)δ芄收线M行分析,急時修改相關(guān)軟硬件;</p><p> ?。?)對軟件編程,排錯調(diào)試,相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。</p><p><b>  三、系統(tǒng)功能要求:</b></p><p>  1.具有發(fā)出C大調(diào)為標(biāo)準(zhǔn)音123456

4、7和1八個音的功能。</p><p>  2. 設(shè)計完整的原理圖電路,包括時鐘電路、復(fù)位電路以及鍵盤接口電路等。</p><p><b>  四、實驗原理:</b></p><p>  音樂產(chǎn)生原理及硬件設(shè)計由于一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單

5、片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可。本次設(shè)計中單片機晶振為12MHZ,那么定時器的計數(shù)周期為1MHZ,假如選擇工作方式1,那T值便為T=65536-1000000/2/f相應(yīng)的頻率 ,那么根據(jù)不同的頻率計算出應(yīng)該賦給定時器的計數(shù)值:</p><p>  采用查表程序進行查表時,可以為這個音符建立一個表格,有

6、助于單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù):</p><p>  TAB1:DB0FCH,46H,0FCH,0AEH,0FDH,0AH,0FDH,34H,0FDH,82H,0FDH,0C8H,0FEH,06H,0FCH,46H</p><p>  TAB2:DB0FEH,22H,0FEH,5BH,0FEH,84H,0FEH,9AH,0FEH,0C1H,0FEH,0E4H,0FFH,03H,

7、0FEH,22H</p><p>  TAB3:DB0FFH,11H,0FFH,2BH,0FFH,46H,0FFH,4DH,0FFH,60H,0FFH,72H,0FFH,81H,0FFH,11H</p><p><b>  系統(tǒng)整體安排如下:</b></p><p>  1、按下K1鍵發(fā)出1的聲音。</p><p>  

8、2、按下K2鍵發(fā)出2的聲音。</p><p>  3、按下K3鍵發(fā)出3的聲音。</p><p>  4、按下K4鍵發(fā)出4的聲音。</p><p>  5、按下K5鍵發(fā)出5的聲音。</p><p>  6、按下K6鍵發(fā)出6的聲音。</p><p>  7、按下K7鍵發(fā)出7的聲音。</p><p>

9、  8、按下K8鍵發(fā)出1的聲音。</p><p>  9、單片機可采用AT89C51、AT89C52、AT89S52、fosc=12MHz。</p><p>  10、時鐘電路,復(fù)位電路的設(shè)計。</p><p>  8051單片機根據(jù)不同的琴鍵產(chǎn)生不同的樂曲音符,并經(jīng)過信號放大,由喇叭放出。系統(tǒng)整體方案如圖所示:</p><p><b&

10、gt;  五:實驗步驟:</b></p><p>  1、硬件系統(tǒng)原理圖如圖:</p><p>  2、頻率、聲音的實現(xiàn)和產(chǎn)生</p><p>  單片機的頻率和聲音輸出的原理是,利用琴鍵控制定時器的開中斷和閉中斷,即實現(xiàn)發(fā)音和閉音。在此期間再通過對定時器的定時時間進行控制來產(chǎn)生不同頻率的方波,驅(qū)動嗡寧器發(fā)出不同音階的聲音。把相應(yīng)琴鍵對應(yīng)的音符變換為定常

11、數(shù),作為數(shù)據(jù)表格存放在存儲器中。由程序查表得到定時常數(shù),用以控制定時器產(chǎn)生方波的頻率。當(dāng)下一個琴鍵按下時,再查下此琴鍵所對應(yīng)音符的定時常數(shù)。依次進行下去,就可以演奏出自己所要的歌曲。</p><p><b>  3、鍵盤的方案選擇</b></p><p>  此系統(tǒng)琴鍵輸入是通過獨立式鍵盤來完成的。由于8051單片機的八位I/O口足以能實現(xiàn)控制各音階的輸出,并且獨立式

12、鍵盤的編程容易易懂,結(jié)構(gòu)簡單,實現(xiàn)起來方便,而且每個按鍵單獨占有一根I/O接口線,每個I/O口的工作狀態(tài)互不影響,所以采用獨立式鍵盤。P1.0~P1.7 口分別對應(yīng)琴鍵1~7輸入,如下圖所示。</p><p>  4、關(guān)于鍵盤的抖動問題的分析和解決</p><p>  當(dāng)用手按下一個鍵時,如圖所示,往往按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況;在釋放一個鍵時,也回會出現(xiàn)類似

13、的情況。這就是抖動。抖動的持續(xù)時間隨鍵盤材料和操作員而異,不過通??偸遣淮笥?0ms。很容易想到,抖動問題不解決就會引起對閉合鍵的識別。</p><p>  用軟件方法可以很容易地解決抖動問題,這就是通過延遲10ms來等待抖動消失,這之后,再讀入鍵盤碼。</p><p>  延遲10ms的程序為:</p><p>  MOV R1, #100

14、 ;執(zhí)行次數(shù)為1</p><p>  D1: MOV R2, #98 ;執(zhí)行次數(shù)為100</p><p>  NOP ;執(zhí)行次數(shù)為100</p><p>  D2: DJNZ R2, D2 ;執(zhí)行次數(shù)為100ⅹ98</p><p> 

15、 DJNZ R1, D1 ;執(zhí)行次數(shù)為48</p><p>  延遲時間與指令執(zhí)行時間有密切的關(guān)系,在使用6MHz晶振時,一個機器周期為 0.5μs,執(zhí)行一條MOV指令時間為0.5μs, 執(zhí)行一條DJNZ指令時間為1μs。</p><p>  則實際延遲時間=1ⅹ0.5+100ⅹ0.5+100ⅹ0.5+100ⅹ98ⅹ1+98ⅹ1=99.985≈10ms。<

16、;/p><p><b>  5.放大電路分析</b></p><p>  此部分的放大電路簡單容易實現(xiàn)??梢圆捎靡粋€小功率PNP型硅管2N2905,利用“分壓偏置式工作點穩(wěn)定直流通路”,達到了對靜態(tài)工作點的穩(wěn)定。分壓電阻分別選擇1K和5.5K。蜂鳴器一端接+5V電壓,一端接晶體管的發(fā)射極。由P2.7輸出預(yù)定的方波,加到晶體管進行放大,再輸出到嗡寧器,很好的實現(xiàn)了頻率、聲音

17、的轉(zhuǎn)換。</p><p>  6.時鐘電路和復(fù)位電路的論證和分析:</p><p>  此系統(tǒng)的時鐘電路設(shè)計是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。</p><p>  MCS-51內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以

18、及電容CX1和CX2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12 MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22μF。</p><p>  復(fù)位電路的論證和分析:</p><p>  MS-51的復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。片內(nèi)復(fù)位電

19、路是復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路,如圖所示。當(dāng)時鐘頻率選用12MHz時,C取22μF,R2約為100Ω,R1約為10KΩ。</p><p><b>  六、系統(tǒng)軟件設(shè)計</b></p><

20、p>  1、系統(tǒng)程序流程如圖所示:</p><p><b>  2、程序清單:</b></p><p>  ORG 0000H</p><p><b>  LJMP MAI</b></p><p>  ORG 000BH</p><p><b>  LJ

21、MP TIM</b></p><p>  MAI: MOV P1,#0FFH</p><p>  CLR TR0 ;關(guān)閉上一次定時,進入下一次按鍵判斷</p><p>  MOV TMOD, #01H</p><p>  MOV IE, #82H</p><p>  MO

22、V A, P2.7</p><p>  MOV 30H, A ;保存鍵盤狀態(tài)值 </p><p>  LCALL D10MS ;延遲10ms消除抖動</p><p>  MOV A , P2.7 ;再讀鍵盤狀態(tài)</p><p>  CJNE A, 30H,

23、MAI ;兩次結(jié)果不同,是抖動引起,轉(zhuǎn)MAI</p><p>  MAIN: MOV R7,#00H ;判斷哪個鍵按下</p><p>  JNB P1.0,KEY</p><p>  MOV R7,#02H</p><p>  JNB P1.1,KEY</p><p>  MOV

24、R7,#04H</p><p>  JNB P1.2,KEY</p><p>  MOV R7,#06H</p><p>  JNB P1.3,KEY</p><p>  MOV R7,#08H</p><p>  JNB P1.4,KEY</p><p>  MOV R7,#0AH</p

25、><p>  JNB P1.5,KEY</p><p>  MOV R7,#0CH</p><p>  JNB P1.6,KEY</p><p>  MOV R7,#0EH</p><p>  JNB P1.7,KEY</p><p><b>  AJMP MAIN</b>&l

26、t;/p><p>  KEY:JNB P2.0,LTUNE ;判斷低音、中音、高音哪個鍵按下</p><p>  JNB P2.1,MTUNE</p><p>  JNB P2.2,HTUNE</p><p>  LTUNE:MOV DPTR,#TAB1 ;低音,查找表TAB1賦給DPTR,跳至CON<

27、/p><p><b>  AJMP CON</b></p><p>  MTUNE:MOV DPTR,#TAB2 ;中音,查找表TAB2賦給DPTR,跳至CON</p><p><b>  AJMP CON</b></p><p>  HTUNE:MOV DPTR,#TAB3

28、;高音,查找表TAB3賦給DPTR,跳至CON </p><p><b>  AJMP CON</b></p><p>  CON: SETB P2.7</p><p>  MOV R2,#0FFH</p><p>  CON1: MOV A,R7</p><p>  MOVC A,@A+

29、DPTR </p><p>  MOV TMOD,#01H</p><p>  MOV TH0,A</p><p><b>  CLR A</b></p><p><b>  INC A</b></p><p>  MOVC A,@A+DPTR</p>&l

30、t;p>  MOV TL0,A</p><p><b>  SETB TR0</b></p><p>  AGA1: JBC TF0,SHI</p><p>  SJMP AGA1 </p><p>  SHI: CPL P2.7</p><p>  DJNZ R2,CON1&

31、lt;/p><p><b>  SJMP MAIN</b></p><p>  TIM: MOV TH0, R1 ;重裝定時器初值</p><p>  MOV TL0, R0</p><p><b>  CPL P2.7</b></p><p>&

32、lt;b>  RETI </b></p><p>  D10MS:MOV R1, #100 ;延時10ms子程序</p><p>  D1: MOV R2, #98</p><p><b>  NOP</b></p><p>  D2: DJNZ R2, D2&

33、lt;/p><p>  DJNZ R1, D1</p><p><b>  RET</b></p><p>  TAB1:DB0FCH,46H,0FCH,0AEH,0FDH,0AH,0FDH,34H,0FDH,82H,0FDH,0C8H,0FEH,06H,0FCH,46H</p><p>  TAB2:DB0FEH,22H

34、,0FEH,5BH,0FEH,84H,0FEH,9AH,0FEH,0C1H,0FEH,0E4H,0FFH,03H, 0FEH,22H</p><p>  TAB3:DB0FFH,11H,0FFH,2BH,0FFH,46H,0FFH,4DH,0FFH,60H,0FFH,72H,0FFH,81H,0FFH,11H</p><p><b>  END </b></p&

35、gt;<p><b>  程序說明:</b></p><p>  先復(fù)位,使用指令ORG 0000H,選用計時器T0,P1口作為輸入,先賦1,使用指令MOV P1,#0FFH,然后進行鍵盤消抖,MAIN子程序快里是判斷哪個音符鍵按下,然后跳轉(zhuǎn)到KEY,KEY子程序塊是判斷低音、中音、高音三個鍵之一是否按下,然后跳轉(zhuǎn)到相應(yīng)的子程序,低音跳轉(zhuǎn)到LTUNE,中音跳轉(zhuǎn)到MTUNE,高

溫馨提示

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

評論

0/150

提交評論