版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機原理及接口技術</p><p><b> 課程設計報告</b></p><p> 題 目:基于51單片機三首歌音樂門鈴設計</p><p> 學 院: 物理與信息工程學院 </p><p> 專 業(yè): 09通
2、信工程 </p><p> 學 號: </p><p> 姓 名: </p><p> 指導老師: </p><p> 完成日期: 2012年5月18日 <
3、;/p><p><b> 一、設計功能要求</b></p><p> 傳統(tǒng)的電子音樂門鈴通常采用分立元件或?qū)S玫囊魳稩C制作。本次設計用一個用STC89C52RC單片機設計的電子音樂門鈴,僅需STC89C52RC單片機最小系統(tǒng)再加一片LM386做音頻小功放驅(qū)動揚聲器發(fā)聲??腿藖碓L時,按一下按鈕,門鈴就會奏出優(yōu)美的電子音樂聲;再按一下,門鈴又會奏出下一首電子音樂聲音.共
4、可以奏出六首不同旋律的歌曲。</p><p><b> 二、主要技術指標</b></p><p> 1、利用STC89C52單片機定時中斷實現(xiàn)輸出不同頻率的方波,通過一個簡單的驅(qū)動電路使揚聲器發(fā)出音樂,并通過外中斷T0控制音樂播放,每按一次T0播放一首不同的音樂,使其能夠播放三首歌曲后又循環(huán)播放。</p><p> 2、其電路是由:STC
5、89C52單片機最小系統(tǒng)電路和一個由電阻和音頻小功放組成的驅(qū)動電路及揚聲器再加上控制音樂播放的外中斷T0。</p><p> 3、音樂是由音符組成,不同的音符是由相應頻率的振動產(chǎn)生。產(chǎn)生不同的音頻需要有不同固定周期的脈沖信號。要產(chǎn)生音頻脈沖,只要算出某一音頻的周期T(1/f) ,然后將此周期T除以2,即為半周期的時間。我們利用單片機的內(nèi)部定時器TO,使其工作在計數(shù)器模式MODEl下.初始化適當?shù)挠嫈?shù)值THO及T
6、LO以計時這個半周期時間。每當計時時間到后就將輸出脈沖的P1.0口反相。然后重復計時此半周期時間,再對P1.0口反相,就可在單片機Pl.0引腳上得到此頻率的脈沖。P1.0引腳脈沖接LM386作音頻功放,然后輔出到揚聲器,從而發(fā)出美妙的樂音。</p><p> 例如設單片機晶振為12MHz,每計數(shù)一次用時1µs。我們要產(chǎn)生f低音DO,其頻率為392Hz,周期T=1/392=2551µs,半周期
7、時間為1276µs。因此計數(shù)器應每計數(shù)1276次時將P1.0口反相, 即計數(shù)初值應設定為(THxTLx)= \* MERGEFORMAT 一1276=64260,就可得到低音D0。P3.5口作為控制門鈴的按鈕,每按一次,產(chǎn)生的電子樂音就改變一次,按完3次,再重復循環(huán)。3首歌曲分別為《愛情買賣》、《生日快樂》、《不倒翁》。</p><p><b> 三、設計方案</b></
8、p><p> 電路仍以STC89C52為主要控制芯片,采用單片機最小系統(tǒng)和外圍驅(qū)動電路推動揚聲器發(fā)出聲音,此電路更為簡單,程序不復雜,通過外中斷T0控制音樂的播放,并且三首歌曲能夠循環(huán)播放。音樂聲音穩(wěn)定、清晰。減少了外圍電路原件,節(jié)約了成本,電路基本框圖如圖1所示。</p><p><b> 圖1 方案方框圖</b></p><p> 四、主
9、要元器件功能介紹</p><p> 1、STC89C52RC芯片</p><p> STC89C52RC有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,STC89C52RC可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的Flash存儲器
10、可有效地降低開發(fā)成本。</p><p> ▲ 芯片封裝與引腳功能</p><p><b> ▲ 主要功能特性:</b></p><p> · 兼容MCS51指令系統(tǒng) · 8k可反復擦寫(>1000次)Flash ROM</p><p> · 32個雙向
11、I/O口 · 256x8bit內(nèi)部RAM</p><p> · 3個16位可編程定時/計數(shù)器中斷 · 時鐘頻率0-24MHz</p><p> · 2個串行中斷 · 可編程UART串行通道</p><p> · 2個外部中斷源
12、 · 共6個中斷源</p><p> · 2個讀寫中斷口線 · 3級加密位</p><p> · 低功耗空閑和掉電模式 ·軟件設置睡眠和喚醒功能</p><p> 2、LM386音頻功率放大器</p><p&g
13、t; LM386是音頻功率放大 器,主要應用于低電壓消費類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至 200。輸入端以地位參考,同時輸出端被自動偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場合。 </p><p> ▲ LM386引腳圖</p><p>&l
14、t;b> ▲ 主要特性</b></p><p> ·靜態(tài)功耗低,約為4mA,可用于電池供電。 </p><p> ·工作電壓范圍寬,4-12V or 5-18V。 </p><p><b> ·外圍元件少。 </b></p><p> ·電壓增益可調(diào),2
15、0-200。 </p><p><b> ·低失真度。</b></p><p> LM386電源電壓4--12V,音頻功率0.5w。LM386音響功放是由NSC制造的,它的電源電壓范圍非常寬,最高可使用到15V,消耗靜態(tài)電流為4mA,當電源電壓為12V時,在8歐姆的負載情況下,可提供幾百mW的功率。它的典型輸入阻抗為50K。</p><
16、;p> 五、系統(tǒng)硬件電路設計</p><p><b> 1、硬件電路設計</b></p><p><b> 圖2 電路原理圖</b></p><p> 系統(tǒng)以STC89C52RC單片機為核心,加上外圍電源時鐘電路、LM386功放電路及揚聲器電路組成。STC89C52RC是一種低功耗/低電壓、高性能的8位單片
17、機,內(nèi)部除CPU外,還包括128字節(jié)RAM,4個8位并行I/O口,5個中斷優(yōu)先級,2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,片內(nèi)集成4K字節(jié)可改變程序Flash存儲器,具有低功耗、速度快、程序擦寫方便等優(yōu)點,完全滿足本系統(tǒng)設計需要。系統(tǒng)通過P1.0連接功放電路從而驅(qū)動揚聲器放出電子聲樂,P3.5口連接門鈴按鍵。此電子音樂門鈴的電路連接圖如上圖2所示。</p><p><b> 六、系統(tǒng)軟件設計&l
18、t;/b></p><p><b> 1、軟件設計</b></p><p> 軟件的設計主要是對STC89C52RC單片機進行編程,音樂門鈴的程序主要是對音符頻率的轉(zhuǎn)換,采用定時中斷,延時等實現(xiàn)其設計指標,通過外中斷T0控制音樂的播放。程序框圖如圖3。</p><p><b> 圖3 程序框圖</b></
19、p><p> 首先建立音樂,把音樂的音符找出,建立各個音符的定時常數(shù)T值表,如表1所示。</p><p> 編寫程序時我們把T值表按順序建立在“TABLE”。每個發(fā)音符使用1個字節(jié),字節(jié)的高4位(簡譜碼)代表音符的高低,低4位(節(jié)拍碼)代表音符的節(jié)拍。如果l拍為0.4s,1/4拍就是0.1s,只要設定延遲時間就可求得節(jié)拍的時間。假設1/4拍為1DELAY,則1拍應為4 DELAY,以此類推
20、。所以只要求得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù)。1/4拍的延時時間在此我們設為125ms,節(jié)拍碼如表2所示。音符節(jié)拍碼編程時放在程序的最后面“SONGx” 處。</p><p> T值表按順序建立在“TABLE”如下:</p><p><b> table:</b></p><p> dw 64260,
21、64400,64524,64580</p><p> dw 64684,64777,64820,64898</p><p> dw 64968,65030,65058,65110</p><p> dw 65157,65178,65217</p><p> 三首歌曲簡碼節(jié)拍碼
22、編寫如下:</p><p> song: ;第1首歌《愛情買賣》</p><p> db 42h,44h,22h,14h,24h,44h,42h,52h,64h,04h</p><p> db 52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h,42h,44h,22h,14h,84h,62h,52h,6
23、2h,52h,44h,52h,54h,42h,52h,54h,62h</p><p> db 52h,42h,22h,52h,44h,42h,44h,22h,14h,24h,42h,44h,52h,64h,52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h</p><p> db 42h,42h,42h,22h,14h,84h,62h,52h,62h
24、,52h,48h,52h,54h,42h,52h,54h,62h,52h,42h,22h,52h,48h,62h,84h,82h,84h,82h</p><p> db 92h,82h,62h,52h,48h,92h,0b2h,92h,82h,62h,52h,42h,22h,54h,52h,62,62h,54h,62h,84h,82h,84h,84h,92h,82h,62h,52h,44h,02h,22h,42
25、h,22h,12h,54h,64h,44h,04h</p><p> db 00h</p><p> song1: ;第2首歌《生日快樂》</p><p> db 44h,54h,64h,44h</p><p> db 44h,54h,64h,44h</p>&l
26、t;p> db 64h,74h,88h</p><p> db 64h,74h,88h </p><p> db 82h,92h,82h,72h,64h,44h</p><p> db 82h,92h,82h,72h,64h,44h</p><p&g
27、t; db 44h,84h,48h</p><p> db 44h,14h,48h</p><p> db 00h</p><p> song2: ;第3首歌《不倒翁》</p><p> db 62h,82h,82h,62h,98h</p
28、><p> db 92h,0b2h,0b2h,82h,98h</p><p> db 62h,82h,82h,52h,68h</p><p> db 92h,0b2h,0b2h,82h,98h </p><p> db 62h,82h,82h,62
29、h,92h,92h,94h</p><p> db 92h,0b2h,0b2h,92h,84h,94h</p><p> db 0b8h,0b4h,04h</p><p> db 00h</p><p> 七、調(diào)試及性能分析:</p><p><
30、b> 1、硬件調(diào)試</b></p><p><b> 2、軟件調(diào)試</b></p><p><b> 調(diào)試步驟和方法:</b></p><p> 在WAVE平臺上進行單片機系統(tǒng)程序設計、編輯、編譯、調(diào)試,最后生成目標代碼文件(*.hex)。啟動單片機,將生成的目標代碼文件下載到單片機中去。下載完成
31、后按下T0,這時通過揚聲器我們可以聽到有音樂播放,再按一次T0可以聽到單片機所播放的音樂換成了不同的歌曲。當播放了三首不同的歌曲后,繼續(xù)按下T0,單片機又開始播放第一首歌曲。</p><p> 調(diào)試過程出現(xiàn)問題分析</p><p> 歌曲聽起來比較模糊不清晰,主要是設置延時不當,在源程序適當調(diào)節(jié)節(jié)拍延時重新編譯下載,可解決問題。</p><p> 歌曲沒有間斷
32、,一直唱不停,主要是每首歌完后未加上能夠識別歌曲已唱完的不發(fā)音標志“ 00h”</p><p><b> 3、性能分析</b></p><p><b> 參考文獻</b></p><p> [1]段晨東編著 .單片機原理及接口技術.北京:清華大學出版社 , 2008 </p><p>
33、[2] 范風強編著.單片機語言C51應用實戰(zhàn)集錦.北京:電子工業(yè)出版社,2003</p><p> [3]陳家俊,鄭滔編著.程序設計教程.北京:機械工業(yè)出版社,2004</p><p><b> 附件:</b></p><p> org 00h ;主程序起始地址</p>&
34、lt;p> jmp start ;跳動主程序</p><p> org 0bh ;timer0中斷起始地址</p><p> jmp tim0 ;跳至timer0在mode1</p><p> start
35、: MOV tmod,#00000001b ;設timer0在mode1</p><p> MOV ie,#10000010b ;中斷使能</p><p> jb p3.5,$ ;第一次按to?</p><p> call dela
36、y1 ;消除抖動</p><p> jnb p3.5,$ ;to放開?</p><p> MOV 31h,#00 ;按to次數(shù)計數(shù)指針初值為00h</p><p><b> start0:</b></p>&
37、lt;p> MOV 30h,# song ;取簡譜碼指針(第1首)</p><p> next: MOV a,30h</p><p> MOV dptr,#table</p><p> MOVc a,@a+dptr ;至相關頁碼,高4位
38、為音符的高低</p><p> MOV r2,a ;低4位為音符的節(jié)拍</p><p> jz end0 ;檢查簡譜碼是否已結(jié)束(有無00?)</p><p> anl a,#0fh ;取節(jié)拍(低4位)</p
39、><p> MOV r5,a ;存入r5,節(jié)拍的時間</p><p> MOV a,r2</p><p> swap a</p><p> anl a,#0fh ;取音頻值(高4位)</p>&l
40、t;p> jnz sing ;是否為0,是0則不發(fā)音</p><p> clr tr0</p><p> jmp d1</p><p> sing: dec a ;因0不列入</p>&
41、lt;p> MOV 22h,a ;存入(22h)</p><p> rl a ;乘2</p><p> MOV dptr,#table</p><p> MOVc a,@a+dptr ;至ta
42、ble取碼,取t的值</p><p> MOV th0,a ;取到的高位字節(jié)存入th0</p><p> MOV 21h,a ;取到的高位字節(jié)存入(21h)</p><p> MOV a,22h ;再載入取到的音符碼&
43、lt;/p><p> rl a ;乘2</p><p> inc a ;加1</p><p> MOVc a,@a+dptr ;至table取相對的低位字節(jié)計數(shù)值</p><p> MOV
44、 tl0,a ;取到的低位字節(jié)存入tl0</p><p> MOV 20h,a ;取到的低位字節(jié)存入(20h)</p><p> setb tr0 ;啟動timer0</p><p> d1: cal
45、l delay</p><p> inc 30h ;取簡譜碼指針加1</p><p> jmp next</p><p> end0: clr tr0 ;停止計數(shù)器</p><p> M
46、OV a,31h ;載入計次指針</p><p> xrl a,#00h ;是否按第1次?</p><p> jnz end1 ;不是則跳至end1</p><p> jb p3.5,$
47、 ;按第2次?</p><p> call delay1 ;消除抖動</p><p> jnb p3.5,$ ;放開否?</p><p> inc 31h ;計次地址(31h)加1</p>
48、<p> MOV 30h,#song1 ;第2首歌指針</p><p> jmp next</p><p><b> end1:</b></p><p> MOV a,31h ;載入計次指針</p><p>
49、 xrl a,#01h ;是否按第2次?</p><p> jnz end2 ;不是則跳至end2</p><p> jb p3.5,$ ;按第3次?</p><p> call delay1
50、 ;消除抖動</p><p> jnb p3.5,$ ;放開否?</p><p> inc 31h ;計次地址(31h)加1</p><p> MOV 30h,# song2 ;第3首歌指針</p>&
51、lt;p> jmp next</p><p><b> end2:</b></p><p> jmp start ;回到第1次位置</p><p> tim0: push acc ;將a的值暫存于堆棧&l
52、t;/p><p> push psw ;將psw的值暫存于堆棧</p><p> setb rs0 ;設工作寄存器庫1,rs0=1,rs1=0</p><p> clr rs1</p><p> MOV
53、tl0,20h ;重設計數(shù)值</p><p> MOV th0,21h</p><p> cpl p1.1 ;將p11位反相</p><p> pop psw ;至堆棧取回psw的值</p><p>
54、; pop acc ;至堆棧取回a的值</p><p> reti ;返回主程序</p><p> delay: MOV r7,#02 ;125秒</p><p> d2: MO
55、V r4,#125</p><p> d3: MOV r3,#248</p><p> djnz r3,$</p><p> djnz r4,d3</p><p> djnz r7,d2</p><p> dj
56、nz r5,delay ;決定節(jié)拍</p><p><b> ret</b></p><p> delay1: MOV r4,#20</p><p> d4: MOV r3,#248</p><p> djnz
57、 r3,$</p><p> djnz r4,d4</p><p><b> ret</b></p><p> org 300h</p><p><b> table:</b></p><p> dw
58、 64260,64400,64524,64580</p><p> dw 64684,64777,64820,64898</p><p> dw 64968,65030,65058,65110</p><p> dw 65157,65178,65217</p><p> so
59、ng: ;第一首歌</p><p> db 42h,44h,22h,14h,24h,44h,42h,52h,64h,04h</p><p> db 52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h,42h,44h,22h,14h,84h,62h,52h,62h,52h,44h,52h,54h,42h,52h,54h,62h</p
60、><p> db 52h,42h,22h,52h,44h,42h,44h,22h,14h,24h,42h,44h,52h,64h,52h,54h,42h,54h,52h,82h,82h,62h,62h,52h,64h</p><p> db 42h,42h,42h,22h,14h,84h,62h,52h,62h,52h,48h,52h,54h,42h,52h,54h,62h,52h,42h
61、,22h,52h,48h,62h,84h,82h,84h,82h</p><p> db 92h,82h,62h,52h,48h,92h,0b2h,92h,82h,62h,52h,42h,22h,54h,52h,62h,62h,54h,62h,84h,82h,84h,84h,92h,82h,62h,52h,44h,02h,22h,42h,22h,12h,54h,64h,44h,04h</p>&l
62、t;p><b> db 00h</b></p><p> song1: ;第2首歌</p><p><b> ;1</b></p><p> db 44h,54h,64h,44h</p><p> db 44h,54h,64h,44
63、h</p><p> db 64h,74h,88h</p><p> db 64h,74h,88h</p><p><b> ;2</b></p><p> db 82h,92h,82h,72h,64h,44h</p><p>
64、 db 82h,92h,82h,72h,64h,44h</p><p> db 44h,84h,48h</p><p> db 44h,14h,48h</p><p> db 00h</p><p> song2: ;第3首歌</p>
65、<p> db 62h,82h,82h,62h,98h</p><p> db 92h,0b2h,0b2h,82h,98h</p><p> db 62h,82h,82h,52h,68h</p><p> db 92h,0b2h,0b2h,82h,98h</p
66、><p><b> ;2</b></p><p> db 62h,82h,82h,62h,92h,92h,94h</p><p> db 92h,0b2h,0b2h,92h,84h,94h</p><p> db 0b8h,0b4h,04h</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機音樂門鈴課程設計
- 基于51單片機音樂盒課程設計
- 課程設計--基于單片機的門鈴控制
- 單片機課程設計--電子門鈴
- 基于51單片機課程設計
- 51單片機課程設計
- 單片機課程設計(簡易門鈴)
- 基于51單片機課程設計--基于51單片機的紅外線設計
- 基于51單片機課程設計報告
- 基于51單片機的課程設計
- 單片機課程設計--基于51單片機的定時鬧鐘設計
- 51單片機課程設計題目
- 單片機課程設計--基于51單片機溫度傳感器設計
- 課程設計--用單片機實現(xiàn)電子琴唱同一首歌
- 單片機課程設計---基于51單片機的電子鐘設計
- 單片機課程設計—基于51單片機的溫度監(jiān)控系統(tǒng)設計
- 51單片機課程設計報告
- 硬件課程設計報告--基于51單片機音樂播放器設計
- 基于at89c51單片機音樂盒課程設計
- 單片機課程設計---基于51單片機的電子顯示屏設計
評論
0/150
提交評論