while(1)
{
if(t==10) //定时器
{
t=0;
temp++;
if(temp==9999)
temp=0;
}
display(temp) ; //显示任意4位数
}
这个程序中display函数写在if循环外面,能够正常执行,
但是如果下载if里面,就会出错,它将显示个位从1-9,
然后高位一直闪烁。不能像写在外面那样定住,非常疑惑,
因为,其他程序根本没有变化,但是这一句变化却会有这样的改变,不知道为什么。
希望有人解惑,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
首先你可以看你的主循环里面的if语句,按照你的程序应该是1s进入次对吧,然后你在看看你的显示程序display;你是通过放在主循环里面让display不停的内循环来扫描你的四位数码管(这种做法本来就有问题),其实你这种做法能显示出来都是靠你的delay函数延时你才能勉强显示出来的,如果我估计的没错的话,你所谓能够正常显示,估计高位会比较亮低三位会比较亮的多好回过头来,假如把display放到if语句里面去是不是就等于1s钟我再来扫描一次显示呢,那我们肉眼看到是不是就是会看到你的数码是1s钟闪烁一次
谢谢,楼上给我讲的很详细,我已经懂了
一周热门 更多>