讲一下数码管正确显示的一些方法有哪些?

返回列表 来源: 发布日期:2021-01-09

在使用数码管来显示数据的时候,如果没有对其有一个合适的处理,往往就会出现鬼影,或是数码管显示时亮度不一致。为了帮助大家,我在这儿讲一下自己让数码管正确显示的一些方法。

  首先我们来讲一下数码管不能正常显示的原因。一个可能的原因,数码管不能正常显示,是因为上一次P0口的数据有所残留,与这次我们输出的数据发生了冲突,导致了数码管的异常显示。二个可能的原因,P0口输出数据后,你的延时不正确,过长或是过短都会导致函数的一个异常显示。三个可能的原因,你程序里面有其它的函数执行时间过长,导致数码管显示函数这儿给各个位分配的时间出现了大幅度偏差,数码管的后一位会比其它几位亮。

  上面讲完了数码管不能正常显示的一些原因,我们接下来就讲一下,如何解决问题。

  我们对于数码管的显示,最常用的一个方法就是使用延时函数,让我们输出的数据在我们的数码管上停留一段时间,然后换另外一个位,再输出一个数据,然后接着停留一段时间,以此类推。那么我们停留多长时间才正确呢?经过我的经验,我们在选定数码管显示的位后,显示的延时为1ms是比较合适的。当然大家也可以试试其它的一个延时。这样一般都能够正常显示了。

  另外还有就是数码管上一个数据残留的问题,对于这个问题,因为蓝桥杯单片机比赛的这一个竞赛版是使用了锁存器来对数码管进行一个操作。在打开锁存器之前,对P0口的任何操作,都不会影响到我们的Q数据端。所以为了消除上一个数据的影响,我们完全可以在打开锁存器前,将我们的数据传给P0口,接着再打开锁存器,延时一段时间,这样就可以解决问题了。当然需要提醒的一点是,如果我们这样进行操作,那么每次我们打开锁存器之后,一定要记住关掉它,否则一但你提前输入下一个位的数据时,上一个位的锁存器还没关掉,这不就对它做出了一个不希望有的操作吗?这肯定是有问题的。

  后还有我们的第三个原因,这个我们又怎么去克服它呢?

  一般情况下,其它函数占用时间过长,导致数码管难以正常显示的情况是很难见到的(在我们蓝桥杯单片机这块板子里)。但是,一但出现了,又很难解决。所以我在这儿,建议大家当这种情况出现时,可以尝试一下,将数码管显示函数放到定时器/计数器中,每到一定时间,就执行一次数码管显示函数。这样应该就可以解决问题。但是如果问题还是没有解决的话,大家可能就需要考虑一下,调整一下我们的程序(调整那个占时太长的函数),通过去设置它的一些启用条件,让它在我们的主程序的while循环中少出现几次,或是将它进行一个拆分,分别设置进入子函数的条件,达到我们一个减少他们占时的目的。

  标签:数码管线路板数码管线路板.jpg


联系我们

  • 电话:15820766688
  • 手机:18877857888
  • QQ:178989139
  • 邮箱: feng61150700@126.com
  • 地址:深圳市宝安区松岗东方大道20号鑫浩顺智造创新园二期B栋北面三楼
  • 广西地址:广西省崇左市扶绥县空港大道标准厂房4号楼

联系我们

膜王(深圳)公司

地址:深圳市宝安区松岗街道东方社区大田洋南六路4号鑫浩顺智造创新园 B栋301
手机:15820766688
手机:18877857888
邮箱:feng61150700@126.com
深圳:0755-29917 109
广西:0771- 7555190
网址: