源码网盘链接:https://pan.baidu.com/s/1APv5yVAqrYj4KkkIafegrQ 提取码:b628
B站:https://www.bilibili.com/video/BV1Z5411E7uH
给大家分享一个教程,12864播放视频。这个东西显示效果很好,还是挺有意思的,我提供了bad apple的bin文件,大家可以一试,播放下badaple。
做这个需要性能好点的单片机,所以普通的51单片机不行,需要用stc12c5a60s2,它跟普通的51单片机一摸一样,引脚也一样,里面寄存器地址,定时器,中断也一样,如果你买过51单片机开发板,单片机芯片槽上插它就行了,平时完全可以拿它学习51单片机,51单片机的程序放它那,一样运行。它与普通的单片机相比,唯一的区别就是时钟会比普通的快12倍(不止速度,它相对普通51新增了很多功能,初学者可以不用管),普通的51单片机会把晶振给缩小12倍,但是它不会,晶振接多大,它的时钟频率就多大,由于播放视频功能是电脑通过串口发送给单片机数据,单片机将数据写入12864里。它需要很快的串口速度。普通的51单片机,快不了,但12c5a60s2可以,串口波特率是115200,对于普通51就是超越不了的梦。
main.c ta.h ta.c是单片机的源码,用keil4或者keil5 新建51单片机的工程,单片机型号是stc12c5a60s2,没有这个型号的话,可以用51单片机烧写软件stc-isp添加此型号,选择keil的安装路径,就可以添加了。(具体可以百度,参考百度经验https://mbd.baidu.com/ma/s/dBxzchKA)新建完工程后,把这三个.c/.h文件放到工程文件夹下,确保keil可以找到,并添加这两个.c文件进工程。之后可以自行按你的实际电路情况去更改ta.h上那些引脚,串口引脚是P3.0,P3.1,不用动。编译出hex,烧录进单片机就行了。

制作视频文件.c 是做发送给单片机视频的bin文件的程序,如果不想去做,可以不用看。这个程序用到了C语言的文件io,改日再介绍。大家可以看谭浩强的C语言书最后一章,自行学习。

烧录进单片机后(记住要接11.0592m晶振),上电,单片机会等待串口发来数据,电脑就用51单片机烧写软件stc-isp发文件就行,设置:波特率115200,一个停止位,八位数据位,没有校验位。
单片机接收到数据后,会播放视频。它能自动的匹配视频图像大小,分辨率,进行播放,人只需要发送即可,不需要干预。

程序的原理是ta.c是12864的读写时序和初始化函数,main.c里是循环等待接收串口数据,接收了就写进12864里,在循环接收数据之前,单片机最初还接收了5个字节,它保存了一帧图片是多大字节,宽度是多少,要放到lcd的那个位置去播放,单片机先串口读出这5个字节后,设置相应的参数,之后,它就循环的接收数据了,接收一个字节数据,写入12864,就是12864屏幕上的八个点,一行一行的写,写够一个图片的数据就显示,这样一直发,就成了动画。所以借此也能想象到,视频文件的结构就是一张又一张图片的数据,一个接一个按顺序都写在一个文件里。

115200波特率说快也不快,串口传输速度还是很慢的,它发一次八个点,发一次八个点,一张图片写完,再写下一张图片,一行一行的刷新,前一张图和后一张图重叠,如不做处理,会有严重的重印,为了解决这个重影,这个程序也做了处理,12864的图像芯片,12864液晶的显示只用了一半,其实另一半也可以用的,用滚屏命令就可以了显示出另一半。此程序串口传来的数据,会存到另一半上,传完一个图片,用滚屏命令,让液晶显示这一半,另一半再写数据,如此反复,就没有重影了,程序就这么写,可以自行研究。

当然我这个还存在问题,那就是接收数据的时候,如果有那种接触不良,只要有一个字节没接收到,或者有一个数据没写进12864上,整个图片就错位了。大家可以参照我这个做,进行自己的改良,谢谢观赏!

51单片机控制lcd12864播放bad apple!相关推荐

  1. 蜂鸣器播放爱你歌曲c语言程序设计,51单片机控制蜂鸣器播放5首歌曲汇编程序...

    欢乐颂 DB 32,32,32,32,32,32,32,32,32,32,32,32,48,16,64 DB 32,32,32,32,32,16,16,32,32,32,16,16,32,32,32, ...

  2. 【网络收录】基于51单片机开发音乐播放器

    [网络收录]基于51单片机开发音乐播放器 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Thu, 22 May 2014 18:14:00 +0800 特别声明:本资料来源 ...

  3. 51单片机 外部时钟_基于51单片机的LCD12864显示模拟时钟

    今天要分享的仿真和程序是基于51单片机的LCD12864显示模拟时钟.公众号之前也分享过数字时钟,但是那些时钟都是采用数字显示的形式来显示时间,而今天分享一个采用LCD12864显示的模拟指针式时钟. ...

  4. 51单片机控制的数字温度计 PROTEUS 和51单片机教程

    51单片机控制的数字温度计 总览部分 MCU部分 显示部分 开仿真以后实时显示温度 因为这个程序比较简单,我就直接上代码了,有不明白的请看我以前的文章,谢谢哦! 参考代码如下: #include &q ...

  5. 51单片机控制步进电机-电路连接

    51单片机控制步进电机-电路连接 概要:本案例讲解的内容是51单片机控制步进电机硬件连接部分.后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 硬件清单: 1.51单片机控制板一个 2.二 ...

  6. 51单片机控制二相四线步进电机

    步进电机按定子上绕组来分,有二相.三相和五相等系列.最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好.该种电机的基本步距角为1.8°/步,配上半步驱 ...

  7. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  8. 51单片机控制LCD1602模块

    51单片机控制LCD1602模块 视频播放:LCD1602视频 (1)LCD1602概述 先来看看LCD1602什么意思?Liquid Crystal Display(LCD)表示液晶显示,1602 ...

  9. 51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真 采用的接线方式是IIC接口,在Proteus里面仿真太慢了,不知道是电脑古老问题还是怎么,看图像就知道了,有多卡,感觉电脑运 ...

最新文章

  1. opencv 中 快速傅里叶变换 FFT
  2. swin_transformer用于做图像分类(已跑通)
  3. [蓝桥杯2018决赛]迷宫与陷阱
  4. html resize 最小,Html5 Canvas resize
  5. html5.0笔记,动易sf5.0标签笔记.doc
  6. Nginx配置https和wss
  7. python中字符串怎么引用_如何在字符串中引用函数参数
  8. MVC应用程序结构与规划
  9. C语言(从入门到精通)
  10. php动态万年历模块,php如何实现万年历的开发(每日一课真是非常有效率)
  11. php 每日一句名人名言,每日一句名人名言
  12. python爬虫获取携程旅游景点评分和评论
  13. Lua源码分析 - 虚拟机篇 - 语义解析之Opcode生成(17)
  14. matlab 生成Blocks和Heavysine等典型非线性非平稳信号代码
  15. 微信小程序双瀑布流布局+动态懒加载
  16. verilog中initial语句的基本使用
  17. doris安装部署-通过docker部署doris集群
  18. 相机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像
  19. JSON.stringify()浅析
  20. AUTOSAR实战教程 - 软件集成调试_程序跑飞一招解决

热门文章

  1. python 制作下雪的情景_描写下雪情景的作文400字
  2. 漂亮脸蛋大头贴v2.0 - 绿色免费版发布
  3. android preference控件,Android Preference 设置项简单使用详解
  4. 虚拟机账号密码忘记了怎么办_宽带账号密码忘记怎么办?学会这招轻松帮你找回...
  5. xp计算机定时关机怎么批销,如何让 Windows 定时定点自动关机?简单的批处理就能解决 | 一日一技...
  6. wget命令使用及参数详解
  7. 黑眼圈的去除办法和草方 - 生活至上,美容至尚!
  8. ansible中的角色使用--nginx+持续交付和滚动升级+时间同步角色+selinux+自动添加磁盘
  9. 美食杰项目(菜谱大全)效果介绍
  10. 【校招VIP】数据库基础之sql五十道题