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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、確定2、硬件電路設計(實現“滴 、滴”報警聲)(實現“滴 、滴”報警門鈴)和(音樂門鈴)的硬件電路設計計數器的硬件電路設計3、軟件設計實現“滴 、滴”報警聲步驟1:定時參數的計算1) 要產生頻率為500hz的方波信號,方波信號的周期為2ms 。電路采用12mhz的晶振,利用定時器t0的方式1,產生1ms的定時,在p1.7上輸出周期為2ms的方波。(a) t0的方式控制字tmod: m1m0=01,gate=0,c/t=0,可取方式控制字為01h (b) 計算計數初值x由于晶振為12mhz,機器周期t=,要產生產生1ms的定時,計數初值為x=65536-1000=64536=fc18h將 fch

3、、18h 分別預置給th0、tl0。重裝計數值中斷入口yes輸出聲音計滿0.25s?flag=1?無輸出中斷返回nonoyes(1) 、繪制流程圖 開 始 標志flag清0 計時計數值清0 設置定時器標志位flag取反計時計數值清0 定時1ms 啟動定時器 等待中斷 主程序流程圖 中斷程序流程圖 2、實現“滴 、滴”報警門鈴要求:在1的基礎上增加按鈕動作。按鈕按下一次,“滴、滴”聲持續(xù)約3秒(2) 、編寫源程序:共4個程序程序一:實現“滴 、滴”報警聲 tcount equ 30hflag bit 00h org 0000h sjmp start ;跳轉到主程序 org 000bh ;t0的中

4、斷入口地址 ljmp int_t0 ;轉向中斷服務程序start: clrflag ;標志位清零 movtcount,#00h;計時計數值清零 movtmod,#01h ;置t0工作于方式1 movth0,#(65536-1000)/256 ;裝入計數初值 movtl0,#(65536-1000)mod 256 movie,#82h;開中斷 setbtr0;啟動t0定時器 sjmp$; ;等待中斷int_t0: movth0,#(65536-1000)/256 ;重新裝入計數值 movtl0,#(65536-1000)mod 256 inctcount;計時計數值+1 mova,tcount

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

6、,#00h;計時計數值清零 movtmod,#01h ;置t0工作于方式1 movth0,#(65536-1000)/256 ;裝入計數初值 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 ;關聲音 clr tr0;關閉t0定時器 sjmploop; ;反復;t0中斷服務程序int_t0: movth0,#(65536-1000)/256 ;重新裝入計數值 movtl0,#(65536-1000)mo

7、d 256 inctcount;計時計數值+1 mova,tcount cjnea,#250,i1;是否計滿0.25秒 cplflag;計時計數值取反 movtcount,#00h;計時計數值清零i1: jbflag,i2;檢查標志位 cplp1.7;聲音輸出 sjmpretunei2: clrp1.7;關聲音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、 技能提高任選一首歌曲,編制歌譜表,由單片機演奏,實現音樂門鈴。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 ;如果不是結束符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é)拍延時常數 ;節(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中斷服務程序int_t0: mov th0,r1 ;定時器初值 mov tl0,r0 cpl

11、speaker ;聲音輸出 reti;baby dont cry樂譜song: 4、計數器應用設用內部定時器/計數器1的計數功能,工作在方式2,實現計數5次產生中斷使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 ;中斷服務程序 mov r0,#10h mov a,#0feh ;重新設置初值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、 軟、硬件調試仿真(效果圖)(實現“滴 、滴”報警聲)和(實現“滴 、滴”報警門鈴)和(音樂門鈴)的軟、硬件調試仿真(效果圖)計數器的軟、硬件調試仿真(效果圖)任務二 簡易演奏器一、任務設計要求1、基本要求利用定時器的定時功能,分別產生三個聲音的方波,驅動揚聲器發(fā)音,由三個按鍵控制演奏do、re、mi 三個聲音。二、設計過程1、設計方案確定2、 硬件電路設計3、軟件

13、設計(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按下,轉移到dos acall dly jnb p3.1,res ;p3.1按下,轉移到ers acall dly jnb p3.2,mis ;p3.2按下,轉移到mis acall dly sjmp stardos

14、: mov th0,#0fch ;do-定時器初值 mov tl0, #44h setb tr0 ;啟動定時器 jnb tf0,$ ;延時時間到否? clr tf0 ;清中斷標志位 cpl p2.7 ;關聲音 jnb p3.0,dos ;再次判斷-p3.0按下,轉移到dos clr tf0 ;清中斷標志位 sjmp star ;返回主程序res: mov th0,#0fch ;re-定時器初值 mov tl0,#0ach setb tr0 jnb tf0,$ clr tf0 ;清中斷標志位 cpl p2.7 ;關聲音 jnb p3.1,res ;再次判斷-p3.0按下,轉移到dos clr tf0 sjmp star mis: mov th0,#0fdh ;mi-定時器初值 mov tl0,#09h setb tr0 jnb tf0,$ clr tf0 ;清中斷標志位 cpl p2.7 ;關聲音 jnb p3.2,mis ;再次判斷-p3.0按下,轉移

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論