楼主:
上面
@haolizhong4924 网友说的太好了。
另外我想补充一点:
上面说的:要执行的任务,都可以写进中断函数里,这是常见的办法。
不过,如果想把操作直接写到主程序里,用查询中断的办法来定时,也不是不可以的。
只是直接查TF0比较啰嗦,需要考虑细节,而且如果换一种CPU没有这个TF0标志就更不好办了。
查询中断,比较通用的办法是查询一个自己定义的变量,这个变量在中断服务程序里赋值即可。
例如,前面的
for (T=0;T<40;T++)
{
while(TF0==0);
}
如怕TF0读取不确定,那么可以不管TF0。把这个for语句整个换成以下两行:
T=0;
while(T<40);
同时,在中断服务程序Timer0()里面添加一条T++;
就可以实现延时两秒钟了。