項目四_音樂門鈴和簡易演奏器設(shè)計_第1頁
項目四_音樂門鈴和簡易演奏器設(shè)計_第2頁
項目四_音樂門鈴和簡易演奏器設(shè)計_第3頁
項目四_音樂門鈴和簡易演奏器設(shè)計_第4頁
項目四_音樂門鈴和簡易演奏器設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、項目四 音樂門鈴和簡易演奏器設(shè)計設(shè)計說明書任務(wù)一 音樂門鈴一、任務(wù)設(shè)計要求1、實現(xiàn)“滴 、滴”報警聲要求:產(chǎn)生頻率為500Hz,揚聲器響0.25s,停0.25s,反復(fù)循環(huán)2、實現(xiàn)“滴 、滴”報警聲 實現(xiàn)“滴 、滴”報警門鈴要求:在1的基礎(chǔ)上增加按鈕動作。按鈕按下一次,“滴、滴”聲持續(xù)約3秒。3、技能提高任選一首歌曲,編制歌譜表,由單片機(jī)演奏,實現(xiàn)音樂門鈴。 4、計數(shù)器應(yīng)用設(shè)用內(nèi)部定時器/計數(shù)器1的計數(shù)功能,工作在方式2,實現(xiàn)計數(shù)5次產(chǎn)生中斷使P1.7所接發(fā)光二極管閃爍。 2、 設(shè)計過程1、 實現(xiàn)“滴 、滴”報警聲要求:產(chǎn)生頻率為500Hz,揚聲器響0.25s,停0.25s,反復(fù)循環(huán)1、設(shè)計方案

2、確定2、硬件電路設(shè)計(實現(xiàn)“滴 、滴”報警聲)(實現(xiàn)“滴 、滴”報警門鈴)和(音樂門鈴)的硬件電路設(shè)計計數(shù)器的硬件電路設(shè)計3、軟件設(shè)計實現(xiàn)“滴 、滴”報警聲步驟1:定時參數(shù)的計算1) 要產(chǎn)生頻率為500Hz的方波信號,方波信號的周期為2ms 。電路采用12MHz的晶振,利用定時器T0的方式1,產(chǎn)生1ms的定時,在P1.7上輸出周期為2ms的方波。(a) T0的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,可取方式控制字為01H (b) 計算計數(shù)初值X由于晶振為12MHz,機(jī)器周期T=,要產(chǎn)生產(chǎn)生1ms的定時,計數(shù)初值為X=65536-1000=64536=FC18H將 FCH

3、、18H 分別預(yù)置給TH0、TL0。重裝計數(shù)值中斷入口Yes輸出聲音計滿0.25s?FLAG=1?無輸出中斷返回NoNoYes(1) 、繪制流程圖 開 始 標(biāo)志FLAG清0 計時計數(shù)值清0 設(shè)置定時器標(biāo)志位FLAG取反計時計數(shù)值清0 定時1ms 啟動定時器 等待中斷 主程序流程圖 中斷程序流程圖 2、實現(xiàn)“滴 、滴”報警門鈴要求:在1的基礎(chǔ)上增加按鈕動作。按鈕按下一次,“滴、滴”聲持續(xù)約3秒(2) 、編寫源程序:共4個程序程序一:實現(xiàn)“滴 、滴”報警聲 TCOUNT EQU 30HFLAG BIT 00H ORG 0000H SJMP START ;跳轉(zhuǎn)到主程序 ORG 000BH ;T0的中

4、斷入口地址 LJMP INT_T0 ;轉(zhuǎn)向中斷服務(wù)程序START: CLRFLAG ;標(biāo)志位清零 MOVTCOUNT,#00H;計時計數(shù)值清零 MOVTMOD,#01H ;置T0工作于方式1 MOVTH0,#(65536-1000)/256 ;裝入計數(shù)初值 MOVTL0,#(65536-1000)MOD 256 MOVIE,#82H;開中斷 SETBTR0;啟動T0定時器 SJMP$; ;等待中斷INT_T0: MOVTH0,#(65536-1000)/256 ;重新裝入計數(shù)值 MOVTL0,#(65536-1000)MOD 256 INCTCOUNT;計時計數(shù)值+1 MOVA,TCOUNT

5、CJNEA,#250,I1;是否計滿0.25秒 CPLFLAG;標(biāo)志位FLAG取反 MOVTCOUNT,#00H;計時計數(shù)值清零I1: JBFLAG,I2;檢查標(biāo)志位 CPLP1.7;聲音輸出 SJMPRETUNEI2: CLRP1.7;關(guān)聲音RETUNE: RETI;中斷返回 END 程序二:按下門鈴按鍵,發(fā)出“滴 、滴”報警聲TCOUNT EQU 30HFLAG BIT 00H ORG 0000H SJMP START ;跳轉(zhuǎn)到主程序 ORG 000BH ;T0的中斷入口地址 LJMP INT_T0 ;轉(zhuǎn)向中斷服務(wù)程序; 主程序START: CLRFLAG ;標(biāo)志位清零 MOVTCOUNT

6、,#00H;計時計數(shù)值清零 MOVTMOD,#01H ;置T0工作于方式1 MOVTH0,#(65536-1000)/256 ;裝入計數(shù)初值 MOVTL0,#(65536-1000)MOD 256 MOVIE,#82H;開中斷LOOP:JB P1.0,STOP;判斷P1.0是否按下 SETBTR0;啟動T0定時器ACALL DELAY ;等中斷約3.2sSTOP: CLR P1.7 ;關(guān)聲音 CLR TR0;關(guān)閉T0定時器 SJMPLOOP; ;反復(fù);T0中斷服務(wù)程序INT_T0: MOVTH0,#(65536-1000)/256 ;重新裝入計數(shù)值 MOVTL0,#(65536-1000)MO

7、D 256 INCTCOUNT;計時計數(shù)值+1 MOVA,TCOUNT CJNEA,#250,I1;是否計滿0.25秒 CPLFLAG;計時計數(shù)值取反 MOVTCOUNT,#00H;計時計數(shù)值清零I1: JBFLAG,I2;檢查標(biāo)志位 CPLP1.7;聲音輸出 SJMPRETUNEI2: CLRP1.7;關(guān)聲音RETUNE: RETI;中斷返回DELAY: MOV R1,#0FFH ;延時約3.2秒DEL1: MOV R2,#0FFHDEL2: MOV R3,#09HDEL3: NOP NOP NOP DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET END

8、3、 技能提高任選一首歌曲,編制歌譜表,由單片機(jī)演奏,實現(xiàn)音樂門鈴。BABY DONT CRY 程序三: ORG 0000H LJMP START ORG 000BH ;T0中斷矢量 LJMP INT_T0START: MOV SP,#50H MOV TMOD,#01H ;置T0工作于方式1 SETB ET0 SETB EA ;開中斷MAIN: CLR SPEAKER ;靜音NSP: JB KEY,NSP ;如果按鈕沒按下,等待 LCALL DELY10MS ;10ms延時 JB KEY,NSP ;如果按鈕沒按下,等待 MOV DPTR,#SONGLOOP: CLR A MOVC A,A+DP

9、TR MOV R1,A ;音符定時值高位 INC DPTR CLR A MOVC A,A+DPTR MOV R0,A ;音符定時值低位 ORL A,R1 JZ NEXT0 ;如果是停止符00,到NEXT0 MOV A,R0 ANL A,R1 CJNE A,#0FFH,NEXT ;如果不是結(jié)束符FFH,到NEXT CLR TR0 LJMP MAINNEXT: MOV TH0,R1 ;定時器初值 MOV TL0,R0 SETB TR0 ;啟動定時器T0 SJMP NEXT1NEXT0: CLR TR0 ;停止定時器T0 CLR SPEAKER ;靜音NEXT1: CLR A INC DPTR MO

10、VC A,A+DPTR MOV R2,A ;節(jié)拍延時常數(shù) ;節(jié)拍延時LOOP1: LCALL DELY25MS DJNZ R2,LOOP1 INC DPTR ;下一個音符的地址 LJMP LOOP ;演奏下一個音符;延時子程序 DELY25MS: MOV R6,#50 ;延時25msD1: MOV R7,#245 DJNZ R7,$ DJNZ R6,D1 RETDELY10MS: MOV R6,#20 ;延時10msD2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 RET;T0中斷服務(wù)程序INT_T0: MOV TH0,R1 ;定時器初值 MOV TL0,R0 CPL

11、SPEAKER ;聲音輸出 RETI;BABY DONT CRY樂譜SONG: 4、計數(shù)器應(yīng)用設(shè)用內(nèi)部定時器/計數(shù)器1的計數(shù)功能,工作在方式2,實現(xiàn)計數(shù)5次產(chǎn)生中斷使P1.7所接發(fā)光二極管閃爍。 程序四:ORG 0000H LJMP MAINMAIN:MOV TMOD,#60H :采用T1方式2 MOV TH1,#0FBH :裝入初值 MOV TL1,#0FBH SETB ET1 SETB EA ;允許中斷 SETB TR1 :啟動定時器 SJMP $ :等待中斷 ORG 001BH ;中斷服務(wù)程序 MOV R0,#10H MOV A,#0FEH ;重新設(shè)置初值LOOP:MOV P1,A AC

12、ALL DELAY RL A DJNZ R0,LOOP MOV P1,#0FFH RETIDELAY:MOV R3,#250 D2:MOV R4,#250 D1:NOP DJNZ R4,D1 DJNZ R3,D2 RET END4、 軟、硬件調(diào)試仿真(效果圖)(實現(xiàn)“滴 、滴”報警聲)和(實現(xiàn)“滴 、滴”報警門鈴)和(音樂門鈴)的軟、硬件調(diào)試仿真(效果圖)計數(shù)器的軟、硬件調(diào)試仿真(效果圖)任務(wù)二 簡易演奏器一、任務(wù)設(shè)計要求1、基本要求利用定時器的定時功能,分別產(chǎn)生三個聲音的方波,驅(qū)動揚聲器發(fā)音,由三個按鍵控制演奏DO、RE、MI 三個聲音。二、設(shè)計過程1、設(shè)計方案確定2、 硬件電路設(shè)計3、軟件

13、設(shè)計(1)、繪制流程圖(2) 、編寫源程序:1個程序ORG 0000H SJMP STARDLY: MOV R2,#20 ;延時程序10ms-(去抖動處理)D1: MOV R3,#248 DJNZ R3,$ DJNZ R2,D1 RET ORG 0030HSTAR: MOV TMOD,#1 ;T0-方式1 MOV P3,#0FFH ;P3口置1 JNB P3.0,DOS ;P3.0按下,轉(zhuǎn)移到DOS ACALL DLY JNB P3.1,RES ;P3.1按下,轉(zhuǎn)移到ERS ACALL DLY JNB P3.2,MIS ;P3.2按下,轉(zhuǎn)移到MIS ACALL DLY SJMP STARDOS

14、: MOV TH0,#0FCH ;DO-定時器初值 MOV TL0, #44H SETB TR0 ;啟動定時器 JNB TF0,$ ;延時時間到否? CLR TF0 ;清中斷標(biāo)志位 CPL P2.7 ;關(guān)聲音 JNB P3.0,DOS ;再次判斷-P3.0按下,轉(zhuǎn)移到DOS CLR TF0 ;清中斷標(biāo)志位 SJMP STAR ;返回主程序RES: MOV TH0,#0FCH ;RE-定時器初值 MOV TL0,#0ACH SETB TR0 JNB TF0,$ CLR TF0 ;清中斷標(biāo)志位 CPL P2.7 ;關(guān)聲音 JNB P3.1,RES ;再次判斷-P3.0按下,轉(zhuǎn)移到DOS CLR TF0 SJMP STAR MIS: MOV TH0,#0FDH ;MI-定時器初值 MOV TL0,#09H SETB TR0 JNB TF0,$ CLR TF0 ;清中斷標(biāo)志位 CPL P2.7 ;關(guān)聲音 JNB P3.2,MIS ;再次判斷-P3.0按下,轉(zhuǎn)移

溫馨提示

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

最新文檔

評論

0/150

提交評論