![單片機課程設(shè)計--電子音調(diào)發(fā)生器_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/06cc6f72-6048-4069-bf83-72bb1fcfd42f/06cc6f72-6048-4069-bf83-72bb1fcfd42f1.gif)
![單片機課程設(shè)計--電子音調(diào)發(fā)生器_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/06cc6f72-6048-4069-bf83-72bb1fcfd42f/06cc6f72-6048-4069-bf83-72bb1fcfd42f2.gif)
![單片機課程設(shè)計--電子音調(diào)發(fā)生器_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/06cc6f72-6048-4069-bf83-72bb1fcfd42f/06cc6f72-6048-4069-bf83-72bb1fcfd42f3.gif)
![單片機課程設(shè)計--電子音調(diào)發(fā)生器_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/06cc6f72-6048-4069-bf83-72bb1fcfd42f/06cc6f72-6048-4069-bf83-72bb1fcfd42f4.gif)
![單片機課程設(shè)計--電子音調(diào)發(fā)生器_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/06cc6f72-6048-4069-bf83-72bb1fcfd42f/06cc6f72-6048-4069-bf83-72bb1fcfd42f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機課程設(shè)計報告電子音調(diào)發(fā)生器學(xué)院電子信息工程學(xué)院、題目電子音調(diào)發(fā)生器二、設(shè)計的任務(wù)及要求利用JD51開發(fā)板上的按鍵S1S4和蜂鳴器設(shè)計電子音調(diào)發(fā)生器,要求:(1)利用JD51開發(fā)板上的按鍵 S1S4進行音調(diào)選擇,即按下不同的開關(guān)產(chǎn)生不同的音調(diào),依 次按動S1S4及組合按鍵,蜂鳴器發(fā)出1234567i八個音調(diào);并在數(shù)碼管上顯示。(2)編寫2支歌曲,并可進行選擇播放。三、工作原理及設(shè)計思路工作原理:音節(jié)由不同頻率的方波產(chǎn)生,音節(jié)與頻率的關(guān)系通過查表可得。要產(chǎn)生音頻方波,只要算出某 一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用計時器計時此半周期時間,每當(dāng)計時到后就將輸出方
2、波的I/O反相,然后重復(fù)計時此半周期時間再對I/O反相,就可在I/O腳得到此頻率的方波。在JD51單片機上,產(chǎn)生方波的I/O腳選用,通過跳線選擇器將單片機的與蜂鳴器的驅(qū)動電路相 連。這樣輸出不同頻率的方波,蜂鳴器便會發(fā)出不同的聲音。另外,音樂的節(jié)拍是由延時實現(xiàn)的, 如果1拍為秒,1/4拍是秒。只要設(shè)定延時時間,就可求得節(jié)拍的時間。延時作為基本延時時間, 節(jié)拍值只能是它的整數(shù)倍。每個音節(jié)相應(yīng)的定時器初值X可按下法計算:(1/2) *(1/f)=(12/fosc)*(256-x)即 x=256-(fosc/24f)其中f:音調(diào)頻率,當(dāng)晶振fosc=時,音節(jié)“1”相應(yīng)的定時器初值為 x,則可得x=6
3、3777D=F921H其 它的可同樣求得。表1音調(diào)頻率(Hz)X(HEX)1262F9212294F9E13330FA8c4349FAD85392FB686440FBE97494FC5Bi523FC8F設(shè)計思路1 .總體框圖硬件圖2 .蜂鳴電路模塊由蜂鳴器驅(qū)動電路和 89C51組成。 選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時約需要 100M聞區(qū)動電流。當(dāng)89C51輸出為低電平時蜂鳴器產(chǎn)生蜂鳴音,89C51輸出為高電平時,蜂鳴器不友嚴(yán)。四、軟件設(shè)計流程及描述根據(jù)要實現(xiàn)的功能,流程圖如下:熟悉定時器和鍵盤掃描電路的工作原理及編程方法。1 .程序設(shè)計描述電子音調(diào)主要的工作是將按鍵的信息讀取,然后根據(jù)
4、按鍵的數(shù)字,用定時器輸出相對應(yīng)的頻率, 實現(xiàn)音調(diào)的發(fā)生。程序主要為5部分,按鍵掃描、中斷計時、數(shù)碼顯示、音樂播放、主程序,他們分別執(zhí)行不同 的功能。2 .各部分功能介紹(1)按鍵讀取程序鍵盤鍵值讀取程序包括鍵盤掃描、消除抖動、鍵譯碼等內(nèi)容。按鍵的識別主要有兩種方法:行 反轉(zhuǎn)法和行掃描法。因為鍵盤為機械開關(guān),容易引入抖動。為了消除抖動干擾,在程序中要加入消 除抖動的部分。(2)中斷計時中斷部分,中斷定時器 1主要負(fù)責(zé)輸出不同頻率的方波,產(chǎn)生聲音,中斷定時器1主要是計時按鍵時間及按鍵間隔時間的功能,在播放音樂的時候,還擔(dān)任著播放音樂的節(jié)拍的任務(wù)。(3)音樂播放音樂播放部分主要是播放音樂,實現(xiàn)按鍵重
5、播和播放程序里面的音樂的功能。(4)主程序主程序主要是隨時發(fā)出按鍵的聲音功能,并且通過不同P 口的掃描,判斷是否是播放按鍵聲音還是播放音樂,還是繼續(xù)發(fā)出按鍵聲音。五、proteus仿真設(shè)計及描述匹,:f.-a L E EgE鼻 LE OLktXlfflCM aisriH rlLr J*LftPEliC ,珈 41* 0Cl£iE«>IE OUE,土理,PuKB 卯箝M 莊配軸Mr-l MEl 二RTi +#=3&K -Kw. >| *1,J /中總 a+* 4 與守 *去 金*R tt)l MA 硝國工-6 -按鍵S1:數(shù)碼管顯示1,同時能聽到蜂鳴器響音
6、調(diào)1按鍵S2:數(shù)碼管顯示2,同時能聽到蜂鳴器響音調(diào)2按鍵S3:數(shù)碼管顯示3,同時能聽到蜂鳴器響音調(diào)3按鍵S4:數(shù)碼管顯示4,同時能聽到蜂鳴器響音調(diào)4因為音調(diào)5,6,7 , i以及音樂都是由兩個按鍵控制的,所以在仿真時不能實現(xiàn)。實際效果圖音調(diào)1:音調(diào)2音調(diào)5音調(diào) 6數(shù)據(jù)首地址置零,定時未開始關(guān)蜂鳴器關(guān)數(shù)碼管W: MOV R0,P3掃描按鍵輸入六、匯編源程序代碼/*SB1 1 音 SB2 2 音 SB3 3 音 SB4 4 音 SB1SB2 5 音 SB2SB3 6 音 SB3SB4 7 音SB1SB4 i 音 SB1SB3 第一首歌 SB2SB4 第二首歌 */ORG 0000HLJMP KEY
7、P0 ;跳至 KEYP陽序KEYP0: MOV R0,#00HCLR TR0 ;TR0SETB;SETB;- 7 -CJNE R0,#0FFH,KEYPO1 ; 有輸入時跳轉(zhuǎn)(R0w 0FFH時跳至 KEYP01 程序)JMP W ; 無輸入時繼續(xù)掃描KEYPO1:CJNE R0,#0FBH,KEYPO2 ;輸入 1 音, 非 1 音跳轉(zhuǎn)SETB ;蜂鳴器置于高電平,音調(diào) 1 方波發(fā)生MOV R3,#200; 設(shè)循環(huán)初值,使開關(guān)在 R3=0 時播放一段時間MAIN01:MOV TMOD,#01H ; 定時,方式1MOV TL0,#21H; 置定時初值,音調(diào) 1 初值為 0F921HMOV TH
8、0,#0F9HSETB TR0 ;啟動 T0 工作WAIT1:JNB TF0,WAIT1 ; 定時未到,循環(huán)等待CLR TF0 ;定時到,軟件清零TF0CPL ; 由輸出,信號取反,蜂鳴器響CLR ; 數(shù)碼管顯示1MOV A,#B; 置比較初值MOV P0,ADJNZ R3,MAIN01 ; 若R3-1不等于0,繼續(xù)跳至 MAIN01程序LJMP KEYP0 ;=0 則返回程序KEYP0KEYPO2:CJNE R0,#0F7H,KEYPO3 ;輸入 2 音, 非 2 音跳轉(zhuǎn)SETB;蜂鳴器置于高電平,音調(diào) 2 方波發(fā)生MOV R3,#200; 設(shè)循環(huán)初值MAIN02:MOV TMOD,#01H
9、MOV TL0,#0E1H;MOV TH0,#0F9HSETB TR0 ;WAIT2:JNB TF0,WAIT2CLR TF0CPL ; 由輸出,信號取反,蜂鳴器響CLR ; 數(shù)碼管顯示MOV A,#B ; 置比較初值定時,方式1置定時初值啟動 T0 工作定時未到,循環(huán)等待定時到,軟件清零TF0信號取反,蜂鳴器響2MOV P0,ADJNZ R3,MAIN02 ; 判斷R3是否等于0,未完,繼續(xù)LJMP KEYP0 ; 返回程序 KEYP0KEYPO3:CJNE R0,#0EFH,KEYPO4 ;輸入 3 音 , 非 3 音跳轉(zhuǎn)SETB;蜂鳴器置于高電平MOV R3,#200MAIN03:MOV
10、 TMOD,#01HMOV TL0,#08CHMOV TH0,#0FAHSETB TR0WAIT3:JNB TF0,WAIT3CLR TF0CPLCLRMOV A,#BMOV P0,ADJNZ R3,MAIN03LJMP KEYP0KEYPO4:CJNE R0,#0DFH,KEYPO5 ; 輸入 4 音, 非 4 音跳轉(zhuǎn)SETBMOV R3,#200MAIN04:MOV TMOD,#01HMOV TL0,#0D8HMOV TH0,#0FAHSETB TR0WAIT4:JNB TF0,WAIT4CLR TF0CPLCLRMOV A,#BMOV P0,ADJNZ R3,MAIN04LJMP KEY
11、P0KEYPO5: CJNE R0,#0F3H,KEYPO6 ; 輸入 5 音 , 非 5 音跳轉(zhuǎn)SETBMOV R3,#200MAIN05:MOV TMOD,#01HMOV TL0,#068HMOV TH0,#0FBHSETB TR0- 15 -WAIT5:JNB TF0,WAIT5CLR TF0CPLCLRMOV A,#BMOV P0,ADJNZ R3,MAIN05LJMP KEYP0KEYPO6:CJNE R0,#0E7H,KEYPO7SETBMOV R3,#200MAIN06:MOV TMOD,#01HMOV TL0,#0E9HMOV TH0,#0FBHSETB TR0WAIT6:JN
12、B TF0,WAIT6CLR TF0CPLCLRMOV A,#BMOV P0,ADJNZ R3,MAIN06LJMP KEYP0KEYPO7:CJNE R0,#0CFH,KEYPO8SETBMOV R3,#200MAIN07:MOV TMOD,#01HMOV TL0,#05BHMOV TH0,#0FCHSETB TR0WAIT7:JNB TF0,WAIT7 ;CLR TF0CPLCLRMOV A,#BMOV P0,ADJNZ R3,MAIN07LJMP KEYP0KEYPO8:CJNE R0,#0DBH,KEYPO9SETBMOV R3,#200輸入 6 音 , 非 6 音跳轉(zhuǎn)輸入 7 音 ,
13、 非 7 音跳轉(zhuǎn)定時未到,循環(huán)等待輸入 i 音 , 非 i 音跳轉(zhuǎn)MAIN08:MOV TMOD,#01HMOV TL0,#08FHMOV TH0,#0FCHSETB TR0WAIT8:JNB TF0,WAIT8 ; 定時未到,循環(huán)等待CLR TF0CPLCLRMOV A,#BMOV P0,ADJNZ R3,MAIN08LJMP KEYP0KEYPO9:CJNE R0,#0EBH,KEYPO10 ; 跳轉(zhuǎn)到第一首歌程序LJMP MUSTART1KEYPO10:CJNE R0,#0D7H,JIELI ; 跳轉(zhuǎn)到第二首歌程序LJMP MUSTART2JIELI:JMP KEYP0;返回主程序MUS
14、TART1:;歌曲 1 的播放程序MOV R0,#00H;節(jié)拍表指針置零MOV R1,#00H;音符表指針置零RTAB:MOV A,R0MOV DPTR,#RYTH;將節(jié)拍表記入DPTR旨針MOVC A,A+DPTR;查表法將一個節(jié)拍數(shù)據(jù)取出放R2計數(shù)器中MOV R2,A;將節(jié)拍存入 R2TTAB:MOV A,R1MOV DPTR,#TONE;將音符記入 DPTRMOVC A,A+DPTR; 查表法將一個音符數(shù)據(jù)取出放入 R1 計數(shù)器中MOV R3,A;取出音符表高8 位,存入 R3INC R1;指針加1MOV A,R1MOV DPTR,#TONE;將音符記入 DPTRMOVC A,A+DPT
15、R; 查表法將一個音符數(shù)據(jù)取出放入 R1 計數(shù)器中MOV R4,A;取出低8 位,存入 R4SETB;輸出相應(yīng)音調(diào)的方波LOOP:MOV R5,#3BHMAIN:MOV TMOD,#01H;主程序初始化,定時器T0 工作于方式1MOV TL0,R4;置定時初值( 音符)MOV TH0,R3SETB TR0;啟動 T0WAIT:JNB TF0,WAIT;定時未到,循環(huán)等待CLR TF0;定時到,軟件清零TF0CPL;由輸出,信號取反,蜂鳴器響MAYA:JB ,MAYB;判斷口是否有為 1, 為 1 則跳至MAYBJB ,MAYBLJMP RA判斷口是否有為 1, 為 1 則跳至 MAYB口為 0
16、 則跳轉(zhuǎn)到程序RAMAYB:JB ,JIELI ;判斷口是否有為 1JB ,JIELI ;判斷口是否為 1(為 1 則繼續(xù)播放第一首歌)LJMP MUSTART2 ; 口為 0 則放第二首歌RA: DJNZ R5,MAIN ;無打斷則繼續(xù)放第一首歌DJNZ R2,LOOP ;判斷R2是否等于0INC R0;兩個表的指針都加1INC R1CJNE R1,#88,RTAB;判斷是否取完(R1不等于88則跳至 RTA明序)LJMP KEYP0; 音符表TONE:DB0FBH,68H,0FDH,6EH,0FDH,45H,0FCH,0EFH,0FCH,8FH,0FCH,8FH,0FCH,8FH,0FCH
17、,5BH,0FCH,8FHDB0FCH,0EFH,0FDH,45H,0FBH,68H,0FBH,68H,0FCH,8FH,0FCH,5BH,0FBH,0E9H,0FBH,68H,0FBH,68HDB0FAH,0DBH,0FAH,8CH,0F9H,21H,0FAH,8CH,0FAH,0D8H,0FBH,68H,0FBH,68H,0FBH,68H,0FBH,68HDB0FBH,0E9H,0FBH,0E9H,0FBH,68H,0FBH,0E9H,0FCH,5BH,0FAH,8CH,0FCH,8FH,0FCH,8FH,0FCH,5BHDB 0FCH,8FH,0FCH,0EFH,0FCH,0EFH,0F
18、CH,0EFH,0FCH,8FH,0FDH,45H,0FDH,6EH,0FCH,0EFH; 節(jié)拍表RYTH:DB 04,04,04,04,04,04,04,04,04,04DB 04,05,04,04,04,04,04,04,04,04DB 04,04,04,06,04,04,04,07,04,04DB 04,04,04,06,04,04,04,07,04,04DB 04,04,04,04MUSTART2:;MOV R0,#00H;MOV R1,#00H;歌曲 2 的播放程序節(jié)拍表指針置零音符表指針置零RTAB2:MOV A,R1MOV DPTR,#TABLE1MOVC A,A+DPTRMOV
19、 R2,A;TTAB2: MOV A,R1MOV DPTR,#TONE2MOVC A,A+DPTRMOV R3,AINC R1;MOV A,R1將節(jié)拍表記入DPTR旨針查表法將一個節(jié)拍數(shù)據(jù)取出放 R2 計數(shù)器中將節(jié)拍存入 R2將音符記入DPTR查表法將一個音符數(shù)據(jù)取出放入 R1 計數(shù)器中取出音符表高8 位指針加 1MOV DPTR,#TONE2 MOVC A,A+DPTRMOV R4,A;SETB;LOOP2: MOV R5,#9BHMAIN2:MOV TMOD,#01HMOV TL0,R4;MOV TH0,R3SETB TR0;將音符記入 DPTR;查表法將一個音符數(shù)據(jù)取出放入 R1 計數(shù)器
20、中取出低8 位輸出相應(yīng)音調(diào)的方波;主程序初始化,定時器T0 工作于方式1置定時初值啟動 T0WAITR:JNB TF0,WAITRCLR TF0;定時未到,循環(huán)等待定時到,軟件清零TF0CPL;MAYA1:JB ,MAYB1;JB ,MAYB1;LJMP RB;MAYB1:JB ,BACK;JB ,BACK;LJMP MUSTART1BACK:LJMP JIELI由輸出,信號取反,蜂鳴器響判斷口是否為1判斷口是否為1口為 0 則跳轉(zhuǎn)到程序RA判斷口是否有為1判斷口是否有為1;, 口皆為 0 則播放第一首歌RB: DJNZ R5,MAIN2DJNZ R2,LOOP2INC R0;INC R1CJ
21、NE R1,#64,RTAB2LJMP KEYP0;無打斷則繼續(xù)播放第二首歌;判斷R2 是否等于0兩個表的指針都加1;判斷是否取完; 音符表TONE2:DB0FBH,68H,0FDH,6EH,0FDH,45H,0FCH,0EFH,0FCH,8FH,0FCH,8FH,0FCH,8FH,0FCH,5BH,0FCH,8FH DB0FCH,0EFH,0FDH,45H,0FBH,68H,0FBH,68H,0FCH,8FH,0FCH,5BH,0FBH,0E9H,0FBH,68H,0FBH,68H DB0FAH,0DBH,0FAH,8CH,0F9H,21H,0FAH,8CH,0FAH,0D8H,0FBH,6
22、8H,0FBH,68H,0FBH,68H,0FBH,68H DB0FBH,0E9H,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,0EFH; 節(jié)拍表TABLE1:DB 04,04,04,04,04,04,04,04,04,04DB 04,05,04,04,04,04,04,04,04,04DB 04,04,04,06,04,04,04,07,04,0
23、4DB 04,04,04,06,04,04,04,07,04,04DB 04,04,04,04END七、課程設(shè)計總結(jié)及體會編完程序及調(diào)試時,遇到的幾個問題以及解決辦法。問題一:剛開始接通電源時,單片機就開始發(fā)出聲音,為了解決這個問題,我將程序里加入了SETB 這步程序,把蜂鳴器的初值設(shè)定為 1。問題二:按完S1 按鍵時,未發(fā)出音調(diào) 1,這是由于我未將蜂鳴器置于高電平,加上 SETB 后,問題解決。問題三:按按鍵 S2 時,數(shù)碼管第一位而不是第四位出現(xiàn)數(shù)字2 ,不過我之后發(fā)現(xiàn)是因為我將本應(yīng)是 CLR 的程序?qū)懗闪?CLR ,改變后,數(shù)碼管顯示正常。問題四:最開始我并未在程序中設(shè)置循環(huán)掃描按鍵輸入這部分程序。因此在按按鍵 S1 發(fā)出音調(diào)1 后,按按鍵 S2S4 音調(diào) 2 、 3 、 4 等等都不會發(fā)出相應(yīng)的音調(diào)。檢查完程序,發(fā)現(xiàn)原因,再加入循環(huán)掃描按鍵輸入這部分程序,問題得到解決。總結(jié)及體會此次實驗的硬件電路是固定的,控制按鍵有 4個:S1S4,還有復(fù)位按鍵,晶振電路,蜂鳴器。在電腦上安裝 Keil 軟件以及 proteus 軟件及它們的聯(lián)調(diào)不是很困難,只要照著安裝調(diào)試視頻即可,焊單片機的板子過程還
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇科版數(shù)學(xué)七年級上冊4.2《一元二次方程的解法》(第6課時)聽評課記錄
- 冀教版數(shù)學(xué)八年級上冊《SAS》聽評課記錄5
- 湘教版數(shù)學(xué)七年級下冊3.2.2《角的度量》聽評課記錄
- (湘教版)七年級數(shù)學(xué)下冊:2.1.4《多項式的乘法》聽評課記錄
- 七年級道德與法治上冊第三單元 師長情誼第六課師生之間第2框師生交往聽課評課記錄(新人教版)
- 人教版七年級數(shù)學(xué)上冊:4.1.2《點、線、面、體》聽評課記錄1
- 湘教版數(shù)學(xué)七年級上冊1.4.1《有理數(shù)的加法》聽評課記錄
- 部編版八年級道德與法治上冊聽課評課記錄《9.1認(rèn)識總體國家安全觀》
- 暑假小學(xué)一年級學(xué)習(xí)計劃
- 三年級下學(xué)期班主任工作計劃
- 2025中國移動安徽分公司春季社會招聘高頻重點提升(共500題)附帶答案詳解
- 七年級英語下學(xué)期開學(xué)考試(深圳專用)-2022-2023學(xué)年七年級英語下冊單元重難點易錯題精練(牛津深圳版)
- 杭州市房地產(chǎn)經(jīng)紀(jì)服務(wù)合同
- 放射科護理常規(guī)
- 新時代中小學(xué)教師職業(yè)行為十項準(zhǔn)則
- 人教版八年級上冊英語1-4單元測試卷(含答案)
- 2024年大宗貿(mào)易合作共贏協(xié)議書模板
- 初中數(shù)學(xué)教學(xué)經(jīng)驗分享
- 新聞記者證600道考試題-附標(biāo)準(zhǔn)答案
- 2024年公開招聘人員報名資格審查表
- TSG ZF001-2006《安全閥安全技術(shù)監(jiān)察規(guī)程》
評論
0/150
提交評論