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

        ?

        基于STM 32的多功能MP3播放器設(shè)計(jì)

        2022-05-12 06:13:28杜建銘師文慶
        機(jī)電工程技術(shù) 2022年3期
        關(guān)鍵詞:界面功能設(shè)計(jì)

        杜建銘,師文慶

        (廣東海洋大學(xué)電子與信息工程學(xué)院,廣東湛江 524088)

        0 引言

        1986年,卡爾因茨·布蘭登堡提出:通過編碼重組技術(shù)大幅度壓縮音頻文件,在播放時(shí)使用專門的解碼技術(shù)進(jìn)行還原,以此達(dá)到減小音樂文件大小的同時(shí)保持音質(zhì)的目的。自此之后,播放器不斷地改進(jìn)、完善。1990年,布蘭登堡得到一家音頻研究機(jī)構(gòu)的幫助,為他提供了一個(gè)研究小組。在同年,布蘭登堡在實(shí)際的測(cè)試中把CD音質(zhì)的音樂文件壓縮到原來的1∕12,并且順利地解碼播放,MP3技術(shù)就是由此而來。

        MP3音樂播放器雖然已經(jīng)誕生30多年,但仍然能在消費(fèi)類電子產(chǎn)品有一席之位,原因在于其設(shè)計(jì)理念一直在變化,從而能夠持續(xù)地?zé)òl(fā)生機(jī)與活力。目前國(guó)內(nèi)市場(chǎng)上的MP3播放器,能夠播放若干種格式的音樂;所有的信息都直觀地顯示在一塊鏡面顯示屏上,靈敏觸摸屏取代了按鍵控制,大大簡(jiǎn)便了用戶的操作;不僅如此,由于消費(fèi)者愛好需要也十分廣泛,廠家往往費(fèi)盡心思地為產(chǎn)品添加更多實(shí)用功能來增加產(chǎn)品的賣點(diǎn),例如計(jì)步、藍(lán)牙、收音機(jī)、電子書等功能。由此可見,設(shè)計(jì)一款觸屏交互,且多功能的MP3音樂播放器不僅有實(shí)際的應(yīng)用價(jià)值,并且是非常符合市場(chǎng)要求的。

        基于以上描述,本設(shè)計(jì)選用STM32F103ZET6微處理器作為主控[1-2],音樂解碼部分使用VS1053B,提供的硬件解碼功能,LCD顯示與電阻觸屏作為本設(shè)計(jì)的主要交互方式,要實(shí)現(xiàn)的主要功能有歌曲的切換、暫停∕播放、音量條的顯示及控制、播放進(jìn)度的顯示及控制,在此基礎(chǔ)上添加多種實(shí)用功能,設(shè)計(jì)一款多功能MP3播放器,讓用戶在享受音樂之余還能體驗(yàn)額外功能帶來的便利性。

        1 系統(tǒng)總體方案概述

        1.1 音頻的解碼方式

        一般的音樂文件通常是經(jīng)過編碼壓縮的,所以播放的時(shí)候需進(jìn)行解碼才能輸出動(dòng)聽的音樂。常規(guī)的解碼方式有軟解碼和硬解碼。

        (1)軟解碼

        軟解碼就是把一套解碼算法交給CPU去運(yùn)算從而得到音頻數(shù)據(jù),對(duì)CPU的運(yùn)算速度有較高的要求[3]。

        (2)硬解碼

        硬解碼這種方式將解碼工作交給專門的解碼芯片,目前市面上的MP3播放器采用的大多數(shù)是硬解碼[4]。

        在本設(shè)計(jì)中選擇了硬解碼,STM32僅需完成文件讀寫并分批量地輸送數(shù)據(jù)到解碼芯片上,運(yùn)算量較小,不需移植第三方庫(kù)。

        1.2 系統(tǒng)總體框架

        系統(tǒng)由電阻觸摸屏、音頻解碼模塊、溫度傳感器、藍(lán)牙模塊、外部Flash存儲(chǔ)芯片、SD卡等模塊組成。利用溫度傳感器進(jìn)行環(huán)境溫度的檢測(cè);外部Flash存儲(chǔ)芯片用于保存字庫(kù)信息;藍(lán)牙模塊可供手機(jī)連接,通過手機(jī)藍(lán)牙發(fā)送指令來實(shí)現(xiàn)遠(yuǎn)程控制MP3播放器。系統(tǒng)硬件結(jié)構(gòu)框如圖1所示。

        圖1 系統(tǒng)總體框圖

        2 硬件設(shè)計(jì)

        2.1 主控芯片

        STM32F103ZET6工作頻率為72 MHz,是基于意法半導(dǎo)體公司專為低成本、低功耗的嵌入式應(yīng)用所設(shè)計(jì)的ARM架構(gòu)32位Cortex-M3內(nèi)核,內(nèi)置512 K字節(jié)的閃存,64 k字節(jié)的SRAM作為運(yùn)行內(nèi)存,還具有豐富的通信接口,可以滿足本設(shè)計(jì)的需求[5]。

        2.2 音頻解碼模塊

        本設(shè)計(jì)采用VS1053B作為硬件解碼方案,是通過SPI接口來接收音頻數(shù)據(jù)的,模塊上的RST引腳提供了硬件復(fù)位功能,在歌曲切換前進(jìn)行硬復(fù)位可減少切換歌曲時(shí)的雜音。VS1053B解碼完成的數(shù)據(jù)由其內(nèi)置的DAC將數(shù)字音頻信號(hào)轉(zhuǎn)換成模擬音頻信號(hào),而后輸出到VS1053B的LEFT與RIGHT引腳上,可以直接驅(qū)動(dòng)耳機(jī)或是外接功放驅(qū)動(dòng)揚(yáng)聲器[6]。

        2.3 溫度傳感器

        DS18B20是常用的數(shù)字溫度傳感器,能夠?qū)h(huán)境溫度轉(zhuǎn)換為數(shù)字電信號(hào),是一種單總線接口的器件,只需一根數(shù)據(jù)線與主控的IO端連接口就可以實(shí)現(xiàn)通信,直流工作電壓范圍3.0~5.5 V,當(dāng)測(cè)溫范圍在-10℃~+85℃,測(cè)溫誤差僅在±0.5℃,可以給本系統(tǒng)提供較精確的環(huán)境測(cè)溫功能[7]。

        2.4 藍(lán)牙模塊

        CC2541串口藍(lán)牙模塊,可直接與STM32的USART接口相連。令藍(lán)牙模塊的STATE引腳與STM32上的引腳相連,把引腳配置成下拉輸入,當(dāng)藍(lán)牙連接建立之后,引腳上就會(huì)檢測(cè)到高電平,反之則為低電平,根據(jù)引腳上電平的變化,可把藍(lán)牙的連接狀態(tài)直觀的在顯示屏上展現(xiàn)出來,此模塊可實(shí)現(xiàn)手機(jī)控制MP3播放器的功能。

        2.5 外部Flash存儲(chǔ)芯片

        LCD顯示屏是通過字模來顯示中文字體的,需要添加中文字庫(kù)來實(shí)現(xiàn)漢字及中文標(biāo)點(diǎn)符號(hào)的顯示。設(shè)計(jì)中用到的是GBK漢字庫(kù),其中每個(gè)漢字都采用雙字節(jié)(2 Bytes)的存儲(chǔ)方式,而GBK漢字庫(kù)中共收錄了21 003個(gè)漢字,如果將漢字庫(kù)存儲(chǔ)到內(nèi)部Flash(512 k字節(jié))顯然是不可行的,需要8 MB的外部Flash來存儲(chǔ)字庫(kù)[8]。

        2.6 MicroSD卡

        SD卡是一種大容量的數(shù)據(jù)存儲(chǔ)介質(zhì),不僅存儲(chǔ)容量大,它的讀寫速率高、體積小,很適合用于本系統(tǒng)中存儲(chǔ)音頻及圖形化界面的圖標(biāo)。

        SD卡支持兩種總線操作模式:分別是SPI模式與SDIO模式。SPI模式需要4根數(shù)據(jù)線,一個(gè)SPI接口可以掛載多個(gè)器件,但不足之處是犧牲了速度。出于避免SD卡的讀寫速度成為系統(tǒng)運(yùn)行速度的瓶頸,保證音樂播放的流暢度的考慮,所以設(shè)計(jì)中使用了讀寫速度較快的SDIO模式。

        2.7 觸摸顯示屏

        本設(shè)計(jì)中使用了一塊分辨率為320×240的3.2寸液晶顯示觸摸屏,作為播放器的顯示及控制部分。觸摸顯示屏可分為顯示屏與觸摸屏兩部分介紹:

        (1)顯示屏其控制芯片是ILI9328,其BL_EN引腳是背光引腳,若該引腳上是高電平,則點(diǎn)亮顯示屏,反之顯示屏熄滅。將該引腳連接到STM32上具有PWM輸出功能的GPIO口,將產(chǎn)生一定頻率的脈沖輸出到該引腳,再通過控制脈沖的占空比,便可控制屏幕的亮度,這種控制屏幕亮度的方法被稱為PWM調(diào)光。

        (2)觸摸部分是電阻式觸摸屏,觸摸控制芯片為XPT2046,其內(nèi)部集成了逐步逼近型AD轉(zhuǎn)換器,當(dāng)觸摸屏被按下,觸點(diǎn)的X、Y方向上會(huì)產(chǎn)生電壓變化,XPT2046對(duì)電壓進(jìn)行兩次AD轉(zhuǎn)換之后,再進(jìn)一步處理便可以得到觸點(diǎn)的X、Y坐標(biāo),根據(jù)得出的坐標(biāo)值可實(shí)現(xiàn)觸摸控制[9]。

        3 軟件設(shè)計(jì)

        3.1 軟件設(shè)計(jì)思路

        設(shè)計(jì)中包含了多個(gè)按鈕以及多個(gè)界面,在圖形化界面的設(shè)計(jì)時(shí)盡量考慮了人機(jī)交互的體驗(yàn)感,盡量使界面美觀、簡(jiǎn)潔,讓操作變得簡(jiǎn)單,容易上手。

        系統(tǒng)在運(yùn)行時(shí)有兩個(gè)主要任務(wù):一是檢測(cè)觸摸的坐標(biāo),根據(jù)坐標(biāo)作出響應(yīng);二是讀取SD中的音頻文件數(shù)據(jù),并發(fā)送到VS1053B進(jìn)行硬件解碼并輸出音樂。其余功能只能在兩個(gè)主要任務(wù)運(yùn)行的空余時(shí)間去處理,若其余功能運(yùn)行過于耗時(shí),則會(huì)影響系統(tǒng)的流暢性,會(huì)造成音樂卡頓,觸摸不及時(shí),所以在編寫代碼時(shí),盡可能避免使用延時(shí)。

        3.2 FatFs文件系統(tǒng)的移植

        首先下載FatFs的源碼,其源代碼目錄下有ffconf.h、ff.h、ff.c、diskio.h、diskio.c、interger.h,移植過程可分為以下兩步。

        (1)FatFs文件系統(tǒng)的關(guān)鍵配置文件是ffconf.h,在使用FatFs提供的接口之前,可根據(jù)需求對(duì)該文件其中的宏定義進(jìn)行修改。其部分宏定義的說明如表1所示。

        表1 ffconf.h中的重要宏定義及其說明

        (2)重新編寫diskio.c中的6個(gè)底層驅(qū)動(dòng)函數(shù):初始化磁盤disk_initialize、讀取扇區(qū)disk_read、寫入扇區(qū)disk_write、磁盤控制disk_ioctl、獲取磁盤狀態(tài)disk_status、獲取當(dāng)前時(shí)間get_fattime[10]。

        3.3 顯示及觸摸功能

        本設(shè)計(jì)的顯示屏的控制芯片是ILI9328,在顯示屏的底層驅(qū)動(dòng)中,主要用到3個(gè)指令來實(shí)現(xiàn)在LCD屏幕上繪制圖形的,指令及描述如表2示。表中的功能表述中的行列地址實(shí)際上對(duì)應(yīng)的是屏幕的像素點(diǎn)的x與y坐標(biāo)。其控制的流程如圖2所示。

        表2 ILI9328控制指令及說明

        圖2 顯示屏控制流程

        觸摸屏的控制有兩個(gè)重要指令說明如表3所示。當(dāng)觸摸屏被按下時(shí),T_INT引腳輸出低電平,此時(shí)向觸摸屏發(fā)送指令碼,等待XPT2046芯片內(nèi)部進(jìn)行AD轉(zhuǎn)換后,可以從T_MISO引腳上讀取16位的坐標(biāo)數(shù)據(jù),一個(gè)完整的坐標(biāo)需要發(fā)送兩次指令碼,分別獲得X與Y軸的坐標(biāo)值。

        表3 觸摸屏控制指令

        3.4 音樂播放功能

        音頻數(shù)據(jù)來源于使用FatFs文件系統(tǒng)中接口函數(shù)f_read讀出的數(shù)據(jù),每次主控芯片從SD卡中讀取4 096字節(jié)的音頻數(shù)據(jù)緩存到主控上的內(nèi)存中,每當(dāng)DREQ為高電平就往VS1053中發(fā)送32字節(jié)的數(shù)據(jù),直到讀取到音頻文件的末尾[11]。其主要工作流程如圖3所示。

        圖3 播放音頻流程

        3.5 屏幕調(diào)光功能

        在本設(shè)計(jì)使用PWM調(diào)光對(duì)屏幕亮度進(jìn)行控制。PWM有3個(gè)重要的參數(shù)分別是高度、寬度及周期,其關(guān)系如圖4所示。

        圖4 PWM的3個(gè)參數(shù)

        寬度占周期的百分比稱為占空比。通過控制占空比來控制屏幕的亮度,屏幕亮度大小與占空比正相關(guān)[12]。PWM的脈沖是由定時(shí)器產(chǎn)生的,這里列出脈沖周期及占空比與定時(shí)器參數(shù)的關(guān)系如下。

        (1)周期=定時(shí)器重載值∕定時(shí)器時(shí)鐘頻率。

        (2)占空比=比較值∕定時(shí)器重載值。

        定時(shí)器重載值、定時(shí)器時(shí)鐘頻率這兩個(gè)參數(shù)在定時(shí)器初始化的時(shí)候就設(shè)置好固定值,只需要改變比較值,就可以改變占空比,從而實(shí)現(xiàn)屏幕調(diào)光功能。

        3.6 藍(lán)牙控制功能

        串口藍(lán)牙模塊是通過串口與主控通信的,為STM32編寫串口中斷程序,就可以從藍(lán)牙模塊獲取數(shù)據(jù)。設(shè)定一套字符串指令,通過手機(jī)App發(fā)送到藍(lán)牙模塊,STM32接收到之后進(jìn)行字符串比對(duì),然后作出指令相對(duì)應(yīng)的動(dòng)作,實(shí)現(xiàn)藍(lán)牙控制功能。

        3.7 定時(shí)關(guān)閉功能

        該功能的實(shí)現(xiàn)用到了硬件定時(shí)器以及定時(shí)中斷,設(shè)定一個(gè)計(jì)時(shí)值,每次中斷觸發(fā)計(jì)時(shí)值減1,當(dāng)計(jì)時(shí)值為0時(shí)便使音樂停止播放。其工作流程如圖5所示。

        圖5 定時(shí)關(guān)閉播放功能流程

        3.8 溫度檢測(cè)功能

        DS18B20單次溫度采集的流程如圖6所示。DS18B20完成一次溫度轉(zhuǎn)換至多需要750 ms,若在啟動(dòng)溫度轉(zhuǎn)換的750 ms內(nèi)再次啟動(dòng)轉(zhuǎn)換,很有可能讀取不到正確的結(jié)果。在本設(shè)計(jì)中,利用定時(shí)器每隔3 s進(jìn)行一次溫度采集,既避免了采集間隔過低,也能保證溫度檢測(cè)的實(shí)時(shí)性。

        圖6 DS18B20溫度轉(zhuǎn)換流程

        4 結(jié)果

        系統(tǒng)上電后進(jìn)入主界面,如圖7所示,分為3個(gè)部分。

        圖7 主功能界面

        (1)信息顯示欄。位于主界面的頂部,從左到右分別顯示了當(dāng)前的時(shí)間、日期以及環(huán)境的溫度值。點(diǎn)擊時(shí)間或者日期的字體會(huì)切換至設(shè)置界面。亮度調(diào)節(jié)如圖8所示。

        圖8 屏幕亮度調(diào)節(jié)功能測(cè)試

        (2)音樂列表。界面中間部分把SD卡中歌曲的名字以列表的形式顯示出來,一頁(yè)顯示8首歌曲,支持翻頁(yè)瀏覽功能。可直接點(diǎn)擊歌曲名切換歌曲。

        (3)播放控制欄。位于主界面的底部,該部分顯示了當(dāng)前歌曲的播放音量、播放進(jìn)度,點(diǎn)擊音量條或者進(jìn)度條可調(diào)整歌曲的音量以及播放進(jìn)度,還包含了5個(gè)控制按鈕。

        時(shí)間設(shè)置界面如圖9所示,主要功能是設(shè)置時(shí)分秒,通過點(diǎn)擊主界面頂部顯示的時(shí)間進(jìn)入,通過界面上的“+”和“-”便可以調(diào)整時(shí)間,按下“確認(rèn)”按鈕使設(shè)置生效。

        圖9 時(shí)間設(shè)置功能測(cè)試

        功能與時(shí)間設(shè)置界面相似,可設(shè)置年、月、日,如圖10所示。定時(shí)播放關(guān)閉功能界面如圖11所示。

        圖10 日期設(shè)置界面測(cè)試

        圖11 播放定時(shí)關(guān)閉功能測(cè)試

        藍(lán)牙連接建立成功之后,出現(xiàn)如圖12所示右上角的藍(lán)牙圖標(biāo)便可以通過手機(jī)App控制。

        圖12 藍(lán)牙連接測(cè)試

        5 結(jié)束語(yǔ)

        本設(shè)計(jì)采用SMT32F103ZET6作為主控芯,在此硬件平臺(tái)KDE基礎(chǔ)上,結(jié)合了音頻編解碼模塊、溫度傳感器、藍(lán)牙模塊以及SD卡,以顯示觸摸屏作為人機(jī)交互基礎(chǔ),進(jìn)行了圖形化界面及應(yīng)用功能的開發(fā);移植了FatFs文件系統(tǒng)用以讀寫SD卡,成功設(shè)計(jì)出了MP3播放器。此播放器具有溫度檢測(cè)、屏幕調(diào)光、藍(lán)牙控制、電子時(shí)鐘、定時(shí)播放等功能。經(jīng)實(shí)驗(yàn)測(cè)試,該播放器不僅觸摸響應(yīng)迅速,能流暢地播放音樂,并能長(zhǎng)時(shí)間穩(wěn)定運(yùn)行,具有一定的應(yīng)用價(jià)值。

        猜你喜歡
        界面功能設(shè)計(jì)
        也談詩(shī)的“功能”
        國(guó)企黨委前置研究的“四個(gè)界面”
        瞞天過?!律O(shè)計(jì)萌到家
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        无码人妻精品丰满熟妇区| а√中文在线资源库| 成 人 免 费 黄 色| 特黄特色的大片观看免费视频| 国产suv精品一区二人妻| 人妻无码一区二区三区四区| 99精品成人片免费毛片无码| 香色肉欲色综合| 亚洲黄色在线看| 中文字幕日本韩国精品免费观看| 一本色道加勒比精品一区二区| 男女18视频免费网站| 国产精品av在线| 日韩在线一区二区三区免费视频| 久久成年片色大黄全免费网站| 免费va国产高清不卡大片| 亚洲中文字幕第一第二页| 成人免费av色资源日日| 国产高清av在线播放| 俄罗斯老熟妇色xxxx| 人妻无码一区二区| 在线看不卡的国产视频| 国产精品人妻熟女男人的天堂| 国产精品久免费的黄网站| 香蕉久久福利院| 日本欧美在线播放| 欧洲一级无码AV毛片免费| 日韩亚洲国产中文字幕| 产美女被爽到高潮免费a| 蜜桃视频无码区在线观看| 亚洲性啪啪无码AV天堂| 视频一区中文字幕亚洲| 久久国产精品一区av瑜伽| 久久精品夜色国产亚洲av| 亚洲成色在线综合网站| 久久99久久99精品免观看不卡 | 国产91传媒一区二区三区| 在线观看成人无码中文av天堂| 国产熟女高潮视频| 在线av野外国语对白| 国产成人av一区二区三|