我写了一个定时器0的延时程序,麻烦大家看看:
void timer0(uint t0)
{
uint i;
for(i=0;i
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(!TF0);
TF0=0;
}
如果实现1秒延时,直接void timer0(20)就行了.但是不知道为什么程序最后一句 TF0=0;必须要呢,不是说硬件自动置0吗?但是最后一句不能去掉,去掉就会出错,就不能延时1秒了.希望达人们帮帮小弟.小弟先谢过了!
因为你这里采用查询方式而不是中断方式,所以需要软件将TF0置零.在中断方式下TF0才会由硬件自动置零.