单片机定时器while(1)应用
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
sbit FM=P2^3;
void Init_Timer(void)
{
TMOD|=0X01;
TH0=0Xff;
TL0=0Xfc;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
int i;
Init_Timer();
while(1);
{
for(i=0;i<=20;)
{ if(TF0==1)
{
TF0=0;
TH0=0Xff;
TL0=0Xfc;
}
i++;
}
}
}
void Timer_isr(void) interrupt 1 using 3
{
TH0=0Xff;
TL0=0Xfc;
FM=~FM;
} 为什么它不执行while(1)里面的语句呢,,,,我想让它循环20次,,,定时1s
sbit FM=P2^3;
void Init_Timer(void)
{
TMOD|=0X01;
TH0=0Xff;
TL0=0Xfc;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
int i;
Init_Timer();
while(1);
{
for(i=0;i<=20;)
{ if(TF0==1)
{
TF0=0;
TH0=0Xff;
TL0=0Xfc;
}
i++;
}
}
}
void Timer_isr(void) interrupt 1 using 3
{
TH0=0Xff;
TL0=0Xfc;
FM=~FM;
} 为什么它不执行while(1)里面的语句呢,,,,我想让它循环20次,,,定时1s
while(1);
条件为真,永远停在这里了,
要把分号去掉。
真的是非常感谢,,,,没注意那个分号;呵呵 感谢!
呵呵~往往就是这么一个小错误就会纠结半天~
呵呵,我也有过这样的错误
初学者经常会遇到这样的事,我也是过来人。哈哈。
哈哈,还真是,不过程序这东西,往往会忽略这个小错误而看不到的
没事加油努力吧啊
我看到这个程序还在想为什么这要加个分号啊?原来是个错误……哈哈
初学是会碰到很多问题,随着问题的一个个解决,进步会很明显。
即使没有那个分号,你的程序应该也没办法实现你需要的功能吧
我有个问题,时间好像没控制好吧。还 有,那个时间中断就算没有,i 还在++吧。求高手解决我的疑问。