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