51单片机,数码管动态显示,不影响其它程序

我写好了 数码管动态显示的程序,
可是如果我主程序执行其它的,它就显示最后一位。
怎么让数码管一直显示一个数,然后主程序同时还能运行其它的。
然后定期更新显示的数字。
比如显示温度,然后隔1秒更新一次显示的数字。
读温度传感器,更新显示的数字,如此重复。
void display(uint num)
{
uchar i;
play[0]=num/1000;
play[1]=num%1000/100;
play[2]=num%100/10;
play[3]=num%10;

for(i=0;i<4;i++)
{
DOT=1;
P0=~table[play[i]];
DOT=0;
P0=0xff;
SEG=1;
P0 =(1 << i);
SEG=0;
delay(1);
}

}

就在主程序里反复调用 改变变化数字,用暂存最好 要改变的时候改变暂存就可以了 不影响其他程序 如果闪就可以改变显示子程序的延时子程序时间
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-19
动态扫描程序放定时器中断里面做,nMS进一中断。
第2个回答  推荐于2016-08-30
动态显示程序,必须不停的、反复的调用。
稍有停顿,就只能看见最后显示的一位字符。

解决方法,可以参考我以前回答的问题:
http://zhidao.baidu.com/question/408722818.html追问

可是如果要处理其它模块,怎么办?

追答

如果其它模块,比较费时,就应该在它的处理过程中间,调用显示程序,否则就会黑屏。
编程人,就应该协调好这些模块的关系。
到我的百度空间看看吧,有很多的实例。

本回答被提问者采纳
相似回答