国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32單片機的數(shù)字音樂盒設計

2019-01-02 03:50:36慶,
成都大學學報(自然科學版) 2018年4期
關鍵詞:音樂盒重裝彩燈

胡 慶, 余 晨

(成都大學 信息科學與工程學院, 四川 成都 610106)

0 引 言

隨著電子行業(yè)的興起,智能化已經(jīng)逐漸成為一種潮流和趨勢[1],人們不再滿足于機械式音樂盒的單一功能,功能多樣化的數(shù)字音樂盒逐漸成為主流產(chǎn)品.與此同時,單片機的功能不斷完善,特別是STM32系列微處理器,其基于ARM Cortex-M內核的32-bit閃存微控制器,主頻高達72 MHz,具有高集成度、實時性、數(shù)字信號處理、低功耗、低電壓操作等特點,應用很廣泛[2].本研究以STM32F103C8T6單片機為核心,外部加上時鐘與復位電路、按鍵電路、喇叭電路、LED電路及音量控制電路,以此來實現(xiàn)音樂盒的硬件電路,通過C語言來控制單片機內部的定時器使其產(chǎn)生一定頻率的PWM從而驅動喇叭發(fā)聲,通過AD采集來改變占空比,從而控制音量的增減,通過控制按鍵來實現(xiàn)上一首、下一首及暫停播放.本研究設計的數(shù)字音樂盒外觀精致小巧,制作工藝簡單,具有較強實用性.

1 系統(tǒng)的結構與功能

本設計的系統(tǒng)結構框圖如圖1所示.系統(tǒng)以STM32-F103C8T6單片機為核心, 采用USB供電. 按鍵電路使用定時器2產(chǎn)生中斷,從而達到選曲的目的以及暫停播放功能.定時器3輸出PWM驅動喇叭發(fā)聲以及LED的隨機閃動.另外,復位電路中,當程序運行出錯時,復位鍵可使系統(tǒng)重新工作.

圖1系統(tǒng)結構框圖

2 系統(tǒng)硬件設計

2.1 控制處理器

STM32F1微控制器系列,具有較高的性能、一流的外圍設備以及較低消耗的功能與電壓[3].STM32F103系列微處理器時鐘頻率為72 MHz,電壓范圍為2.0~3.6 V.本設計采用STM32F103C8T6[4]作為系統(tǒng)的控制處理器.

2.2 穩(wěn)壓芯片

AMS1117系列穩(wěn)壓器有可調版與多種固定電壓版,可提供1 A輸出電流且工作壓差可低至1 V.在最大輸出電流時,AMS1117器件的最小壓差保證不超過1.3 V,并隨負載電流的減小而逐漸降低.常用電路圖如2所示.

圖2 AMS1117常用電路

本設計使用AMS1117穩(wěn)壓芯片給喇叭單獨供電,考慮到AMS1117在工作中易發(fā)熱,使用了一個穩(wěn)壓二極管降壓,再通過AMS1117穩(wěn)壓芯片輸出3.3 V給喇叭供電.因為AMS1117的最小工作壓差為1 V,本設計只使用一個穩(wěn)壓二極管,就可以保證穩(wěn)壓芯片的正常工作.

2.3 電源電路

電源電路如圖3所示.

圖3電源電路

單片機使用5 V電源,通過Mirco USB接口供電,再通過系統(tǒng)板上的LDO低壓差線性穩(wěn)壓器RT9193將5 V轉為3.3 V輸出,如圖4所示.為了達到對干擾信號的抑制,系統(tǒng)再通過電容濾波(見圖5).由于喇叭消耗功率較大,所以單獨使用降壓芯片AMS1117-3.3給喇叭供電.

圖4 5 V轉3.3 V電路

圖5濾波電路

2.4 復位電路

STM32F103的NRST引腳輸入驅動使用CMOS工藝,連接一個不能斷開的上拉電阻R,電阻值如表1所示[4].上拉電阻由電阻串聯(lián)一個可開關的PMOS實現(xiàn),這個PMOS開關的電阻很小(約占10%).

表1 STM32F103的NRST引腳上拉電阻值

復位電路如圖6所示.復位源將最終作用于RESET引腳,并在復位過程中保持低電平,復位入口矢量地址設置為0x0000~0004.當復位鍵按下時,單片機引腳接收到一個低電平的信號,從而實現(xiàn)外部復位.

2.5 按鍵電路

本設計使用普通的按鍵接法,通過單片機PA0、PC14、PC15口控制,實現(xiàn)歌曲播放順序的調換和暫停播放功能.按鍵電路圖如圖7所示.

圖6復位電路

圖7按鍵電路

2.6 LED電路

LED電路包括:一個LED作為系統(tǒng)指示燈,當按鍵按下時為常亮,而當系統(tǒng)正常工作時,燈按1.3 s的頻率閃爍;一個LED作為電源指示燈,上電常亮,如圖8所示;一個LED作為音階指示燈,當變換一次音階時變換一次,而當播放暫停時,為常亮;一個LED作為頻率指示燈,跟隨著音樂的變換而隨機閃爍,如圖9所示.

圖8系統(tǒng)指示和電源指示LED電路

圖9 音階和頻率指示LED電路

2.7 喇叭電路

喇叭的功率為3 W,電阻為4 Ω,通過AMS1117芯片所輸出的3.3 V給喇叭供電.STM32的PA6引腳接到三極管的基極,通過引腳輸出不同的PWM信號,從而使喇叭發(fā)出不同的聲音.喇叭電路如圖10所示.

圖10喇叭電路

2.8 音量控制電路

通過改變滑動變阻器電阻改變流過的電壓和電流,音量控制電路如圖11所示.引腳PA2采集信號通過改變占空比來改變音量.

圖11音量控制電路

3 系統(tǒng)軟件設計

3.1 系統(tǒng)軟件設計流程

系統(tǒng)軟件的主程序流程圖如圖12所示.首先對系統(tǒng)時鐘、延時函數(shù)、ADC采樣、按鍵、彩燈、定時器TIM2與TIM3的PWM進行初始化,清除一些標志位,設置定時器的工作方式、初值及中斷優(yōu)先級等,使程序能夠正常運行[5].然后,檢測歌曲是否結束,未結束則讀取音階即頻率,再由定時器產(chǎn)生不同的PWM信號,從而驅動喇叭發(fā)聲直至歌曲結束.

3.2 定時器的設置

音樂盒的設計主要是利用STM32F103C8T6內部的定時器[6].該定時器有4路PWM輸出,將其中1路輸出給喇叭使其發(fā)聲,而將另外3路輸出給彩燈使其隨機閃爍[7].本設計通過設定不同的分頻系數(shù)以及重裝值讓PWM產(chǎn)生不同的頻率.節(jié)拍是利用延時函數(shù)來設置的,通過讓每個音階延時一段時間(即節(jié)拍)來演奏一首完整的樂曲.

圖12主程序流程圖

本設計所用的定時器有:測量輸入信號的脈沖長度或產(chǎn)生需要的輸出波形的通用定時器TIM2和定時器TIM3,用來確保延時函數(shù)精確性的24-bit遞減計數(shù)器SysTick.

定時器相關參數(shù)設置如下:定時器TIM2的初始化為10 ms中斷一次,其中,arr為自動重裝值,psc為時鐘預分頻數(shù).

定時器溢出時間計算方法為,

Tout=((arr+1)·(psc+1))/Ft

(1)

式中,F(xiàn)t為定時器工作頻率,因為系統(tǒng)時鐘為72 MHz,所以本設計定時10 ms溢出一次時,自動重裝值arr設置為99,時鐘預分頻數(shù)psc可以設置為7199,則溢出時間Tout為,

Tout=((99+1)×(7199+1))/72=10 ms

(2)

代碼如下:

void TIM2-Int-Init(u16 arr,u16 psc)//定時器TIM2初始化

{

RCC->APB1ENR|=1<<0;//TIM2時鐘使能

TIM2->ARR=arr;//arr=99

TIM2->PSC=ps;//psc=7199

TIM2->DIER|=1<<0;//允許更新中斷

TIM2->CR1|=0x01;//使能定時器TIM2

MY-NVIC-Init(1,3,TIM2-IRQn,2);//搶占1,子優(yōu)先級3,組2

}3.3 PWM輸出設計

本設計利用定時器TIM3輸出PWM來控制喇叭發(fā)聲,再通過調節(jié)占空比控制音量.TIM3有4路PWM輸出,其中1路接上喇叭,另外3路分別接上3個彩燈,使得彩燈跟隨頻率的不同而隨機閃爍,為音樂盒增添一份美感.代碼如下:

void F-set(u8 psc)

{

TIM3->ARR = 999;//重裝值,溢出值,計數(shù)周期

TIM3->PSC=yinjie[psc];//設置分頻,設定發(fā)聲頻率

TIM3->CCR1 = vlo;//賦值為音量

TIM3->CCR2 = psc%5*(psc%7*140)+400;

TIM3->CCR3 = psc%3*(psc%7*140)+400;

TIM3->CCR4 = psc%2*(psc%7*140)+400;//彩燈,占空比不同,亮度不同,對5、3、2取余,盡量隨機閃動

}

3.4 按鍵處理程序設計

本設計有3個功能按鍵,分別為上一曲、下一曲及暫停功能,首先要對按鍵初始化,使能按鍵對應的硬件端口,再對鍵值進行判斷,最后執(zhí)行相應的操作.具體代碼如下:

if(KEY0==0||KEY1==0||KEY2==0)//按鍵按下

{

LED1 = 0;//按下紅燈常亮

if(KEY-sta==0)//第1次掃描

{

KEY-sta|=0x20;//按下標記

KEY-sta|= (KEY0?0:0x01);//存按鍵值

KEY-sta|= (KEY1?0:0x02);

KEY-sta|= (KEY2?0:0x04);

}

else if(KEY-sta&0x20) KEY-sta |= 0x80;//連續(xù)第2次掃描,認為按鍵按下,標記鍵值處理

}

else//按鍵釋放,標記鍵值處理

{

if(KEY-sta&0x80)//確定按鍵按下標記,進行鍵值處理

{

if(KEY-sta&0x01) Next=2;//按鍵0,上一曲

else if(KEY-sta&0x02) Suspend=(Suspend==0)?1:0;//按鍵1,暫停

else if(KEY-sta&0x04) Next = 1;//按鍵2,下一曲

}

KEY-sta = 0;//釋放按鍵,狀態(tài)清0

}

4 仿真及功能測試

測試時,本研究在Proteus軟件下新建仿真項目,搭建好原理電路圖如圖13所示,然后結合Keil對電路進行仿真調試.實物圖如圖14所示.音樂盒通電,系統(tǒng)正常工作,電源指示黃色燈常亮,系統(tǒng)指示燈以1.3 s的頻率閃爍,藍色的頻率燈常亮,4引腳的彩燈隨頻率閃爍,喇叭發(fā)出音樂.本設計通過按鍵設置上一首、下一首及暫停播放,實現(xiàn)了數(shù)字音樂盒功能.

在測試時,本設計在嘗試使喇叭發(fā)聲的過程中,最初將重裝值設置為1999,即周期為2000,此時定時器重裝值大了,分頻數(shù)小,當頻率高時,頻率不準,誤差大,高音聽起來就像雜音.對此, 本設計嘗試減小重裝值,將重裝值設置為999,即周期為1000,此時分頻數(shù)提高,精度也相對提高,頻率誤差減少,音質更加準確.此外,本設計在調節(jié)音量大小時,通過不斷嘗試,最后也找到了使音量最大的占空比.

圖13 Proteus軟件仿真

圖14硬件測試

5 結 語

本設計以STM32F103系列芯片作為控制芯片,利用定時器的4路PWM輸出,1路控制喇叭發(fā)聲,其余3路分別接上3個彩燈,使得彩燈跟隨頻率的不同而隨機閃爍,為音樂盒增添了一份美感,同時,還設置了上一首、下一首及暫停播放,實現(xiàn)人性化控制.本設計的數(shù)字音樂盒工藝簡單,有較強的實用價值,稍加外觀設計便可用于玩具制造行業(yè).

猜你喜歡
音樂盒重裝彩燈
彩燈
重裝出擊:現(xiàn)代坦克戰(zhàn)術(4)
重裝出擊:現(xiàn)代坦克戰(zhàn)術(2)
特別的音樂盒
重裝出擊:現(xiàn)代坦克戰(zhàn)術(9)
元宵佳節(jié)點彩燈
學生天地(2020年4期)2020-08-25 09:07:56
裝滿悔恨的音樂盒
一個后悔的音樂盒
“光伏領跑者”重裝上陣?
能源(2017年5期)2017-07-06 09:25:55
音樂盒里的秘密
饶阳县| 星子县| 廉江市| 桐梓县| 兰考县| 五原县| 施秉县| 勃利县| 高邑县| 利辛县| 彰化市| 长泰县| 湄潭县| 乌兰县| 东乌珠穆沁旗| 洛浦县| 武义县| 安庆市| 北安市| 新宾| 岢岚县| 沽源县| 隆化县| 屯昌县| 海门市| 富阳市| 建昌县| 韶关市| 和静县| 宁化县| 白银市| 巫山县| 佛坪县| 涿州市| 上杭县| 庆云县| 宜良县| 台中县| 玛沁县| 铁力市| 武山县|