電子音調(diào)發(fā)生器_第1頁(yè)
電子音調(diào)發(fā)生器_第2頁(yè)
電子音調(diào)發(fā)生器_第3頁(yè)
電子音調(diào)發(fā)生器_第4頁(yè)
電子音調(diào)發(fā)生器_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機(jī)課程設(shè)計(jì)報(bào)告電子音調(diào)發(fā)生器 1 課程設(shè)計(jì)總體目標(biāo)1.1 總體結(jié)構(gòu)圖1 總體結(jié)構(gòu)1.2 設(shè)計(jì)要求 利用JD51開發(fā)板上的按鍵S1S4和蜂鳴器設(shè)計(jì)電子音調(diào)發(fā)生器,要求:(1)利用JD51開發(fā)板上的按鍵S1S4進(jìn)行音調(diào)選擇,即按下不同的開關(guān)產(chǎn)生不同的音調(diào),依次按動(dòng)S1S4 及組合按鍵,蜂鳴器發(fā)出i八個(gè)音調(diào);并在數(shù)碼管上顯示。(2)編寫2支歌曲,并可進(jìn)行選擇播放。1.3 設(shè)計(jì)目的(1) 了解計(jì)算機(jī)發(fā)聲原理。(2) 熟悉定時(shí)器和鍵盤掃描電路的工作原理及編程方法。1.4 設(shè)計(jì)原理(1)音節(jié)由不同頻率的方波產(chǎn)生,音節(jié)與頻率的關(guān)系如表1所示。要產(chǎn)生音頻方波,只要算出某一音頻的周

2、期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用計(jì)時(shí)器計(jì)時(shí)此半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出方波的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳得到此頻率的方波。在JD51單片機(jī)上,產(chǎn)生方波的I/O腳選用P2.4,通過跳線選擇器將單片機(jī)的P2.4與蜂鳴器的驅(qū)動(dòng)電路相連。這樣P2.4輸出不同頻率的方波,蜂鳴器便會(huì)發(fā)出不同的聲音。另外,音樂的節(jié)拍是由延時(shí)實(shí)現(xiàn)的,如果1拍為0.4秒,1/4拍是0.1秒。只要設(shè)定延時(shí)時(shí)間,就可求得節(jié)拍的時(shí)間。延時(shí)作為基本延時(shí)時(shí)間,節(jié)拍值只能是它的整數(shù)倍。 每個(gè)音節(jié)相應(yīng)的定時(shí)器初值X可按下法計(jì)算: (1) 即 (2) 其中f:音調(diào)頻率,當(dāng)晶

3、振fose=11.0592MHz時(shí),音節(jié)“1”相應(yīng)的定時(shí)器初值為x,則可得x=63777D=F921H 其它的可同樣求得。 音調(diào)低音頻率(Hz)低音計(jì)數(shù)初值X(HEX)中音頻率(Hz)中音計(jì)數(shù)初值X(HEX)高音頻率(Hz)高音計(jì)數(shù)初值X(HEX)1131F242262F921522FC8F2147F3C1294F9E1587FCEF3165F517330FA8C659FD454175F5B7349FAD8700FD6E5196F6D1392FB68784FDB26220F7D1440FBE9880FDEA7247F8B6494FC5B988FE2Ei/523FC8F/表一曲調(diào)值DELAY調(diào)4

4、/4125ms調(diào)3/4187ms調(diào)2/4250ms表二(2)音樂程序查表原理: 樂譜格式:每字節(jié)的高字節(jié)為音符代碼,低字節(jié)為節(jié)拍代碼 音符代碼 1 2 3 4 5 6 7 8 9 A B C D E F 0 音節(jié) .5 .6 .7 1 2 3 4 5 6 7 1 2 3 4 5 休止 節(jié)拍代碼 1 2 3 4 5 6 8 A C F 節(jié)拍 1/4 2/4 3/4 1 1(1/4) 1(1/2) 2 2(1/2) 3 3(3/4)(3)定時(shí)器的使用及時(shí)間延遲,首先對(duì)定時(shí)器進(jìn)行初始化圖2門控位:GATE0,TR=1啟動(dòng)計(jì)數(shù)(軟件啟動(dòng)); GATE1,TR=1 且 INT=1啟動(dòng)計(jì)數(shù)(硬件啟動(dòng))。

5、C/T: 定時(shí)或計(jì)數(shù)方式選擇位。 C/T0,定時(shí)工作方式;C/T1,計(jì)數(shù)工作方式。M1M0:工作方式選擇位。 M1M000,方式0:13位計(jì)數(shù)(TL0-4、TH0-7)M1M001,方式1:16位計(jì)數(shù)(TL0-7、TH0-7)M1M010,方式2:8位計(jì)數(shù),有自動(dòng)裝入功能M1M011,方式3:T0分為兩個(gè)8位計(jì)數(shù)器,TL0可工作為定時(shí)或計(jì)數(shù)方式,TH0只能工作為定時(shí)方式。圖3TR0/TR1:?jiǎn)?dòng)計(jì)數(shù)。為1啟動(dòng)計(jì)數(shù);為0停止計(jì)數(shù)。TF0/TF1:計(jì)數(shù)溢出。當(dāng)加”1”計(jì)數(shù)結(jié)束時(shí)為1。本實(shí)驗(yàn)采用定時(shí)器T0,工作在方式1 (16位計(jì)數(shù)),無自動(dòng)裝入功能。2 硬件設(shè)計(jì)2.1 總體框圖圖4 硬件圖2.2

6、蜂鳴電路 模塊鳴器驅(qū)動(dòng)電路和89C51組成。 選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時(shí)約需要100MA驅(qū)動(dòng)電流。當(dāng)89C51輸出為低電平時(shí)蜂鳴器產(chǎn)生蜂鳴音,89C51 輸出為高電平時(shí),蜂鳴器不發(fā)聲。2.3 硬件電路圖5 電路圖3 軟件設(shè)計(jì)3.1 軟件設(shè)計(jì)流程及描述 根據(jù)要實(shí)現(xiàn)的功能,流程圖如下: 熟悉定時(shí)器和鍵盤掃描電路的工作原理及編程方法。圖6 流程圖圖73.2 軟件設(shè)計(jì)思路 電子音調(diào)發(fā)生器主要的工作是將按鍵的信息讀取,然后根據(jù)按鍵的數(shù)字,用計(jì)數(shù)器輸出相對(duì)應(yīng)的頻率,實(shí)現(xiàn)電子音調(diào)發(fā)生器的音調(diào)。程序主要為5部分,鍵盤掃描、中斷計(jì)時(shí)、數(shù)碼顯示、音樂播放、主程序,他們分別執(zhí)行不同的功能。3.3 各部

7、分功能介紹(1)鍵盤鍵值讀取程序鍵盤鍵值讀取程序包括鍵盤掃描、消除抖動(dòng)、鍵譯碼等內(nèi)容。按鍵的識(shí)別主要有兩種方法:行反轉(zhuǎn)法和行掃描法。因?yàn)殒I盤為機(jī)械開關(guān),容易引入抖動(dòng)。為了消除抖動(dòng)干擾,在程序中要加入消除抖動(dòng)的部分。(2)中斷計(jì)時(shí)中斷部分,中斷定時(shí)器1主要負(fù)責(zé)輸出不同頻率的方波,產(chǎn)生聲音,中斷定時(shí)器1主要是計(jì)時(shí)按鍵時(shí)間及按鍵間隔時(shí)間的功能,在播放音樂的時(shí)候,還擔(dān)任著播放音樂的節(jié)拍的任務(wù)。(3)音樂播放音樂播放部分主要是播放音樂,實(shí)現(xiàn)按鍵重播和播放程序里面的音樂的功能。(4)主程序主程序主要是隨時(shí)發(fā)出按鍵的聲音功能,并且通過不同P口的掃描,判斷是否是播放按鍵聲音還是播放音樂,還是繼續(xù)發(fā)出按鍵聲音。

8、3.4 實(shí)驗(yàn)程序/*SB1 1音 SB2 2音 SB3 3音 SB4 4音 SB1SB2 5音 SB2SB3 6音 SB3SB4 7音 SB1SB4 i音 SB1SB3 第一首歌 SB2SB4 第二首歌 */ORG 0000HLJMP KEYP0KEYP0: MOV R0,#00H CLR TR0 SETB P2.4 ;關(guān)蜂鳴器 SETB P2.3 ;關(guān)數(shù)碼管WU: MOV R0,P3 ;掃描鍵盤輸入 CJNE R0,#0FFH,KEYPO1 ;有輸入時(shí)跳轉(zhuǎn) JMP WUKEYPO1:CJNE R0,#0FBH,KEYPO2 ;輸入1音,非1音跳轉(zhuǎn) SETB P2.4 ;蜂鳴器置于高電平 MO

9、V R3,#200MAIN01:MOV TMOD,#01H ;初始化,工作方式1 MOV TL0,#21H ;寫入計(jì)數(shù)初值 MOV TH0,#0F9H SETB TR0 ;啟動(dòng)計(jì)數(shù) WAIT1:JNB TF0,WAIT1 CLR TF0 CPL P2.4 ;蜂鳴器響 CLR P2.3 ;數(shù)碼管顯示1 MOV A,#B MOV P0,A DJNZ R3,MAIN01 LJMP KEYP0 ;返回程序KEYP0 KEYPO2:CJNE R0,#0F7H,KEYPO3 ; 輸入2音,非2音跳轉(zhuǎn)SETB P2.4 ;蜂鳴器置于高電平MOV R3,#200 MAIN02:MOV TMOD,#01H MO

10、V TL0,#0E1H ;寫入計(jì)數(shù)初值 MOV TH0,#0F9H SETB TR0WAIT2:JNB TF0,WAIT2 CLR TF0 CPL P2.4 ;蜂鳴器響 CLR P2.3 ;數(shù)碼管顯示2 MOV A,#B MOV P0,A DJNZ R3,MAIN02LJMP KEYP0KEYPO3:CJNE R0,#0EFH,KEYPO4 ; 輸入3音,非3音跳轉(zhuǎn)SETB P2.4 ;蜂鳴器置于高電平MOV R3,#200MAIN03:MOV TMOD,#01H MOV TL0,#08CH MOV TH0,#0FAH SETB TR0WAIT3:JNB TF0,WAIT3 CLR TF0 C

11、PL P2.4 CLR P2.3 MOV A,#B MOV P0,A DJNZ R3,MAIN03LJMP KEYP0KEYPO4:CJNE R0,#0DFH,KEYPO5 ; 輸入4音,非4音跳轉(zhuǎn)SETB P2.4MOV R3,#200MAIN04:MOV TMOD,#01H MOV TL0,#0D8H MOV TH0,#0FAH SETB TR0WAIT4:JNB TF0,WAIT4 CLR TF0 CPL P2.4 CLR P2.3 MOV A,#B MOV P0,A DJNZ R3,MAIN04LJMP KEYP0KEYPO5:CJNE R0,#0F3H,KEYPO6 ; 輸入5音,非

12、5音跳轉(zhuǎn)SETB P2.4MOV R3,#200 MAIN05:MOV TMOD,#01H MOV TL0,#068H MOV TH0,#0FBH SETB TR0WAIT5:JNB TF0,WAIT5 CLR TF0 CPL P2.4 CLR P2.3 MOV A,#B MOV P0,A DJNZ R3,MAIN05LJMP KEYP0KEYPO6:CJNE R0,#0E7H,KEYPO7 ; 輸入6音,非6音跳轉(zhuǎn)SETB P2.4MOV R3,#200 MAIN06:MOV TMOD,#01H MOV TL0,#0E9H MOV TH0,#0FBH SETB TR0WAIT6:JNB TF

13、0,WAIT6 CLR TF0 CPL P2.4 CLR P2.3 MOV A,#B MOV P0,A DJNZ R3,MAIN06LJMP KEYP0KEYPO7:CJNE R0,#0CFH,KEYPO8 ; 輸入7音,非7音跳轉(zhuǎn)SETB P2.4MOV R3,#200 MAIN07:MOV TMOD,#01H MOV TL0,#05BH MOV TH0,#0FCH SETB TR0WAIT7:JNB TF0,WAIT7 CLR TF0 CPL P2.4 CLR P2.3 MOV A,#B MOV P0,A DJNZ R3,MAIN07LJMP KEYP0KEYPO8:CJNE R0,#0D

14、BH,KEYPO9 ; 輸入i音,非i音跳轉(zhuǎn) SETB P2.4 MOV R3,#200 MAIN08:MOV TMOD,#01H MOV TL0,#08FH MOV TH0,#0FCH SETB TR0WAIT8:JNB TF0,WAIT8 CLR TF0 CPL P2.4 CLR P2.3 MOV A,#B MOV P0,A DJNZ R3,MAIN08LJMP KEYP0KEYPO9:CJNE R0,#0EBH,KEYPO10 ;跳轉(zhuǎn)到第一首歌程序 LJMP MUSTART1KEYPO10:CJNE R0,#0D7H,JIELI ;跳轉(zhuǎn)到第二首歌程序 LJMP MUSTART2JIELI

15、:JMP KEYP0 ;返回主程序MUSTART1: ;歌曲1的播放程序 MOV R0,#00H ;節(jié)拍表指針置零 MOV R1,#00H ;音符表指針置零RTAB:MOV A,R0 MOV DPTR,#RYTH MOVC A,A+DPTR ;查表法將一個(gè)節(jié)拍數(shù)據(jù)取出放R2計(jì)數(shù)器中 MOV R2,ATTAB:MOV A,R1 MOV DPTR,#TONE MOVC A,A+DPTR MOV R3,A ;取出音符表高8位 INC R1 ;指針加1 MOV A,R1 MOV DPTR,#TONE MOVC A,A+DPTR MOV R4,A ;取出低8位 SETB P2.4 ;輸出相應(yīng)音調(diào)的方波L

16、OOP:MOV R5,#3BHMAIN:MOV TMOD,#01H MOV TL0,R4 MOV TH0,R3 SETB TR0WAIT:JNB TF0,WAIT CLR TF0 CPL P2.4MAYA:JB P3.2,MAYB ;判斷P3.2口是否有為1 JB P3.4,MAYB ;判斷P3.4口是否有為1 LJMP RA ;P3.4口為0則跳轉(zhuǎn)到程序RAMAYB:JB P3.3,JIELI ;判斷P3.3口是否有為1 JB P3.5,JIELI ;判斷P3.5口是否有為1 LJMP MUSTART2 ;P3.5口為0則放第二首歌RA: DJNZ R5,MAIN ;無打斷則繼續(xù)放第一首歌

17、DJNZ R2,LOOPINC R0 ;兩個(gè)表的指針都加1INC R1CJNE R1,#88,RTAB ;判斷是否取完LJMP KEYP0TONE:DB 0FBH,68H,0FAH,8CH,0FBH,68H,0F9H,0E1H,0FAH,8CH,0F9H,0E1H,0F9H,21HDB 0F9H,21H,0F8H,0B6H,0F7H,0D1H,0F8H,0B6H,0F9H,21H,0F8H,0B6H,0F9H,21H,0F9H,0E1H,0FAH,8CHDB 0FBH,68H,0FAH,8CH,0FBH,68H,0F9H,0E1H,0FAH,8CH,0F9H,0E1H,0F9H,21HDB 0

18、F9H,21H,0F8H,0B6H,0F7H,0D1H,0F8H,0B6H,0F9H,21H,0F8H,0B6H,0F9H,21H,0F9H,0E1H,0F9H,21HDB 0FBH,68H,0FBH,0E9H,0FCH,5BH,0FCH,8FH,0FCH,5BH,0FCH,8FH,0FCH,0EFH,0FCH,8FH,0FCH,0EFH,0FDH,45H,0FBH,68HDB 0F9H,21H,0F9H,0E1H,0FAH,8CH,0FAH,0D8H,0FAH,8CH,0FAH,0D8H,0FAH,0D8H,0FBH,68H,0F9H,21H,0F9H,0E1H,0FAH,8CH,0FAH,

19、8CHDB 0FBH,68H,0FBH,0E9H,0FCH,5BH,0FCH,8FH,0FCH,5BH,0FCH,8FH,0FCH,0EFH,0FCH,8FH,0FCH,0EFH,0FDH,45H,0FBH,68HDB 0F9H,21H,0F9H,0E1H,0FAH,8CH,0FAH,0D8H,0FAH,8CH,0FAH,0D8H,0FAH,8CH,0F9H,0E1H,0F9H,21H,0F8H,0B6H,0F9H,21HRYTH:DB 04,09,04,09,04,08,09DB 04,04,04,04,04,12,04,09,09DB 04,09,04,09,04,08,09DB 04,0

20、4,04,04,04,12,04,09,09DB 04,04,04,08,04,04,04,08,08DB 04,04,04,08,04,04,04,08,08DB 04,04,04,08,04,04,04,08,08DB 04,04,04,08,04,04,04,08,08MUSTART2: MOV R0,#00H MOV R1,#00HRTAB2: MOV A,R1 MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV R2,ATTAB2: MOV A,R1 MOV DPTR,#TONE2 MOVC A,A+DPTR MOV R3,A INC R1 MOV A,R1 MOV

21、 DPTR,#TONE2 MOVC A,A+DPTR MOV R4,A SETB P2.4LOOP2: MOV R5,#9BHMAIN2: MOV TMOD,#01H MOV TL0,R4 MOV TH0,R3 SETB TR0WAITR:JNB TF0,WAITR CLR TF0 CPL P2.4MAYA1:JB P3.3,MAYB1 JB P3.5,MAYB1 LJMP RBMAYB1:JB P3.2,BACK JB P3.4,BACK LJMP MUSTART1BACK:LJMP JIELIRB: DJNZ R5,MAIN2 DJNZ R2,LOOP2 INC R0INC R1CJNE

22、R1,#64,RTAB2LJMP KEYP0TONE2:DB 0FBH,68H,0FDH,6EH,0FDH,45H,0FCH,0EFH,0FCH,8FH,0FCH,8FH,0FCH,8FH,0FCH,8FH,0FCH,5BH,0FCH,8FHDB 0FCH,0EFH,0FDH,45H,0FBH,68H,0FBH,68H,0FCH,8FH,0FCH,5BH,0FBH,0E9H,0FBH,68H,0FBH,68HDB 0FAH,0D8H,0FAH,8CH,0F9H,21H,0FAH,8CH,0FAH,0D8H,0FBH,68H,0FBH,68H,0FBH,68H,0FBH,68HDB 0FBH,0

23、E9H,0FBH,0E9H,0FBH,68H,0FBH,0E9H,0FCH,5BH,0FAH,8CH,0FCH,8FH,0FCH,8FH,0FCH,5BHDB 0FCH,8FH,0FCH,0EFH,0FCH,0EFH,0FCH,0EFH,0FCH,8FH,0FDH,45H,0FDH,6EH,0FCH,0EFHTABLE1:DB 04,04,04,04,04,04,04,04,04,04DB 04,06,04,04,04,04,04,04,04,04DB 04,04,04,04,04,04,04,07,04,04DB 04,04,04,06,04,04,04,07,04,04DB 04,04,04,04 END4 實(shí)驗(yàn)結(jié)果用proteus仿真

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論