首先我们来讲一下数码管不能正常显示的原因。一个可能的原因,数码管不能正常显示,是因为上一次P0口的数据有所残留,与这次我们输出的数据发生了冲突,导致了数码管的异常显示。
二个可能的原因,P0口输出数据后,你的延时不正确,过长或是过短都会导致函数的一个异常显示。
三个可能的原因,你程序里面有其它的函数执行时间过长,导致数码管显示函数这儿给各个位分配的时间出现了大幅度偏差,数码管的后一位会比其它几位亮。
上面讲完了数码管不能正常显示的一些原因,我们接下来就讲一下,如何解决问题。
我们对于数码管的显示,常用的一个方法就是使用延时函数,让我们输出的数据在我们的数码管上停留一段时间,然后换另外一个位,再输出一个数据,然后接着停留一段时间,以此类推。那么我们停留多长时间才正确呢?经过我的经验,我们在选定数码管显示的位后,显示的延时为1ms是比较合适的。当然大家也可以试试其它的一个延时。这样一般都能够正常显示了。
另外还有就是数码管上一个数据残留的问题,对于这个问题,因为蓝桥杯单片机比赛的这一个竞赛版是使用了锁存器来对数码管进行一个操作。在打开锁存器之前,对P0口的任何操作,都不会影响到我们的Q数据端。所以为了消除上一个数据的影响,我们完全可以在打开锁存器前,将我们的数据传给P0接着再打开锁存器,延时一段时间,这样就可以解决问题了。当然需要提醒的一点是,如果我们这样进行操作,那么每次我们打开锁存器之后,一定要记住关掉它,否则一但你提前输入下一个位的数据时,上一个位的锁存器还没关掉,这不就对它做出了一个不希望有的操作吗?这肯定是有问题的。
标签:数码管线路板
地址:深圳市宝安区松岗街道东方社区大田洋南六路4号鑫浩顺智造创新园 B栋301
手机:15820766688
手机:18877857888
邮箱:feng61150700@126.com
深圳:0755-29917 109
广西:0771- 7555190
网址: