LED滚动显示算法及实现
前阵子做了LED控制板,LED控制显示的程序仍需编写。之前将汉字显示程序实现,最近需要实现滚动显示,于是考虑滚动显示算法。
程序编写之前需要将LED显示原理搞清楚,即控制板通过控制DM137来实现对LED灯的控制。对于LED显示屏,由于每个DM137有16个引脚,因此可用来控制16列或16行(如果灯颜色只有一种),具体需要查看硬件原理图,首先应该将显示方式弄清楚,然后确认实现算法。在本地端通过CPU控制板的16个引脚来直接控制扫描16列,对于每个DM137则通过一个循环将相应的控制信息通过SPI引脚输出至DM137。
For(i=0;i<16;i++)
{
For(j=0;j<3;j++)
{
AT91F_SPI_PUTCHAR(AT91C_BASE_SPI1,TESTDATA[I][J],0);
While(!(AT91C_BASE_SPI1->SPI_SR& AT91C_SPI_TDRE);
Wait();
}
//控制输出设置。
}
对于要显示的数据,均通过数组TESTDATA来实现,其中i是控制列,一共16列,j为DM137个数。CPU控制板需要将数据信息赋值给每个DM137(通过PUTCHAR函数实现)。这样每次扫描一列(每次扫描DM137的同一列),一共扫描十六列即可完成所有显示。这样实现较为容易,避免行扫描的繁琐。
对于滚动显示,每个DM137内部的滚动可由数组移位赋值得到。但若是想实现连贯性,即一个数据滚动显示完不同的DM137,则需要将不同DM137临界点的数据保存然后赋值给另一DM137临界列来实现。若是想实现由右向左的滚动效果,则需将要显示的数据赋值给最左侧的一列,然后依次滚动实现显示效果。当然,对于硬件内部实现结构的不同,需进行相应的变更,具体应查看硬件电路的实现原理。
For(j=0;j<3;j++)
{
DataTemp[i]= TestData[0][j]; //保存临界值
I++;
}
For(i=1;i<16;i++)
For(j=0;j<3;j++)
{
TestData[i-1][j]= TestData[i][j]; //实现15列的移动
}
For(j=0;j<2;j++)
{
TestData[15][j] = DataTemp[j+1];
}
TestData[15][2]=(hao1[shiftindex]<<8);
TestData[15][2]+=hao1[shiftindex+1];
Shiftindex +=2;
在滚动显示中,最重要的是需要搞明白LED屏的显示方式,然后根据显示方式编写具体函数来实现滚动显示。对于显示方式的查看,可编写相应的测试程序实现:控制单个点、单个列扫描、单个行扫描。
(文章原创,转载请声明)
LED滚动显示算法及实现相关推荐
- python手持弹幕LED滚动字幕
用python的海龟库,做一个类似于微信小程序手持弹幕那样的LED屏幕滚动字幕效果. 本来是要坐在开发板上的,但开发板上缺了海龟库,烧录一直不成功,就先写了一个能运行在电脑上的程序. 利用键盘的上建. ...
- 三档按键定时器c语言程序,单片机C语言程序设计:定时器控制4个LED滚动闪烁
/* 名称:定时器控制 4 个 LED 滚动闪烁 说明:4 只 LED 在定时器控制下滚动闪烁. */ #include #define uchar unsigned char #define ui ...
- Unity3D制作LED滚动字幕(跑马灯)效果
Unity3D制作LED滚动字幕(跑马灯)效果 搭建场景 建立世界坐标的Canvas 新建LED模型 Text节点 Mask节点 查看效果 美化一下 编写代码 DOTween插件 设置属性 编写文字滚 ...
- c语言控制led闪烁次数,单片机C语言程序设计之定时器控制4个LED滚动闪烁
描述 通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力.通过定时器控制4只LED滚动闪烁系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高 ...
- Android 通过串口控制LED滚动字幕
创建好串口工具类: https://blog.csdn.net/qq_30297763/article/details/85997689 创建LED滚动字幕工具类 public class LEDUt ...
- android led屏幕分辨率,安卓 LED滚动显示屏 LED scrolling display v6.6.2 特别高级版
LED scrolling display是安卓平台上一款让手机变LED滚动显示屏的应用.现爱绿软为大家带来的安卓 LED滚动显示屏 LED scrolling display 特别高级版已经更新到v ...
- STM32实现德飞莱LED滚动效果
显示方式选择: 首先搞清楚,取模的方式有横向取模和纵向取模两种. 一般以C51格式取出来的16x16的汉字,由32个十六进制组成. 每个十六进制,0是白色的像素点,1是黑色的像素点,文字是由黑色的像素 ...
- 基于单片机的24x24点阵led汉字显示 c语言,基于单片机的点阵式LED滚动汉字显示屏仿真设计...
3. 软件设计 AT89C51单片机是8位机,每次只能送出8位数据,因此要向16×16点阵送出16行阳极驱动,需要送两次,或先送上8行,或先送下8行,为了能够实现每一列字型码的完整显示,采用74LS2 ...
- android 屏幕滚动字幕,LED灯牌显示屏滚动字幕
LED灯牌显示屏滚动字幕app是一款手机led灯牌工具,直接将手机作为led等,打造喜欢的led滚动效果:在看演唱会的时候,拿起手机就能当led显示灯,完全不用特地准备,还方便携带:并且在制作led灯 ...
最新文章
- 《ActionScript3.0 游戏设计基础(第二版)》随书代码和附赠章节(共4章)
- 11g rac生产环境异机恢复报错RMAN-6013
- 下载cx oracle 6,在Centos 6上安装cx_Oracle
- 比机器人更优越的半机械昆虫,颜控党们会接受吗?
- python3.6.5安装步骤-Centos7 安装Python3.6.5
- python max函数时间复杂度_程序员的思考:用函数还是用复杂表达式
- 数据库篇--update触发器
- 计算机二级正式样式在哪里,满分新建样式,修改样式要学会-计算机二级等考office的省时利器...
- 热浪寒浪统计在python上的实现
- python控制相机,在OpenCV / Python中设置相机参数
- mac ssh常见问题
- 医疗IT系统在手术部供配电间的应用
- 【Django】二手交易市场开发备忘录
- 测试员≠“背锅侠”:学会这些,扔掉测试人常背的3口“锅”
- python三剑客是什么意思_linux三剑客是什么意思
- 【day6】类与对象、封装、构造方法
- linux调试MCX314AL过程
- TigerGraph图数据库安装
- svg交互_如何创建交互式SVG动画鼓套件
- 点读机一般具备以下几大特点