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