單片機課程設計報告音樂盒的設計_第1頁
單片機課程設計報告音樂盒的設計_第2頁
單片機課程設計報告音樂盒的設計_第3頁
單片機課程設計報告音樂盒的設計_第4頁
單片機課程設計報告音樂盒的設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1緒 論1.1課題背景 近年來隨著科技的飛速發展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。 自上世紀90年代,嵌入式技術已經成為通信和消費類電子產品的共同發展方向。移動通信終端是集成移動通信功能的嵌入式系統產品,是一個軟件和硬件有效綜合、集成的系統。 21世紀是知識經濟時代。其中以電子技術的發展最為迅速,以電子產品為介質的通訊和應用更是日新月異,不短飆升。實際型的應用技術越來越向著頂端發展,更新周期不斷縮短。在人才競爭的當今社會,選擇

2、有著實際技術型的人才已經是用人單位首先考慮的因素。為此,學校開展了電子課程技術的設計,目的在于提高和加強學生的實踐技能,為就業奠定基礎。電子課程設計是配合電子技術基礎的課程與實驗教學的一個非常重要的教學環節。它能鞏固電子技術的理論知識,提高電子電路的設計水平,加強綜合分析 和解決問題的能力,進一步培養學生的實驗技能和動手能力,啟發學生的創新意識和創新思維。這將對學生畢業以后從事電子方面的工作有很大的幫助。2音樂盒的設計2.1技術要求能夠產生低中高三個音調的7個標準音階do,re,m,fa,so,la,si;并在按下相應的數字鍵的時候數碼管顯示相應數字;自選一首歌曲,查找到相關的樂譜,確定音階和

3、節拍,并編寫相關的源程序是蜂鳴器能夠播放出該歌曲。2.2設計方案及實現2.2.1 方案一任務要求:以89s51為核心,根據設計指標設計電路的框圖,畫出電路邏輯圖和裝配圖,查閱資料,確定所需各元器件型號和參數,自擬調整測試方法,并調試電路使其達到設計指標要求。2.2.2方案設計根據任務要求,可以通過以下原理圖(圖2-1)來實現該音樂盒的設計.復位電路琴鍵 電路放大電路p0.0|p0.7p1.0時鐘電路單片機80c51圖2-1基本原理圖本方案的琴鍵輸入是通過獨立式鍵盤來完成的,這樣便于控制且直觀,如上圖設計原理所示我們可以畫出比較直觀的流程圖如圖 2-2所示。圖2-2程序流程圖主流程圖ny等待中斷

4、,判斷是否中斷定時器的初始化讀入p0的狀態,跳轉至相應的程序段判斷是否抖動態讀入p0狀關閉定時器進行識別程序開始中斷返回對p1.0求反重裝計時器的值y中斷程序流程圖 居于上述流程圖我們可以通過proteus軟件畫出該實驗的原理圖(圖2-3):圖2-3實驗原理圖2.2.3方案實現對于音樂盒而言發出悅耳的音樂是其最主要的功能,那么對于使用單片機來制作出來的音樂盒怎么實現音符的發聲呢?通過查看資料我們知道音符的發音主要靠不同的音頻脈沖。利用單片機的內部定時器/計數器0,使其工作在模式1,定時中斷,然后控制引腳的輸出音樂(本實驗采用p1.0做為輸出引腳)。只要算出某一音頻的周期(1/頻率),然后將此周

5、期除以2,即為半周期的時間,利用定時器計時這個半周期時間,每當計時到后就將輸出脈沖的i/o反相,然后重復計時此半周期時間再對i/o反相,就可在i/o腳上得到此頻率的脈沖。具體做法如下所示(以中音do為例):例如:中音1(do)的音頻=523hz,周期t=1/523s=1912定時器/計數器0的定時時間為:t/2=1912/2=956定時器956的計數值=定時時間/機器周期=956/1=956(時鐘頻率=12mhz)裝入t0計數器初值為65536-956=64580將64580裝入t0寄存器中,啟動t0工作后,每計數956次時將產生溢出中斷,進入中斷服務時,每次對p1.0引腳的輸出值進行取反,就

6、可得到中音do(523hz)的音符音頻。將51單片機內部定時器工作在計數器模式1下,改變計數初值th0,tl0以產生不同的頻率。下表2-1是c調各音符頻率與計數初值t的對照表: 頻率(hz)/初值()音符頻率(hz)/初值()低1do262/63627中1do 523/64580高1do 1042/65056低2re 294/63835中2re589/64687 高2re 1245/65134低3m 330/64021 中3m 661/64780高3m 1318/65157低4fa 350/64107中4fa700/64822 高4fa 1397/65178低5so 393/64264 中5s

7、o 786/64900高5so 1568/65217 低6la 441/64402中6la882/64969高6la1760/65252低7si495/64526 中7si990/65031高7si1967/65282表2-1 c調各音符頻率與計數初值t的對照表2.2.3.1 詳細參數本實驗以intel公司的80c51為核心,配合鍵盤系統,放大電路,時鐘電路和數碼管顯示電路實現音樂的演奏。80c51:高性能的靜態80c51 設計 由先進cmos 工藝制造并帶有非易失性flash 程序存儲器 全部支持12 時鐘和6 時鐘操作 p89c51x2 和p89c52x2/54x2/58x2 分別包含12

8、8 字節和256 字節ram 32 條i/o 口線 3 個16 位定時/計數器 6 輸入4 優先級嵌套中斷結構 1 個串行i/o 口 可用于多機通信 i/o 擴展或全雙工uart以及片內振蕩器和時鐘電路。此外,由于器件采用了靜態設計,可提供很寬的操作頻率范圍,頻率可降至0 。可實現兩個由軟件選擇的節電模式,空閑模式和掉電模式,空閑模式凍結cpu但ram定時器,串口和中斷系統仍然工作掉電模式保存ram的內容 但是凍結振蕩器 導致所有其它的片內功能停止工作。由于設計是靜態的時鐘可停止而不會丟失用戶數據 運行可從時鐘停止處恢復。鍵盤系統:鍵盤系統的鏈接電路圖如圖2-31所示:圖2-31鍵盤系統的鏈接

9、電路圖當用手按下一個鍵時,往往按鍵在閉合位置和斷開位置之間跳幾下才穩定到閉合狀態的情況;在釋放一個鍵時,也回會出現類似的情況。這就是抖動。抖動的持續時間隨鍵盤材料和操作員而異,不過通常總是不大于10ms。很容易想到,抖動問題不解決就會引起對閉合鍵的識別。用軟件方法可以很容易地解決抖動問題,這就是通過延遲10ms來等待抖動消失,這之后,在讀入鍵盤碼。具體編碼如下所示mai: clr tr0 ;關閉上一次定時,進入下一次按鍵判斷mov tmod, #01hmov ie, #82hmov a, p1mov 30h, a ;保存鍵盤狀態值 lcall d10ms ;延遲10ms消除抖動mov a ,

10、p1 ;再讀鍵盤狀態cjne a, 30h, mai ;兩次結果不同,是抖動引起,轉mai放大電路分析如圖2-4所示:圖2-4放大電路輸出原理圖管進此部分的放大電路簡單容易實現。可以采用一個小功率pnp型硅管9012,利用“分壓 偏置式工作點穩定直流通路”,達到了對靜態工作點的穩定。分壓電阻分別選擇1k和5.5k。蜂鳴器一端接+5v電壓,一端接晶體管的發射極。由p1.0輸出預定的方波,加到晶體行放大,再輸出到嗡寧器,很好的實現了頻率、聲音的轉換。時鐘電路如圖2-5所示:此系統的時鐘電路設計是采用內部方式,即是利用芯片內部的振蕩電路。mcs-51內部有一個用于構成振蕩器的高增益反相放大器。電容值

11、選擇22f,所以此系統電路的晶體振蕩器的值為6 mhz。圖2-5 msc-51片內振蕩電路2.3方案二2.3.1 方案設計基于方案一我們知道采用的是獨立的鍵盤做為音符的輸入,方案二則采用矩陣鍵盤來進行輸入,具體電路原理圖如圖2-6所示。圖2-6方案二原理圖圖2-6 原理圖2.3.2方案實現本方案的實現基本和方案一相同,唯一不同的地方就值本實驗采用矩陣鍵盤作為音符輸入來實現。由于矩陣鍵盤需獨立的編碼,矩陣鍵盤的功能如下1、識別鍵盤有無按鍵按下,若無鍵按下返回。2、如果有鍵按下,找出具體的按鍵值(順序碼)矩陣鍵盤鍵值查找程序鍵值存入30h單元key_scan: mov p1,#0f0h mov a

12、,p1 anl a,#0f0h mov b,a mov p1,#0fh mov a,p1 anl a,#0fh orl a,b cjne a,#0ffh,key_in1 retkey_in1: mov b,a mov dptr,#keytable mov r3,#0ffh key_in2: inc r3 mov a,r3 movc a,a+dptr cjne a,b,key_in3 mov a,r3 mov 30h,a retkey_in3: cjne a,#00h,key_in2 ret key_table: db 0eeh,0edh,0ebh,0e7h,0deh db 0ddh,0dbh,

13、0d7h,0beh,0bdh db 0bbh,0b7h,07eh,07dh,07bh, 077h db 00h end3總結 兩周的課程設計已經結束。此次課程設計題目并不十分復雜,但是在設計過程中還是遇到了很多意想不到的困難。在查閱資料之后,我把困難逐個解決;在設計中,所學知識得到進一步的鞏固,使我掌握了平時沒注意到的一些細節問題;設計中使我大概掌握了設計思想,必須把握全局。我對本題目的的評價是:所選硬件的對應軟件編程比較簡單,從而簡化了編程過程,但是軟件編程部分,數據轉換有些應使用循環結構得到的結果我用了順序結構,所以使程序顯得有些冗長,但是由于水平有限和時間關系沒能改進。總體來說,此次設計

14、是比較有意義的,是提高學習效率和學習積極性的一種很好的途徑。4參考文獻1.高鋒.單片微型計算機原理與接口技術.科學出版社,2003年2.李傳軍.單片機原理及應用(第一版)m.河南科學技術出版社,2006年3.楊志忠.數字電子技術.高等教育出版社(第二版)m,2003年4.張友德.單片微型機原理、應用與實驗m.上海:復旦大學出版社,2000年5.李全利.單片機原理及接口技術.高等教育出版社,2004年5附錄 5.1 程序的編寫源程序如下所示: numtim equ 20hgewei equ 21hshiwei equ 22hscanled equ 23horg 0000hljmp maiorg

15、000bhljmp timorg 100h mai: mov r2,#3fh mov p2,r2 clr tr0 mov tmod, #01h mov ie, #82h mov a, p0 mov 30h, a lcall d10ms mov a , p0 cjne a, 30h, mai jnb p0.0, n1 jnb p0.1, n2 jnb p0.2, n3 jnb p0.3, n4 jnb p0.4, n11 jnb p0.5, n6 jnb p0.6, n7 jnb p0.7, n8n11: ljmp n5n6: ljmp la n7: ljmp haha n8: ljmp heh

16、en1: mov dptr, #tab mov a, #00h movc a, a+dptr mov r1, a mov a, #01h movc a, a+dptr mov r0, a mov th0, r1 mov tl0 ,r0 setb tr0 mov a,#06h mov p2,a re1: jb p0.0, mai ajmp re1 n2: mov dptr, #tab mov a, #02h movc a, a+dptr mov r1, a mov a, #03h movc a, a+dptr mov r0, a mov th0, r1 mov tl0, r0 setb tr0

17、mov a,#5bh mov p2,are2: jb p0.1,mai ajmp re2 n3: mov dptr, #tab mov a, #04h movc a, a+dptr mov r1, a mov a, #05h movc a, a+dptr mov r0, a mov th0, r1 mov tl0, r0 setb tr0 mov a,#4fh mov p2,are3: jb p0.2,n9 ajmp re3n9: ljmp main4: mov dptr, #tab mov a, #06h movc a, a+dptr mov r1, a mov a, #07h movc a

18、, a+dptr mov r0, a mov th0, r1 mov tl0, r0 setb tr0 mov a,#66h mov p2,are4: jb p0.3, a1 ajmp re4a1: ljmp main5: mov dptr, #tab mov a, #08h movc a, a+dptr mov r1, a mov a, #09h movc a, a+dptr mov r0, a mov th0, r1 mov tl0, r0 setb tr0 mov a,#6dh mov p2,are5: jb p0.4, a2 ajmp re5a2: ljmp maila: mov dp

19、tr, #tab mov a, #0ah movc a, a+dptr mov r1, a mov a, #0bh movc a, a+dptr mov r0, a mov th0, r1 mov tl0, r0 setb tr0 mov a,#7dh mov p2,are6: jb p0.5, a3 ajmp re6a3: ljmp mai haha: mov dptr, #tab mov a, #0ch movc a, a+dptr mov r1, a mov a, #0dh movc a, a+dptr mov r0, a mov th0, r1 mov tl0, r0 setb tr0

20、 mov a,#07h mov p2,are7: jb p0.6,a4 ajmp re7a4: ljmp mai hehe: mov tmod,#00000001b setb ea setb et0 mov numtim,#01hstart0: mov 30h,#00h next : mov a,30h mov dptr,#table movc a,a+dptr mov r2,a jz end0 anl a,#0fh mov r5,a mov a,r2 swap a anl a,#0fh jnz sing clr tr0 jmp d0 sing: dec a mov 22h,a rl a mo

21、v dptr,#table1 movc a,a+dptr mov th0,a mov 21h,a mov r1,a mov a,22h rl a inc a movc a,a+dptr mov tl0,a mov 20h,a mov r0,a setb tr0 mov a,#7fh mov p2,a d0: lcall delay jb p0.7,end0 inc 30h jmp next end0: clr tr0 jb p0.7,n10 ajmp start0n10: ljmp maitim: push acc push psw mov tl0,r0 mov th0,r1 cpl p1.0 pop psw pop acc reti delay: mov r7,#02h d3: mov r4,#187 d4: mov r3,#248 djnz r3,$ djnz r4,d4 djnz r7,d3 djnz r5,delay retre8: jb p0.7,a5 ajmp re8a5: ljmp mai d10ms: mov r1, #100 d1: mov r2, #98 nopd2: djnz r2, d2 table: djnz r1, d1 re

溫馨提示

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

評論

0/150

提交評論