<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于C8051F單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì)

          基于C8051F單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì)

          作者: 時(shí)間:2011-02-28 來(lái)源:網(wǎng)絡(luò) 收藏
          摘 要: 音樂(lè)噴泉作為一種觀賞性較高的藝術(shù)水景已經(jīng)得到了越來(lái)越廣泛的應(yīng)用。論述了一個(gè)以C8051F為核心的適于室內(nèi)使用的小型移動(dòng)式音樂(lè)噴泉控制系統(tǒng),給出了控制電路,水泵控制電路,彩燈控制電路及部分I/O口初始化程序。噴泉水型隨音樂(lè)的高低旋律發(fā)生變化,再輔以L(fǎng)ED彩燈的亮滅,便于移動(dòng),實(shí)用性強(qiáng),適宜家庭和室內(nèi)觀賞。
            關(guān)鍵詞: C8051F單片機(jī);音樂(lè)噴泉;單片機(jī)控制

            目前在公共場(chǎng)所噴泉一般只是將音樂(lè)和噴泉高低簡(jiǎn)單配合, 無(wú)法真正體現(xiàn)音樂(lè)的旋律、節(jié)奏;或者是采用了高成本復(fù)雜的控制系統(tǒng),搭建復(fù)雜的外圍電路實(shí)現(xiàn)功能;并且多數(shù)只能在現(xiàn)場(chǎng)觀賞,不能進(jìn)入家庭。本文介紹基于C8051F單片機(jī)控制的小型室內(nèi)移動(dòng)式音樂(lè)噴泉。它使用了較少的外圍器件和較為簡(jiǎn)單的電路設(shè)計(jì),成本低、體積小、水型變換多樣,實(shí)用性強(qiáng),適合室內(nèi)觀賞。
          1 系統(tǒng)設(shè)計(jì)
            本系統(tǒng)采集音樂(lè)信號(hào),根據(jù)音樂(lè)信號(hào)的強(qiáng)弱來(lái)控制水泵電機(jī)的轉(zhuǎn)速以及LED彩燈的亮滅。系統(tǒng)的總體結(jié)構(gòu)如圖1所示,由音樂(lè)輸入部分、音響放大部分、單片機(jī)控制部分和輸出控制部分組成。C8051F單片機(jī)作為系統(tǒng)的主芯片,一方面采集音樂(lè)信號(hào),另一方面依據(jù)采集到的音樂(lè)信號(hào)的強(qiáng)弱輸出延時(shí)不等的矩形波來(lái)控制可控硅的導(dǎo)通時(shí)間,進(jìn)而控制水泵電機(jī)的轉(zhuǎn)速,從而達(dá)到控制噴水高度的目的。彩燈的亮滅也由單片機(jī)依據(jù)音樂(lè)采樣值的大小來(lái)控制。

          基于C8051F單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì)

          2 系統(tǒng)硬件設(shè)計(jì)
            硬件系統(tǒng)由單片機(jī)電路、音頻電路、水泵控制電路、彩燈控制電路、電源電路等組成。
          2.1 單片機(jī)電路
            單片機(jī)要采集音樂(lè)信號(hào),并據(jù)此調(diào)節(jié)I/O口的輸出來(lái)控制水泵和彩燈。主芯片選用C8051F系列單片機(jī)中的C8051F310。C8051F系列單片機(jī)是集成的混合信號(hào)片上系統(tǒng)SoC,它具有與MCS-51內(nèi)核及指令集完全兼容的微控制器。除了具有標(biāo)準(zhǔn)8051的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件,包括模擬多路選擇器、可編程增益放大器、ADC、DAC、電壓比較器、電壓基準(zhǔn)、溫度傳感器等等。這樣不僅可以簡(jiǎn)化單片機(jī)的外圍電路,而且處理速度和靈活度都大大增強(qiáng),并且具有片內(nèi)調(diào)試電路,通過(guò)10針的JTAG接口可以進(jìn)行非侵入式、全速的在系統(tǒng)調(diào)試,設(shè)計(jì)調(diào)試周期短。所選的C8051F310內(nèi)部集成了一個(gè)10位ADC,兩個(gè)模擬比較器,4個(gè)通用16位計(jì)數(shù)器/定時(shí)器,1個(gè)可編程精密內(nèi)部振蕩器,32腳LQFP封裝,2.7V~3.6V供電電壓。
            C8051F310的最小系統(tǒng)電路如圖2所示。包括復(fù)位和晶振,JTAG程序下載和調(diào)試端口,AS1117供電芯片,把單片機(jī)的I/O口都用插針轉(zhuǎn)接出來(lái)以便于設(shè)計(jì)和調(diào)試。

          基于C8051F單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì)

          2.2 音頻電路
            音頻電路由音響放大器和音樂(lè)預(yù)處理電路兩部分組成。音響放大電路將音樂(lè)外放,包括兩級(jí)放大和一級(jí)功放。音樂(lè)預(yù)處理電路是將音頻信號(hào)經(jīng)由放大濾波輸入到單片機(jī)供片內(nèi)AD采集。整個(gè)系統(tǒng)采用單電源5V供電,選用可以使用單電源供電的運(yùn)算放大器LM324。功放由4V~12V供電,功率由可達(dá)1.25W的LM386完成,可以推動(dòng)喇叭達(dá)到揚(yáng)聲器的作用。信號(hào)經(jīng)音頻電路初步處理后送入單片機(jī)內(nèi)部AD,由定時(shí)器控制以8k采樣率采集音樂(lè)信號(hào)。
          2.3 水泵控制電路
            本系統(tǒng)采用可控硅調(diào)相的方法控制噴泉水泵的轉(zhuǎn)速。電路如圖3所示,由單片機(jī)的I/O口輸出矩形波,通過(guò)光耦控制可控硅的導(dǎo)通角,進(jìn)而控制水泵電機(jī)的轉(zhuǎn)速,調(diào)整噴泉的輸出高度。選用單相可控硅BT169控制220V的雙向交流電。交流通過(guò)二極管1N4007(耐壓值1000V)組成的整流橋后變?yōu)?00Hz脈動(dòng)的直流,由單片機(jī)P0.4依據(jù)音樂(lè)采樣結(jié)果輸出矩形波,通過(guò)光耦控制可控硅的通斷,以達(dá)到調(diào)相的目的。

          基于C8051F單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì)


            采用這種方法關(guān)鍵是要保證矩形波與100Hz脈動(dòng)直流保持同相,由AD采樣的結(jié)果決定100Hz脈動(dòng)直流的每一個(gè)周期有多長(zhǎng)時(shí)間是導(dǎo)通的。所以將100Hz脈動(dòng)直流分壓后作為單片機(jī)內(nèi)部比較器的一個(gè)輸入端,另一個(gè)輸入端接一個(gè)由5V分來(lái)的固定電壓(本系統(tǒng)使用了0.5V),當(dāng)比較器的輸出結(jié)果發(fā)生變化時(shí),由定時(shí)器定一段時(shí)間(本系統(tǒng)定為100Hz脈動(dòng)直流由0.5V下降到0V的時(shí)間),這樣就找到了每個(gè)周期的起點(diǎn),然后再根據(jù)AD采樣的結(jié)果決定不等的延時(shí)來(lái)輸出矩形波導(dǎo)通可控硅。AD采樣結(jié)果大,每個(gè)周期的延時(shí)短,可控硅導(dǎo)通的時(shí)間長(zhǎng),水泵電機(jī)轉(zhuǎn)速快,反之亦然。
          2.4 彩燈控制電路
            彩燈是為了渲染色彩增強(qiáng)節(jié)奏感而設(shè)計(jì)的。電路如圖4所示,使用高亮LED,有紅綠藍(lán)白黃五種顏色,設(shè)計(jì)成內(nèi)外環(huán)繞的三圈,每圈六個(gè)燈,顏色搭配得當(dāng)。每圈的燈并聯(lián)占用一個(gè)I/O口,用三極管8050放大提供足夠的電流驅(qū)動(dòng),依據(jù)音樂(lè)采樣值大小決定點(diǎn)亮的燈的圈數(shù)。

          基于C8051F單片機(jī)的移動(dòng)式音樂(lè)噴泉設(shè)計(jì)


          3 系統(tǒng)軟件設(shè)計(jì)
            在硬件上本系統(tǒng)使用了單片機(jī)內(nèi)部的AD、比較器、定時(shí)器、中斷等資源,故軟件編程就包含這幾個(gè)方面的設(shè)置和使用。定時(shí)器T0控制AD的采樣速率。定時(shí)器T1在比較器的下降沿中斷中被啟動(dòng),延時(shí)一段時(shí)間,找到100Hz脈動(dòng)直流每個(gè)周期的起點(diǎn)。定時(shí)器T2在定時(shí)器T1的中斷中被啟動(dòng),依據(jù)不同的AD采樣值延時(shí)不等的時(shí)間,在T2的中斷程序中輸出矩形波啟動(dòng)可控硅。單片機(jī)的I/O口采用交叉開(kāi)關(guān)配置,用端口輸入方式寄存器(PnMDIN)選擇所有端口引腳的輸入方式(模擬或數(shù)字,復(fù)位后為數(shù)字輸入方式),用端口輸出方式寄存器(PnMDOUT)選擇所有端口引腳的輸出方式(漏極開(kāi)路或推挽,復(fù)位后為漏極開(kāi)路輸出方式),被配置為模擬輸入的端口要用端口跳過(guò)寄存器(PnSKIP)選擇為被交叉開(kāi)關(guān)跳過(guò)。I/O口初始化程序如下:

            XBR1=0x40;             //交叉開(kāi)關(guān)使能
            P0MDOUT=0x10 | P0MDOUT;      //P0.4為推挽輸出,
                              //作為矩形波輸出口
            P1MDIN=0xfb P1MDIN;//P1.2為模擬輸入,
                              //作為音樂(lè)輸入口
            P1SKIP=0x04 | P1SKIP;       // P1.2被交叉開(kāi)關(guān)跳過(guò)
            AMX0P=0x02;            //設(shè)置P1.2為AD輸入通道
            AMX0N=0xff;
            P1MDIN=0xde P1MDIN;       //P1.0,P1.5為比較器模擬輸入
            P1SKIP=0x21 | P1SKIP;       //P1.0,P1.5被交叉開(kāi)關(guān)跳過(guò)
            CPT0MX=0x10;            //選擇P1.0為比較器正輸入,
                              //P1.5為比較器負(fù)輸入
          4 設(shè)計(jì)結(jié)果
            設(shè)計(jì)的音樂(lè)噴泉LED彩燈經(jīng)過(guò)熱縮管的絕緣處理后用導(dǎo)線(xiàn)纏繞在塑料軟管上,然后再固定在盆內(nèi)。圍繞塑料軟管開(kāi)幾個(gè)小孔,再安裝塑料插頭作為噴水裝置??梢杂秒娔X或者mp3作為音源,噴泉高低和彩燈隨著音樂(lè)的啟停節(jié)奏發(fā)生變化。系統(tǒng)的主要控制電路被安裝在盒子里放置于旁邊,注意絕緣,安全用電。
            設(shè)計(jì)的噴泉控制系統(tǒng)基于C8051F單片機(jī),采用了音頻放大,可控硅控制等簡(jiǎn)潔的外圍電路,經(jīng)過(guò)焊接、組裝、調(diào)試后,可以很好實(shí)現(xiàn)控制功能,具有很強(qiáng)的實(shí)用性,尤其是具有體積小、易移動(dòng)、適合家庭和室內(nèi)使用的特點(diǎn)。本方案也可以在功能上加以擴(kuò)展,如加上對(duì)樂(lè)曲的頻域分析,結(jié)合頻域特點(diǎn)控制水泵;還可以制作霧化器來(lái)渲染效果等



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();