程序里没有做鬼影处理。你每次显示一位数码管之后,在delay之后都将P1和P3口清空,当然是按照你的电路来写,目的就是让数码管什么也不显示。然后再次赋值显示下一位的值。建议使用定时器来显示,这样能保证每一位的亮度完全相同。
数码管的片选是低电平选中,还是高电平选中,你确认一下.