教程我寫在word文檔里了
基于51單片機串口通信和16*16點陣屏播放badapple視頻的實驗(badapple為5分18秒)
連線如圖,比較簡單,單片機到74HC595只有3根線,74HC595到16*16點陣有32根線(其中段選16根,位選16根)(圖片中位選已經(jīng)通過電路板默認連接)
打開程序
設(shè)置波特率,可以根據(jù)實際情況調(diào)整單片機和74HC595模塊的連線,端口設(shè)置在port.h文件中
并將程序下載到開發(fā)板上(.hex文件在output文件夾中)
如果連線沒有錯,點陣默認顯示”始”字
打開STC-ISP的串口助手
點擊發(fā)送文件
因為在程序的串口通信初始化中,我選擇的是19200的波特率,所以在串口助手這里也選擇19200波特率,并選擇60FPS對應(yīng)的文件,如果在這里選擇30FPS的文件那么播放速率會是60FPS文件的兩倍
如果過程沒有出錯,那么現(xiàn)象如圖
關(guān)于badapple文件的制作方法就不在這里講述了,我就說一下思路吧
badapple文件制作思路:
- 獲取badapple的視頻文件
- 將視頻文件分解為一幀一幀的圖片,可以用視頻的連續(xù)截圖軟件實現(xiàn),也可以用格式工廠現(xiàn)將圖片轉(zhuǎn)化為GIF文件,再將GIF轉(zhuǎn)化為圖片(注意獲取的圖片所對應(yīng)的是視頻的一幀,也就說,如果你要制作60幀的badapple文件,就要1秒截取60張圖片,或者GIF文件為60幀)
- 第一種方法:將獲取的圖片剪裁并轉(zhuǎn)換為位圖,因為點陣只能顯示0和1,,所以要將圖片剪裁,并設(shè)置圖片分辨率為16*16,之后轉(zhuǎn)換為位圖,這里可以用PS軟件,再將位圖轉(zhuǎn)換為二進制或十六進制文件,這里用批量取模軟件(在轉(zhuǎn)換圖片時注意取模方式)
第二種方法:使用軟件image2Lcd v3.2,可以直接將圖片轉(zhuǎn)換為位圖的二進制文件,使用軟件時注意輸出數(shù)據(jù)類型,掃描模式,輸出灰度(選單色)和最大寬度和高度(16*16)就行了
強烈建議使用第二種方法,第一種方法容易出錯,第二種方法簡單(雖然說我用的是第一種方法,第二種方法我沒用過,理論上可行,而且網(wǎng)上的教程也大都采用image2Lcd軟件實現(xiàn)取模)
- 文件制作完成,設(shè)置好單片機和串口波特率并用串口發(fā)送文件即可
幀數(shù)與波特率的關(guān)系
1幀有16*16=256位的數(shù)據(jù),對應(yīng)波特率為256/0.8=320(起始位和停止位各一位),也就是說一秒發(fā)送一幀,波特率就應(yīng)該為320,一秒鐘發(fā)送30幀,波特率為320*30=9600,,一秒鐘發(fā)送60幀,波特率為320*60=19200
最后
制作文件比單片機程序難得多
新手剛開始制作文件十有八九是失敗的,不要灰心,先弄清楚程序的原理,再學(xué)習(xí)制作文件.
我從剛開始學(xué)習(xí)51單片機到完成16*16點陣播放badapple歷時1個多月,其中包括點陣模塊的學(xué)習(xí)和串口通信的學(xué)習(xí),文件的制作方法大部分也是自己想出來的,現(xiàn)在想想自己也是夠笨的
如果你弄清楚了以上的教程,就繼續(xù)前進,嘗試使用stc12的單片機、0.96OLED屏幕結(jié)合SD卡模塊播放badapple,效果比16*16點陣好很多