亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        魏林海

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

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

        中圖分類號(hào):TP338 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)16-0234-03

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

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

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

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

        2.1 音樂程序設(shè)計(jì)

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

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

        在本設(shè)計(jì)中以延時(shí)函數(shù)控制每個(gè)音符的時(shí)長來實(shí)現(xiàn),以十六分音符的時(shí)長編寫一個(gè)延時(shí)函數(shù),做為其他音符時(shí)長的一個(gè)基準(zhǔn),所以調(diào)用一次就是十六分音符的時(shí)長,循環(huán)調(diào)用該函數(shù)兩次就是八分音符,循環(huán)調(diào)用四次就是四分音符,循環(huán)調(diào)用該函數(shù)八次就是二分音符。根據(jù)以上所述,在程序中本設(shè)計(jì)是這樣處理的:把各個(gè)音調(diào)所對(duì)應(yīng)定時(shí)器T0的初值化為十六進(jìn)制數(shù),取每個(gè)音調(diào)初值的高八位、低八位依次放在兩個(gè)數(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)系處理:從簡譜可以讀出每個(gè)音符的音調(diào)和節(jié)拍存在數(shù)組中,每三個(gè)表示一個(gè)音符:第一個(gè)數(shù)字表示音符名1 2 3 4 5 6 7;第二個(gè)數(shù)字表示音調(diào)所在音區(qū):0是重音,1是中音,2是高音;第三個(gè)數(shù)字表示延時(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è)計(jì)中數(shù)組的表示:

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

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

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

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

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

        3.1 硬件原理圖

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

        通過音樂盒原理圖的繪制后,進(jìn)行編譯排除原理圖中漏接或者其他可以檢測(cè)到的問題,驗(yàn)證無誤后導(dǎo)入到PCB進(jìn)行布局和布線。

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

        3.2.1 時(shí)鐘振蕩電路

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

        3.2.2 復(fù)位電路

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

        3.3 蜂鳴器電路

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

        3.4 LED閃爍電路模塊

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

        3.5 矩陣鍵盤掃描模塊電路

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

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

        3.6 LCD顯示模塊

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

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

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

        4 結(jié)果展示

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

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

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

        參考文獻(xiàn):

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

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

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

        [4] 馬松平. 談?wù)勔魳方虒W(xué)中怎樣記錄音的高低長短[J]. 讀寫算(教育教學(xué)研究), 2011(41).

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

        [6] 劉鳳格等. MCS-51單片機(jī)的時(shí)鐘電路[J]. 菏澤學(xué)院學(xué)報(bào), 2003(2).

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

        猜你喜歡
        音樂盒蜂鳴器單片機(jī)
        電動(dòng)自行車產(chǎn)品車速提示音檢測(cè)現(xiàn)狀和整改技術(shù)研究(2)
        特別的音樂盒
        掌控板制作簡易鋼琴
        基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機(jī)的便捷式LCF測(cè)量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        單片機(jī)驅(qū)動(dòng)蜂鳴器的程序設(shè)計(jì)
        裝滿悔恨的音樂盒
        一個(gè)后悔的音樂盒
        豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
        成人a在线观看| 美女网站免费观看视频| 色爱无码av综合区| 欧美性受xxxx黑人xyx性爽| av无码特黄一级| 国产亚洲av综合人人澡精品| 日本爽快片100色毛片| 精品人妻系列无码人妻免费视频| 日韩在线视精品在亚洲| 人妻丰满精品一区二区| 国产精品私密保养| 国产精品高潮呻吟av久久4虎| 亚洲日韩国产av无码无码精品| 亚洲国产av导航第一福利网| 99re6久精品国产首页| 成人自拍偷拍视频在线观看| 国产精品人人做人人爽| 国产成人www免费人成看片| 欧美日韩色| 日韩精品高清不卡一区二区三区| 丰满人妻猛进入中文字幕| 丰满爆乳在线播放| 國产AV天堂| 中文字幕久久国产精品| 亚洲色大成网站www永久| 最近中文字幕视频高清| 久久精品女人天堂AV一个| 一区二区三区日本伦理| 亚洲码国产精品高潮在线| 麻豆国产巨作AV剧情老师| 人妻有码中文字幕在线| 中文字幕亚洲综合久久菠萝蜜| 韩国三级中文字幕hd久久精品| 情色视频在线观看一区二区三区 | 亚洲国产精品无码久久九九大片健| 成人一区二区三区激情视频| 久久国产色av免费观看| 热99精品| 国产精品成年人毛片毛片| 国产av国片精品有毛| 熟妇人妻AV中文字幕老熟妇|