急 !!4位数码管动态扫描 各位显示都不正确 调了一天了 都不知是怎么回事 求高人指教 万分感谢!!

2024-12-01 04:20:04
推荐回答(3个)
回答1:

你对BIT(3)的处理是对的,为什么BIT(2)都错了呢?
PORTD|=BIT(2);//如果这个是关
PORTD&=~BIT(2);//那这个才是开
自己改一下吧。不过还有错,看完再改。
你位选没关就改了段选并开了段选,当然会输出在了错误的位置上,即使时间再短也会有淡淡的虚影。
建议关位选,关段选,送段码,开段选,送位码,开位选,延时2ms,这样就能显示一位,不断循环,让4位轮流显示,就可以看到很稳定的效果了。4位数码管的话,每位不要超过5ms

回答2:

授人以鱼,不如授人以渔。搞嵌入式设计将来遇到的问题何止千百。
感谢对我的信任,由于时间问题我只说下如何对待这样的问题吧,对于你将来的工作会有帮助的:
------ 将问题缩小范围。比如:每一个小的部分代码是否能正确执行,需要验证。每个数码管我用静态方式先显示一下,验证段位码是否都对,硬件驱动有没有问题。然后我再试验动态,每次加入很少的代码。这个程序很快就能验证完成,很容易发现是哪个环节的问题。
------程序不要一下子编完。特别是不太熟练的情况下,代码编多了遇到问题不好判读是哪出的问题,还是要分解开来验证,在时间上会浪费很多。

回答3:

这是AVR?