找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2128|回复: 9
收起左侧

大神们帮我看一下,我这单片机数码管为啥总是显示不对?

[复制链接]
ID:288012 发表于 2019-3-24 17:01 来自手机 | 显示全部楼层 |阅读模式
我用的是单片机连接两个锁存器74hc573,分别控制断选和位选,想在第二位显示个零,编程如图一,然后显示是图二,可知是高电平有效,然后我进行修改,编程如图三,显示如图四,为啥不对呢,怎么弄也不对,我这画的电路也没问题啊?!
3f 20190324164237.png
3fc 20190324164301.png
c0c 20190324164149.png
c0  20190324164113.png
回复

使用道具 举报

ID:234075 发表于 2019-3-24 23:13 | 显示全部楼层
你需要在main()主函数最后添加“while(1);”语句
回复

使用道具 举报

ID:96682 发表于 2019-3-24 23:20 | 显示全部楼层
上图可看做数字 0
下图看看做数字 6

是数码管选错了
回复

使用道具 举报

ID:164602 发表于 2019-3-25 08:40 | 显示全部楼层
把你的显示码取反显示就对了。
你看嘛,显示0时,只显示中间一横,就是共阳共阴的数码管不同之处。
回复

使用道具 举报

ID:288012 发表于 2019-3-25 09:31 来自手机 | 显示全部楼层
zhb2004xp 发表于 2019-3-24 23:13
你需要在main()主函数最后添加“while(1);”语句

感谢大神,成了!
回复

使用道具 举报

ID:288012 发表于 2019-3-25 12:34 来自手机 | 显示全部楼层
wc86110 发表于 2019-3-24 23:20
上图可看做数字 0
下图看看做数字 6


已经解决了,第一个说的是对的,谢谢啦
回复

使用道具 举报

ID:288012 发表于 2019-3-25 12:35 来自手机 | 显示全部楼层
HC6800-ES-V2.0 发表于 2019-3-25 08:40
把你的显示码取反显示就对了。
你看嘛,显示0时,只显示中间一横,就是共阳共阴的数码管不同之处。

已经解决了
回复

使用道具 举报

ID:451718 发表于 2019-3-25 14:08 | 显示全部楼层
如果是在真实环境下, 出现的问题可能又不一样了。 这个proteus只能模拟出结果,并不能很好的模拟出过程。
回复

使用道具 举报

ID:288012 发表于 2019-3-25 17:06 来自手机 | 显示全部楼层
zhb2004xp 发表于 2019-3-24 23:13
你需要在main()主函数最后添加“while(1);”语句

你好,虽然解决了,但为什么要加个死循环呢,为什么点个灯就不需要呢,同样都是这样的控制方法
回复

使用道具 举报

ID:451718 发表于 2019-3-27 08:55 | 显示全部楼层
while(1)就是为了控制程序程序不要乱跑。 在有操作系统的C语言运用中,一个程序完结,一般都是执行一个操作,或者提供一个服务。程序结构一般都是从开始到结束。结束后,系统会释放这个程序执行时内存,直到下次再被调用。程序的调用都是有操作系统来控制的。
但是51单片机中, 没有操作系统,所以必须要用一个死循环语句,把程序停留在最后的状态,或者用一个死循环,让程序不断的重复执行。  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表