標(biāo)題: STC8A8K64S4A12單片機(jī)播放badapple(帶聲音) [打印本頁(yè)]

作者: 沒(méi)有你    時(shí)間: 2020-2-19 20:31
標(biāo)題: STC8A8K64S4A12單片機(jī)播放badapple(帶聲音)
    “有屏幕的地方,就有壞蘋(píng)果”,足以說(shuō)明壞蘋(píng)果的流行。壞蘋(píng)果搭配的視頻是黑白風(fēng)格的,特別適合單色屏來(lái)顯示。單片機(jī)有不少好玩的東東,壞蘋(píng)果就是其中一個(gè)。下面我簡(jiǎn)單介紹一下自己用STC8A8K64S4A12單片機(jī)演示壞蘋(píng)果的過(guò)程。
    這次用到的硬件有:STC8A8K64S4A12單片機(jī)、0.96寸 OLED、SD卡槽和VS1053音頻解碼IC。首先,我們需要下載一個(gè)壞蘋(píng)果的視頻文件,這個(gè)視頻文件網(wǎng)上很容易找到,就不貼鏈接了。STC8A8K64S4A12單片機(jī)的性能不高,不能用于軟解視頻文件。不過(guò),STC8A8K64S4A12單片機(jī)驅(qū)動(dòng)OLED顯示圖片還是綽綽有余的。需要把視頻畫(huà)面截取成多個(gè)畫(huà)面,我用PotPlayer軟件,選擇視頻-連續(xù)截取畫(huà)面,在尺寸設(shè)置欄目,設(shè)置截取為自定義尺寸128×64,在格式設(shè)置欄目,設(shè)置BMP,在截圖設(shè)置欄目,設(shè)置采集數(shù)量9999,設(shè)置按幀間隔 每幀1。
    截取完成后,能截取處多張BMP格式的圖片。此時(shí)的BMP圖片不是純粹的單色灰度,帶有不少其他信息,為了把這部分信息剔除,用Image2Lcd軟件,將BMP圖片批量轉(zhuǎn)換成單色的BMP圖片。

    這樣,每張圖片大小為1084個(gè)字節(jié),前面60個(gè)字節(jié)是BMP的文件大小、分辨率等信息,后面1024個(gè)字節(jié)是像素信息,對(duì)應(yīng)128×64分辨率。PC端的BMP圖片顯示順序是列:左→右,行:下→上。以根據(jù)這個(gè)特點(diǎn),寫(xiě)B(tài)MP圖片顯示的處理函數(shù)時(shí),要最先填充第七頁(yè)的128個(gè)數(shù)據(jù),然后是第六頁(yè)···直到第零頁(yè)的128個(gè)數(shù)據(jù)。為了方便單片機(jī)讀取圖片數(shù)據(jù),我將所有的BMP文件復(fù)制合并為一個(gè)bin文件。合并的方法也很簡(jiǎn)單,將所有的BMP文件復(fù)制到SD中,利用開(kāi)源fatfs文件系統(tǒng),讓單片機(jī)每次加載BMP內(nèi)的數(shù)據(jù),再寫(xiě)入到一個(gè)合并bin文件的末尾。經(jīng)過(guò)多輪操作后,就可以完成所有的BMP文件的合并。
   壞蘋(píng)果的音頻也是用PotPlayer軟件獲取,選擇聲音-音軌-聲音錄制,格式設(shè)置欄目,選擇格式:MP3,質(zhì)量:128kbps。這樣就能得到MP3格式壞蘋(píng)果音頻文件了。音頻數(shù)據(jù)的解碼是用VS1053,單片機(jī)將音頻數(shù)據(jù)流傳輸給VS1053,VS1053就能自動(dòng)識(shí)別和解碼,非常方便。

    經(jīng)過(guò)上面的步驟,現(xiàn)在已經(jīng)有了一個(gè)合并的bin圖像文件和一個(gè)mp3音頻文件,把這兩個(gè)文件放在SD卡的根目錄下面。接下來(lái)就是數(shù)據(jù)的顯示處理了。要實(shí)現(xiàn)同時(shí)帶動(dòng)畫(huà)和聲音的壞蘋(píng)果,需要在每輪依次讀取圖像數(shù)據(jù)和音頻數(shù)據(jù),然后驅(qū)動(dòng)OLED顯示和VS1053。程序?qū)崿F(xiàn)方面我就不細(xì)講了,代碼有注釋。
    下面是演示視頻的鏈接地址:https://v.youku.com/v_show/id_XN ... 42.soresults.dtitle
    下面badapple工程圖

    下面是硬件實(shí)物圖


    相關(guān)工程和文件會(huì)傳到附錄中,需要的可以下載。

badapple.rar

4.92 MB, 下載次數(shù): 89, 下載積分: 黑幣 -5

工程相關(guān)文件


作者: kongchengEC    時(shí)間: 2020-5-4 22:16
蛤,剛剛拿了個(gè)8A8K,想學(xué)習(xí)一下放個(gè)壞蘋(píng)果,上網(wǎng)搜搜看看有沒(méi)有蜂鳴器的代碼,結(jié)果連屏幕的播放都做好了。感謝樓主,拿走學(xué)習(xí)。!
作者: 沒(méi)有你    時(shí)間: 2020-5-7 00:06
kongchengEC 發(fā)表于 2020-5-4 22:16
蛤,剛剛拿了個(gè)8A8K,想學(xué)習(xí)一下放個(gè)壞蘋(píng)果,上網(wǎng)搜搜看看有沒(méi)有蜂鳴器的代碼,結(jié)果連屏幕的播放都做好了。 ...

多謝支持
作者: 13487086265    時(shí)間: 2020-11-28 11:37
iar版本低了 打不開(kāi) 能發(fā)一份低版本的嗎
作者: 13487086265    時(shí)間: 2021-4-2 17:41
電路圖能發(fā)一份嗎
作者: mmlyy2001    時(shí)間: 2023-3-16 15:30
看看能不能移植到其它STC上




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1