教程我写在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点阵好很多