标题: 大神们帮我看一下,我这单片机数码管为啥总是显示不对? [打印本页]

作者: wswymy    时间: 2019-3-24 17:01
标题: 大神们帮我看一下,我这单片机数码管为啥总是显示不对?
我用的是单片机连接两个锁存器74hc573,分别控制断选和位选,想在第二位显示个零,编程如图一,然后显示是图二,可知是高电平有效,然后我进行修改,编程如图三,显示如图四,为啥不对呢,怎么弄也不对,我这画的电路也没问题啊?!

3f 20190324164237.png (51.09 KB, 下载次数: 39)

3f 20190324164237.png

3fc 20190324164301.png (130.37 KB, 下载次数: 33)

3fc 20190324164301.png

c0c 20190324164149.png (55.06 KB, 下载次数: 24)

c0c 20190324164149.png

c0 20190324164113.png (128 KB, 下载次数: 25)

c0  20190324164113.png

作者: zhb2004xp    时间: 2019-3-24 23:13
你需要在main()主函数最后添加“while(1);”语句

作者: wc86110    时间: 2019-3-24 23:20
上图可看做数字 0
下图看看做数字 6

是数码管选错了
作者: HC6800-ES-V2.0    时间: 2019-3-25 08:40
把你的显示码取反显示就对了。
你看嘛,显示0时,只显示中间一横,就是共阳共阴的数码管不同之处。
作者: wswymy    时间: 2019-3-25 09:31
zhb2004xp 发表于 2019-3-24 23:13
你需要在main()主函数最后添加“while(1);”语句

感谢大神,成了!
作者: wswymy    时间: 2019-3-25 12:34
wc86110 发表于 2019-3-24 23:20
上图可看做数字 0
下图看看做数字 6


已经解决了,第一个说的是对的,谢谢啦
作者: wswymy    时间: 2019-3-25 12:35
HC6800-ES-V2.0 发表于 2019-3-25 08:40
把你的显示码取反显示就对了。
你看嘛,显示0时,只显示中间一横,就是共阳共阴的数码管不同之处。

已经解决了
作者: robinsonlin    时间: 2019-3-25 14:08
如果是在真实环境下, 出现的问题可能又不一样了。 这个proteus只能模拟出结果,并不能很好的模拟出过程。
作者: wswymy    时间: 2019-3-25 17:06
zhb2004xp 发表于 2019-3-24 23:13
你需要在main()主函数最后添加“while(1);”语句

你好,虽然解决了,但为什么要加个死循环呢,为什么点个灯就不需要呢,同样都是这样的控制方法
作者: robinsonlin    时间: 2019-3-27 08:55
while(1)就是为了控制程序程序不要乱跑。 在有操作系统的C语言运用中,一个程序完结,一般都是执行一个操作,或者提供一个服务。程序结构一般都是从开始到结束。结束后,系统会释放这个程序执行时内存,直到下次再被调用。程序的调用都是有操作系统来控制的。
但是51单片机中, 没有操作系统,所以必须要用一个死循环语句,把程序停留在最后的状态,或者用一个死循环,让程序不断的重复执行。  




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1