前阵子做了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滚动显示算法及实现相关推荐

  1. python手持弹幕LED滚动字幕

    用python的海龟库,做一个类似于微信小程序手持弹幕那样的LED屏幕滚动字幕效果. 本来是要坐在开发板上的,但开发板上缺了海龟库,烧录一直不成功,就先写了一个能运行在电脑上的程序. 利用键盘的上建. ...

  2. 三档按键定时器c语言程序,单片机C语言程序设计:定时器控制4个LED滚动闪烁

    /*  名称:定时器控制 4 个 LED 滚动闪烁 说明:4 只 LED 在定时器控制下滚动闪烁. */ #include #define uchar unsigned char #define ui ...

  3. Unity3D制作LED滚动字幕(跑马灯)效果

    Unity3D制作LED滚动字幕(跑马灯)效果 搭建场景 建立世界坐标的Canvas 新建LED模型 Text节点 Mask节点 查看效果 美化一下 编写代码 DOTween插件 设置属性 编写文字滚 ...

  4. c语言控制led闪烁次数,单片机C语言程序设计之定时器控制4个LED滚动闪烁

    描述 通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力.通过定时器控制4只LED滚动闪烁系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高 ...

  5. Android 通过串口控制LED滚动字幕

    创建好串口工具类: https://blog.csdn.net/qq_30297763/article/details/85997689 创建LED滚动字幕工具类 public class LEDUt ...

  6. android led屏幕分辨率,安卓 LED滚动显示屏 LED scrolling display v6.6.2 特别高级版

    LED scrolling display是安卓平台上一款让手机变LED滚动显示屏的应用.现爱绿软为大家带来的安卓 LED滚动显示屏 LED scrolling display 特别高级版已经更新到v ...

  7. STM32实现德飞莱LED滚动效果

    显示方式选择: 首先搞清楚,取模的方式有横向取模和纵向取模两种. 一般以C51格式取出来的16x16的汉字,由32个十六进制组成. 每个十六进制,0是白色的像素点,1是黑色的像素点,文字是由黑色的像素 ...

  8. 基于单片机的24x24点阵led汉字显示 c语言,基于单片机的点阵式LED滚动汉字显示屏仿真设计...

    3. 软件设计 AT89C51单片机是8位机,每次只能送出8位数据,因此要向16×16点阵送出16行阳极驱动,需要送两次,或先送上8行,或先送下8行,为了能够实现每一列字型码的完整显示,采用74LS2 ...

  9. android 屏幕滚动字幕,LED灯牌显示屏滚动字幕

    LED灯牌显示屏滚动字幕app是一款手机led灯牌工具,直接将手机作为led等,打造喜欢的led滚动效果:在看演唱会的时候,拿起手机就能当led显示灯,完全不用特地准备,还方便携带:并且在制作led灯 ...

最新文章

  1. 《ActionScript3.0 游戏设计基础(第二版)》随书代码和附赠章节(共4章)
  2. 11g rac生产环境异机恢复报错RMAN-6013
  3. 下载cx oracle 6,在Centos 6上安装cx_Oracle
  4. 比机器人更优越的半机械昆虫,颜控党们会接受吗?
  5. python3.6.5安装步骤-Centos7 安装Python3.6.5
  6. python max函数时间复杂度_程序员的思考:用函数还是用复杂表达式
  7. 数据库篇--update触发器
  8. 计算机二级正式样式在哪里,满分新建样式,修改样式要学会-计算机二级等考office的省时利器...
  9. 热浪寒浪统计在python上的实现
  10. python控制相机,在OpenCV / Python中设置相机参数
  11. mac ssh常见问题
  12. 医疗IT系统在手术部供配电间的应用
  13. 【Django】二手交易市场开发备忘录
  14. 测试员≠“背锅侠”:学会这些,扔掉测试人常背的3口“锅”
  15. python三剑客是什么意思_linux三剑客是什么意思
  16. 【day6】类与对象、封装、构造方法
  17. linux调试MCX314AL过程
  18. TigerGraph图数据库安装
  19. svg交互_如何创建交互式SVG动画鼓套件
  20. 点读机一般具备以下几大特点

热门文章

  1. 如何获取微众银行人工客服的联系方式?
  2. linux 命令:passwd详解
  3. CSK与KCF算法推导(六)
  4. 企业为什么要布局短视频?
  5. 知识图谱-汽车品牌知识图谱实战复现记录
  6. map映照容器的使用
  7. 定义一个中国银行类 要求实现 注册账号,存款、取款、查询余额功能。
  8. 微信/支付宝安卓端和苹果端支付集合 Java版
  9. mysql 删除时间范围数据_mysql数据库按时间删除数据总结
  10. dup2复制文件描述符