“鬼影”现象是指那些不该点亮的点随机出现忽明忽暗的现象,产生的原因是在进行行切换时不可能同时完成行选和列选,两个操作之间一定存在时差,这个时差时间内屏的显示是错误的,这个错误的显示就是鬼影。
进行行选和列选的代码如下:
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. 外界对程序员的误解究竟有多深?
  2. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入代码示例 )
  3. php 模板使用,TMDPHP 模板引擎使用教程
  4. Winform中设置ZedGraph的曲线为散点图
  5. html5基础知识点盒子
  6. Eclipse vs IDEA快捷键对比大全
  7. 致毕业生:那些年我们错过的“BAT”
  8. 联想w540笔记本参数_2020年12月笔记本电脑推荐!联想、惠普、华为笔记本电脑推荐!18款高性价比笔记本电脑推荐!!!...
  9. Android 百度推送使用总结
  10. HTML5表单提交和PHP环境搭建
  11. python调用arcpy函数_python笔记之ArcPy函数列表
  12. 按Sybase的PowerDesigner工具设计的数据库模型 --- 解析生成能兼容多种数据库的相应的C#底层代码...
  13. 简单mysql程序_【备忘】mysql简单操作程序
  14. 表的顺序结构---重写Arraylist类
  15. 油猴脚本Tampermonkey初体验
  16. 批处理定时执行任务_[Abaqus tips ] 分析任务的定时执行
  17. Excel 使用ODBC 连接mysql 5.0
  18. 怎么对ChannelHandler做测试?
  19. 初学者python编辑器用geany可以吗_面向初学者的Python编辑器Mu
  20. PMP 项目沟通管理

热门文章

  1. You are not able to choose some of the languages, because locales for them are not installed on the
  2. IOS 中 pch 文件详解
  3. wince 快速挂载SD卡及U盘
  4. continue和break的区别(continual和continuous的区别)
  5. 毕业设计 单片机stm32智能路灯智能灯控系统 - LoRa远程通信
  6. 墨奇科技博客 | 生物特征密码系统之错误纠正码简介——汉明码
  7. 关怀“钉子户”,魅族卷对了方向
  8. CCNA-01-GNS3仿真环境搭建及c7200路由镜像导入
  9. 【狮子数学】chapter2-10-切线与法线
  10. 哈希算法(Hash Function)