• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于單片機的音樂盒設(shè)計與實現(xiàn)

      2016-07-22 21:16:12魏林海
      電腦知識與技術(shù) 2016年16期
      關(guān)鍵詞:音樂盒蜂鳴器單片機

      魏林海

      摘要:通過以STC89C52單片機為核心,設(shè)計一款數(shù)字音樂盒。該音樂盒主要由以下幾部分組成:STC89C52單片機的最小系統(tǒng),蜂鳴器電路,12864LCD顯示電路,4*4矩陣鍵盤電路,LED燈閃爍電路;功能上實現(xiàn)讀取樂譜上的信息并轉(zhuǎn)化為單片機可用數(shù)據(jù),通過驅(qū)動蜂鳴器實現(xiàn)音樂的播放。在矩陣鍵盤上使用按鍵來選擇十首歌曲的播放及相關(guān)控制,同時在液晶屏上顯示音樂的相關(guān)信息。硬件電路圖布局以Altium Designer為設(shè)計平臺,進行PCB設(shè)計,完成數(shù)字音樂盒的整體設(shè)計、實現(xiàn)。

      關(guān)鍵詞:單片機;音樂盒;蜂鳴器;LCD;PCB

      中圖分類號:TP338 文獻標識碼:A 文章編號:1009-3044(2016)16-0234-03

      音樂是由人們在長期發(fā)展中為了表達各種情感而特別挑選出來的,并組成一個固定的系統(tǒng)[1]。音樂以其具有大眾的魅力,吸引著來自不同地域的人們共同欣賞著優(yōu)美的音樂,激發(fā)調(diào)動人們埋藏在內(nèi)心那已久的悸動。同時,在21世紀,電子技術(shù)進入了輝煌的發(fā)展時期,其產(chǎn)生的電子產(chǎn)品也遍布社會的各個領(lǐng)域,在各行各業(yè)中單片機都在發(fā)揮著核心作用,如何將電子技術(shù)與音樂相融合,亦是研究熱點之一。本文通過利用單片機及音樂相關(guān)知識,設(shè)計一個以52單片機為核心元件的電子音樂盒,以滿足功能多樣、低成本、方便使用、小巧靈活等需求。

      1 音樂盒設(shè)計框圖及流程

      該音樂盒是以STC89C52單片機為核心,加上外圍電路如:矩陣鍵盤電路、蜂鳴器電路、LCD電路、USB供電電路以及LED燈閃爍電路所組成的[2]。音樂盒設(shè)計框圖和流程圖如圖1、圖2所示:

      2 系統(tǒng)軟件設(shè)計

      2.1 音樂程序設(shè)計

      已知不同的音調(diào)有著不一樣的頻率,每個音調(diào)都有著不同的時間周期常數(shù)[3]。用定時器T0對單片機進行定時,通過輸出不同周期的方波給蜂鳴器來控制、發(fā)出需要的音調(diào)[4]。從低音到高音每一個音調(diào)都有定時器T0對應的一個初值,由此當晶振為12MHz,可以列出音調(diào)與定時器T0初值的表1:

      通過表1,可以讀出音樂簡譜上每個音符對應的音調(diào),讀出對應的定時器T0的初值,讓定時器T0工作在定時模式1,當計數(shù)從初值到最大值65536時溢出,并觸發(fā)單片機某個管腳信號取反,所產(chǎn)生的就是所需要的音調(diào)頻率,再通過蜂鳴器發(fā)出對應音調(diào)的聲音。

      在本設(shè)計中以延時函數(shù)控制每個音符的時長來實現(xiàn),以十六分音符的時長編寫一個延時函數(shù),做為其他音符時長的一個基準,所以調(diào)用一次就是十六分音符的時長,循環(huán)調(diào)用該函數(shù)兩次就是八分音符,循環(huán)調(diào)用四次就是四分音符,循環(huán)調(diào)用該函數(shù)八次就是二分音符。根據(jù)以上所述,在程序中本設(shè)計是這樣處理的:把各個音調(diào)所對應定時器T0的初值化為十六進制數(shù),取每個音調(diào)初值的高八位、低八位依次放在兩個數(shù)組中。音階頻率表高八位數(shù)組code uchar FREQH[]={0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; 音階頻率表低八位數(shù)組code uchar FREQL[]={0x8C, 0x5B, 0x15, 0x67, 0x04, 0x90, 0x0C, 0x44, 0xAC, 0x09, 0x33, 0x82, 0xC8, 0x06, 0x22, 0x57, 0x85, 0x98, 0xC1, 0xE4, 0x03}。

      音調(diào)和節(jié)拍關(guān)系處理:從簡譜可以讀出每個音符的音調(diào)和節(jié)拍存在數(shù)組中,每三個表示一個音符:第一個數(shù)字表示音符名1 2 3 4 5 6 7;第二個數(shù)字表示音調(diào)所在音區(qū):0是重音,1是中音,2是高音;第三個數(shù)字表示延時函數(shù)的調(diào)用次數(shù): 1是16分音符調(diào)用次數(shù);2是8分音符調(diào)用次數(shù);4是4分音符調(diào)用次數(shù);8是2分音符調(diào)用次數(shù);16是全音符調(diào)用次數(shù)。通過這樣就可以構(gòu)成一首音樂的數(shù)組,下面就表示《歡樂頌》在本設(shè)計中數(shù)組的表示:

      以此簡譜為標準說明從簡譜到音樂的編碼:數(shù)組第一個數(shù)字3表示第一個音符是3,第二個數(shù)字是1表示第一個音符是中音,第三個數(shù)字4表示這是個四分音符,所以第一個音就是四分音符的中音3。

      2.2 LCD顯示程序設(shè)計

      LCD顯示之前,需進行初始化,之后才能對它進行寫指令或數(shù)據(jù),下面圖3是LCD初始化過程:

      本設(shè)計采用8位數(shù)據(jù)并行方式, DL取1,RE取0,向LCD寫入0x30指令。功能設(shè)定寫入指令0x30。顯示開關(guān)的控制指令: D=1,B=1,C=1,向LCD寫入0x0f指令,等待時間大于100us。清除顯示指令,向LCD寫入0x01指令,等待時間大于10ms,進入模式設(shè)置,向LCD寫入0x06指令。完成初始化設(shè)置,根據(jù)控制端使用單片機向LCD寫入指令和寫入數(shù)據(jù)。

      3 系統(tǒng)硬件設(shè)計

      3.1 硬件原理圖

      基于Altium Designer的原理圖庫建立music.SCHLIB[5]。圖4給出了音樂盒在Altium Designer中設(shè)計的原理圖。

      通過音樂盒原理圖的繪制后,進行編譯排除原理圖中漏接或者其他可以檢測到的問題,驗證無誤后導入到PCB進行布局和布線。

      3.2 單片機最小系統(tǒng)電路

      3.2.1 時鐘振蕩電路

      52MCU的運行速度和其穩(wěn)定性依賴于微控制器時鐘頻率,時鐘電路直接關(guān)系到設(shè)備是否可以正常使用,本設(shè)計時鐘電路采用的是內(nèi)部時鐘模式下,單片機有一個內(nèi)部高增益反相放大器,通過作為輸入引腳XTAL1,輸出引腳為XTAL2,構(gòu)成自激振蕩電路[6]。

      3.2.2 復位電路

      STC89C52單片機最小系統(tǒng)中的復位電路是最小系統(tǒng)中另外一個重要組成部分,它主要的作用就是:用在對單片機實現(xiàn)初始的狀態(tài)。

      3.3 蜂鳴器電路

      單片機通過P3.7口與蜂鳴器模塊聯(lián)系在一起,當蜂鳴器兩端加上工作電壓后,蜂鳴器就可以發(fā)出鳴叫聲。該電路之所以能夠?qū)崿F(xiàn)控制蜂鳴器的響與不響,主要是利用三極管Q1工作在開關(guān)狀態(tài),當P3.7=1時,三極管Q1工作在截止區(qū),蜂鳴器兩端與5V電源斷開,此時不發(fā)聲;當P3.7=0時,三極管Q1工作在飽和區(qū),發(fā)射極與集電極幾乎成短路狀態(tài),蜂鳴器兩端有電壓從而使得蜂鳴器鳴叫聲。

      3.4 LED閃爍電路模塊

      LED閃爍電路由發(fā)光二極管構(gòu)成的,共有8個,一方面同一端接在一起接到VCC,另一方面8個發(fā)光二極管各自通過一個阻值足夠的電阻,從而減少電流,然后分別接到單片機的P0的8個管腳構(gòu)成,當P0的某個管腳通過程序控制其為高電平,那么它對應的LED是一個二極管,符合二極管的原理,所以它處于截止狀態(tài),沒有電流通過,所以燈是滅的。反之,當P0的某個管腳通過程序控制其為低電平的時候,同理,這時電流可以流經(jīng)二極管,因為它處于飽和區(qū),所以燈是亮的。通過在keil開發(fā)環(huán)境改變LED相關(guān)的程序讓其可以達到多種的亮滅情況。

      3.5 矩陣鍵盤掃描模塊電路

      由于單片機I/O口數(shù)目有限,當需要用多個按鍵,采用獨立按鍵一個鍵占用一個端口這樣單片機可能會出現(xiàn)端口不夠用的情況。本次設(shè)計就是這種情況,采用獨立按鍵會占用大量單片機端口而出現(xiàn)端口不夠用,所以為了高效利用單片機的I/O口,采用矩陣式鍵盤可以只利用八個I/O口控制16個按鍵,16個按鍵分成4行4列。每個行列線的交叉點設(shè)一個按鍵,以此構(gòu)成矩陣鍵盤。

      對于矩陣鍵盤按鍵的識別方法,本設(shè)計采用的是線反轉(zhuǎn)法。首先先讓行線全為高電平,列線全為低電平,當一個按鍵按下的時候會使得按下的鍵對應的一條行線變?yōu)榈碗娖?,這一步就可以判斷該按鍵在哪一行,接著讓行線全為低電平,列線全為高電平,同理,當一個按鍵按下的時候會使得該鍵對應的列線變?yōu)榈碗娖剑ㄟ^這兩步確定按鍵的所在的行列也就可以確定是矩陣鍵盤第幾個按鍵被按下了[7]。

      3.6 LCD顯示模塊

      音樂盒在LCD上主要顯示音樂信息,包括音樂的序號、音樂名稱、音樂作曲以及作曲家,所以這里采用的是帶中文字庫的點陣型液晶12864,從名字可以看出它表示的意思,它表示在液晶范圍的橫向可以顯示128個點,縱向可以顯示64個點。該芯片內(nèi)部共有8192個中文漢字,基本確保常用漢字都包括進去了,比較偏的漢字可以通過造字來實現(xiàn)。每個漢字占據(jù)16*16個點,所以屏幕一次最多顯示8*4個漢字,液晶的控制芯片有很多,由于中國漢字的特殊性,這里采用的是用ST7920控制屏幕的顯示,因為其帶有中文字庫,可以顯示本設(shè)計所需要的一些信息。

      單片機通過LCD的控制端的不同組合來進行不同的通信,LCD的主要控制端有第4腳RS,第五腳R/W,第六腳E,第十五腳PSB,在程序里可以通過RS和R/W的高低電平(即置1或置0)組合來選擇單片機寫指令或?qū)憯?shù)據(jù)到LCD存儲器,以及單片機從LCD讀指令或讀數(shù)據(jù)。

      本設(shè)計中主要用到當RS=0,R/W=0,單片機向LCD寫指令,當RS=1,R/W=0,單片機向LCD寫數(shù)據(jù)。

      4 結(jié)果展示

      使用說明:從key1~key10表示第一首歌曲到第十首歌曲,key11表示暫停,key12表示播放,key13表示上一首,key14表示下一首。

      音樂盒播放界面如圖5所示:

      本設(shè)計把音樂和電子聯(lián)系在一起,以一個STC89C52單片機為核心,通過矩陣鍵盤來達到控制音樂的目的,并把當前音樂的信息通過12864液晶屏顯示出來,并利用LED燈來給音樂伴奏。

      參考文獻:

      [1] 張新彩. 基于內(nèi)容的音樂檢索技術(shù)研究與實現(xiàn)[D]. 西安:西北大學, 2009.

      [2] 汲項楓. 基于嵌入式系統(tǒng)的便攜式評價終端設(shè)計與開發(fā)[D]. 青島:中國石油大學(華東), 2012.

      [3] Atmed Corporation. Microcontroller Data Book[Z]. 1999.

      [4] 馬松平. 談談音樂教學中怎樣記錄音的高低長短[J]. 讀寫算(教育教學研究), 2011(41).

      [5] 王鵬. 以Altium Designer為平臺的EDA實踐教學探討[J]. 電子世界, 2012(2).

      [6] 劉鳳格等. MCS-51單片機的時鐘電路[J]. 菏澤學院學報, 2003(2).

      [7] 張迎輝. 單片微型計算機鍵盤接口設(shè)計[J]. 信息技術(shù), 2004(7).

      猜你喜歡
      音樂盒蜂鳴器單片機
      電動自行車產(chǎn)品車速提示音檢測現(xiàn)狀和整改技術(shù)研究(2)
      特別的音樂盒
      掌控板制作簡易鋼琴
      電腦報(2020年12期)2020-06-30 19:56:42
      基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于單片機的便捷式LCF測量儀
      電子制作(2019年9期)2019-05-30 09:42:02
      單片機驅(qū)動蜂鳴器的程序設(shè)計
      裝滿悔恨的音樂盒
      一個后悔的音樂盒
      豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
      扎赉特旗| 普兰店市| 利津县| 南宁市| 阳信县| 安陆市| 夹江县| 嵊州市| 长海县| 庄河市| 安阳县| 丹东市| 洱源县| 龙泉市| 广德县| 紫阳县| 万源市| 松阳县| 天全县| 嘉黎县| 班玛县| 武鸣县| 阿拉尔市| 正宁县| 黑龙江省| 当雄县| 桃园县| 济宁市| 广平县| 武陟县| 鹤岗市| 高平市| 岳阳县| 如东县| 鹤峰县| 石景山区| 长春市| 镇原县| 阳新县| 昌吉市| 双辽市|