“鬼影”现象是指那些不该点亮的点随机出现忽明忽暗的现象,产生的原因是在进行行切换时不可能同时完成行选和列选,两个操作之间一定存在时差,这个时差时间内屏的显示是错误的,这个错误的显示就是鬼影。
进行行选和列选的代码如下:
P1 = (P1 & 0xf0) | Row; //行选
LED_PANEL_ST = 0; //列线输出锁存数据,上升沿
LED_PANEL_ST = 1;
当把数据送入595锁存好后,如果先进行行选,再进行列选(将595锁存的数据输出),一切正常。但是,如果先将锁存好的数据输出,再进行行选,就会出现“鬼影”。
我疑惑的是:应前一种操作方式会出现鬼影,后一种方式不会出现鬼影才对啊。
不对,如果出现鬼影,那两种方式都应该出现鬼影啊。我理解的两种方式是过程是这样的:
1.先行选,再输出锁存
先行选,行输出高电平(LED正极),此时该行会点亮,点亮的是上一行的数据;再输出锁存,给锁存器一个下降沿输出锁存数据,此时该行显示的才是正确的数据,这里有一小段时间显示的数据是错误的,如果时间非常短则LED来不及发光,错误就被纠正了。我认为这个时间是用于产生下降沿的时间:
C语言:
LED_PANEL_ST = 0; //列线输出锁存数据,上升沿
LED_PANEL_ST = 1;
汇编:
CLR P3.2
SETB P3.2
2.先输出锁存,再进行行选
先输出锁存,则上一行会显示新的数据,此时再进行行选,当行选信号输出完成后,上一行熄灭,新行显示,这里上一行显示错误数据的时间等于行选信号输出的时间:
C语言:
P1 = (P1 & 0xf0) | Row; //行选
汇编:
MOV R0,#0×15 ;0×15地址为变量Row
MOV A,P1
ANL A,#0xF0
ORL A,@R0
Mov P1,A
分析上面两种方式,不管是先进行行选还是先输出锁存,都存在有一小段时间显示是错误的情况,很明显先输出锁存的方式错误显示的时间更长,更容易产生鬼影。
为了验证上面的分析,如果我在第一种方式中行选操作后加入一个延时,则第一种方式应该出现与第二种方式相似的鬼影现象。
经过试验,我在第一种方式行选操作后加入5个NOP指令,即出现与第二种方式相似的鬼影现象。

从上述的分析可以看到不论是先行选还是先输出锁存都可能出现鬼影,而一般在使用室内屏时不容易看到,因为LED的亮度较低,但在室外屏可能更容易看到。而彻底解决鬼影的办法是在进行行切换前关闭全屏显示,在准备好数据和行选后再开启全屏显示。代码如下:
LED_PANEL_EN = 1; //关闭全屏显示,消除鬼影
P1 = (P1 & 0xf0) | Row; //行选
LED_PANEL_ST = 0; //列线输出锁存数据,上升沿
LED_PANEL_ST = 1;
LED_PANEL_EN = 0; //开启全屏显示

LED点阵屏“鬼影”现象的分析和解决相关推荐

  1. Android L无法接听/拒接来电现象的分析与解决(文末对比Android M)

    这是一篇补档博客,整理记录的时候发现这篇没有发上来. 首次编辑完成时间是2016.05.02.过时了过时了. Android L无法接听/拒接来电现象分析与解决(文末对比Android M) 问题描述 ...

  2. Mbus总线毛刺导致异常现象的分析和解决

    1.用分离元件搭建电源电路,替换NCN5150或TSS721集成芯片: 2.传感器用180度晶元分布替换360度晶元分布,传感器上无轮盘: 单片机的3.3v电源设计方案如下 测试问题: 测试过程中有超 ...

  3. android 触摸屏(TP)问题现象分析和解决方法

    1 现象描述:进入浏览器,网页放大和缩小效果差 原因分析:由于TP抖动导致该问题. 解决方法:有抖动导致放大缩小不稳定,需要开启防抖功能,在最后主动丢掉2~3个点.开启防抖会降低报点率,需要结合用户效 ...

  4. TP问题现象分析和解决方法汇总

    No.1 现象描述:进入浏览器,网页放大和缩小效果差 原因分析:由于TP抖动导致该问题. 解决方法:有抖动导致放大缩小不稳定,需要开启防抖功能,在最后主动丢掉2~3个点. 开启防抖会降低报点率,需要结 ...

  5. Android 触摸屏(TP)问题现象分析和解决方法汇总

    转载自http://blog.csdn.net/wlwl0071986/article/details/8302135 No.1 现象描述:进入浏览器,网页放大和缩小效果差 原因分析:由于TP抖动导致 ...

  6. 【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记

    使用74HC595芯片驱动LED点阵屏的使用笔记 1.控制显示LED点阵屏的思路 2.74HC595芯片的学习 2.1.74HC595芯片是什么? 2.2.74HC595芯片各引脚解释以及分析 2.3 ...

  7. java-jvm-full gc频繁的分析及解决

    返回博客列表 转 关于施用full gc频繁的分析及解决 DEC_LIU 发布时间: 2013/10/13 20:32 阅读: 3431 收藏: 14 点赞: 1 评论: 1 关于应用full gc频 ...

  8. 连接MySQL数据库时常见故障问题的分析与解决

    连接MySQL数据库时常见故障问题的分析与解决 初学的mysql网友好象经常会碰到mysql无法连接的错误.特开贴收集这样问题的现象和原因. 先自己扔块砖头出来. 归纳如下: 故障现象 : 无法连接 ...

  9. 关于一些常见智柜问题的分析及解决办法

    竟然还有小伙伴感觉自研项目不好的小伙伴? 渐渐感觉不管是在小公司或者在大公司,能有一个值得奋斗的远方就可以了,比如薪资高,钱多事少离家近,自己真的对自己目前做的事情感兴趣,否则干啥都感觉没劲,尤其是在 ...

最新文章

  1. 定义一个Employee类
  2. Python descriptor
  3. 在MyEclipse启动或者是tomcat启动的时候出现:Address already in use: JVM_Bindnull:8080
  4. 白话Elasticsearch51-深入聚合数据分析之text field聚合以及fielddata原理
  5. 理解交通行业规律 用持续做“重”来重新定义共享出行
  6. java中的JDBC用户管理系统_Java+JDBC学生信息管理系统
  7. java 继承 私有变量_java – 继承和私有变量
  8. 《计算机网络》_学习笔记(一)
  9. 20189215 2018-2019-2 《密码与安全新技术专题》第7周作业
  10. VS2019 WPF制作OTA上位机(二)获取bin文件路径
  11. redis映射的概念_Redis存储总是心里没底?你大概漏了这些数据结构原理
  12. Pytorch基础(一) 初始tensor
  13. python IDE 集合
  14. StringUtil
  15. 黑龙江省黑河市谷歌高清卫星地图下载
  16. MATLAB数值微积分与方程求解
  17. java 基于微信小程序的饭店外卖点餐系统 uniapp小程序
  18. 图森面试官| 图森未来首席科学家王乃岩:播下去的种子,早晚会开花
  19. 【Python工具】Python版本的天眼查,是不是就很nice啦 | 附带源码
  20. 启动期间的内存管理之初始化过程概述----Linux内存管理(九)

热门文章

  1. win10 软件开机自启
  2. mysql外键创建不成功/失效
  3. endnote没有加载项_Endnote参考文献如何自己设置?
  4. Latex插入参考文献的方法(两种全)
  5. Redis 配置文件 redis.conf
  6. Java小练习--实现杨梅和仙人蕉的信息描述
  7. 爱丽丝梦游仙境游戏下载+游戏攻略
  8. CSS flex样式垂直居中
  9. excel 某个单元格不是等于空值_Excel单元格为空怎么表示啊
  10. python ans什么意思_ansble 常识