排查原因的顺序是:
1. 首先检查单个管是否有问题,因为不知道你是哪种数码管,不过一般数码管(单数字的)只要能完整显示8就是对的,甚至可以直接接来全亮显示8(不接控制,只给相应管脚置位即可,也可以一个笔划一个笔划的测试,如果都能亮,一般也没有问题)
2.如果上1步成功了,再接上实际电路,这里主要看控制的片选信号是否正常(包括软件和电路连接,需要单独的程序来测试),可以先一位数字一位数字的点亮测试
3.在前面基础上上实际的程序,排查程序问题,当然还有一种可能是电源供应问题,可能因为电源供应不足,造成临时一些数码段位显示不足,这个排查又要分成至少2步,其一是在程序中通过屏蔽其他位数字的显示依次让每位数码管全亮和显示各个可能数字/字符,以保证在程序大致逻辑没有问题;其二是依次全亮多个数码管位,如果亮到一定层度就开始有缺位,则可能要检查相应电源供应了。
可以一个一个数码管来慢慢排查,先每个段点都点亮一下,确认下是否是硬件上的问题,和软件设计上预知点亮的段点是否符合,排除软件问题。
然后再做动态扫描,速度一开始可以不用太快,或者单步运行。慢慢排查出问题点。