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

下載本文檔

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

文檔簡介

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

2、確定2、硬件電路設(shè)計(jì)(實(shí)現(xiàn)“滴 、滴”報(bào)警聲)(實(shí)現(xiàn)“滴 、滴”報(bào)警門鈴)和(音樂門鈴)的硬件電路設(shè)計(jì)計(jì)數(shù)器的硬件電路設(shè)計(jì)3、軟件設(shè)計(jì)實(shí)現(xiàn)“滴 、滴”報(bào)警聲步驟1:定時參數(shù)的計(jì)算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) 計(jì)算計(jì)數(shù)初值x由于晶振為12mhz,機(jī)器周期t=,要產(chǎn)生產(chǎn)生1ms的定時,計(jì)數(shù)初值為x=65536-1000=64536=fc18h將 fch

3、、18h 分別預(yù)置給th0、tl0。重裝計(jì)數(shù)值中斷入口yes輸出聲音計(jì)滿0.25s?flag=1?無輸出中斷返回nonoyes(1) 、繪制流程圖 開 始 標(biāo)志flag清0 計(jì)時計(jì)數(shù)值清0 設(shè)置定時器標(biāo)志位flag取反計(jì)時計(jì)數(shù)值清0 定時1ms 啟動定時器 等待中斷 主程序流程圖 中斷程序流程圖 142、實(shí)現(xiàn)“滴 、滴”報(bào)警門鈴要求:在1的基礎(chǔ)上增加按鈕動作。按鈕按下一次,“滴、滴”聲持續(xù)約3秒(2) 、編寫源程序:共4個程序程序一:實(shí)現(xiàn)“滴 、滴”報(bào)警聲 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;計(jì)時計(jì)數(shù)值清零 movtmod,#01h ;置t0工作于方式1 movth0,#(65536-1000)/256 ;裝入計(jì)數(shù)初值 movtl0,#(65536-1000)mod 256 movie,#82h;開中斷 setbtr0;啟動t0定時器 sjmp$; ;等待中斷int_t0: movth0,#(65536-1000)/256 ;重新裝入計(jì)數(shù)值 movtl0,#(65536-1000)mod 256 inctcount;計(jì)時計(jì)數(shù)值+1 mova,tcoun

5、t cjnea,#250,i1;是否計(jì)滿0.25秒 cplflag;標(biāo)志位flag取反 movtcount,#00h;計(jì)時計(jì)數(shù)值清零i1: jbflag,i2;檢查標(biāo)志位 cplp1.7;聲音輸出 sjmpretunei2: clrp1.7;關(guān)聲音retune: reti;中斷返回 end 程序二:按下門鈴按鍵,發(fā)出“滴 、滴”報(bào)警聲tcount equ 30hflag bit 00h org 0000h sjmp start ;跳轉(zhuǎn)到主程序 org 000bh ;t0的中斷入口地址 ljmp int_t0 ;轉(zhuǎn)向中斷服務(wù)程序; 主程序start: clrflag ;標(biāo)志位清零 movtcou

6、nt,#00h;計(jì)時計(jì)數(shù)值清零 movtmod,#01h ;置t0工作于方式1 movth0,#(65536-1000)/256 ;裝入計(jì)數(shù)初值 movtl0,#(65536-1000)mod 256 movie,#82h;開中斷l(xiāng)oop: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 ;重新裝入計(jì)數(shù)值 movtl0,#(65536-1000)

7、mod 256 inctcount;計(jì)時計(jì)數(shù)值+1 mova,tcount cjnea,#250,i1;是否計(jì)滿0.25秒 cplflag;計(jì)時計(jì)數(shù)值取反 movtcount,#00h;計(jì)時計(jì)數(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 e

8、nd3、 技能提高任選一首歌曲,編制歌譜表,由單片機(jī)演奏,實(shí)現(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+

9、dptr 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

10、movc 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 cp

11、l speaker ;聲音輸出 reti;baby dont cry樂譜song: 4、計(jì)數(shù)器應(yīng)用設(shè)用內(nèi)部定時器/計(jì)數(shù)器1的計(jì)數(shù)功能,工作在方式2,實(shí)現(xiàn)計(jì)數(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

12、acall 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)試仿真(效果圖)(實(shí)現(xiàn)“滴 、滴”報(bào)警聲)和(實(shí)現(xiàn)“滴 、滴”報(bào)警門鈴)和(音樂門鈴)的軟、硬件調(diào)試仿真(效果圖)計(jì)數(shù)器的軟、硬件調(diào)試仿真(效果圖)任務(wù)二 簡易演奏器一、任務(wù)設(shè)計(jì)要求1、基本要求利用定時器的定時功能,分別產(chǎn)生三個聲音的方波,驅(qū)動揚(yáng)聲器發(fā)音,由三個按鍵控制演奏do、re、mi 三個聲音。二、設(shè)計(jì)過程1、設(shè)計(jì)方案確定2、 硬件電路設(shè)計(jì)3、

13、軟件設(shè)計(jì)(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 stard

14、os: 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

提交評論