Proteus为什么p0口接数码管显示的数字不变,电平要变

做的是秒表,p0口是十位显示口
2024-12-05 10:09:37
推荐回答(2个)
回答(1):

你用板子试一下 应该不是你程序或者电路的问题
很多用proteus模拟数码管动态显示的时候都会有这种问题 你把送段码跟位码每一句后面加个延迟再模拟就能看出来
数码管用的是视觉残留的道理,每次显示一位,显示完了换到下一位显示,每秒刷新上千次,所以你看到的才会是很多位的数字。
但是电脑显示器每秒刷新频率只有60Hz,跟真实数码管的刷新频率差得很远,只能显示出上千次变化中的几次变化。
这样的话你在电脑屏幕上看到的数码管的显示就是错误的。
最可能的情况,比如说你要在第一位显示1,第二位显示2,那么你模拟出来就是第一位跟第二位的显示是一样的,而且是1和2重叠起来的样子。
我碰到的很多问题都是,在电脑上显示是错的,但是在板子上运行就是正确的。不知道你的是不是这样。还是建议你拿真板子试一下
这些只是针对多位数码管动态显示,如果只用一位的话在模拟的时候应该不会有问题。或者你把段码跟位码分开送,比方说段码用P0,位码用其他端口,不用锁存器试试。

还有 如果你在P0口看到的电平变化只有灰色跟蓝色那就代表你没在P0口上加电阻
如果有高电平就不是电阻的问题。
我在P0口上都是并联八个脚的排阻,公共端接高电平

对了,不知道你是怎么送段码跟位码的。如果是用一个端口送然后分别锁存的话,可以试试在每一位的段码跟位码送完以后加入几句代码,P0口送0x00到段码并锁存,然后P0口送0xff到位码并锁存,也就是把段码跟位码的锁存器归零,完成了以后再开始下个循环显示下一位。

回答(2):

缺少上拉