定时器0工作在2模式下,采用中断计时,计数满100,p0口0位改变电位。
示波器显示周期为51.2ms,为什么去掉while(1){ },周期变为512us,求解释。
还有就是定时器在工作的时候,能不能对TH0,TL0进行赋值。
#include<reg52.h>
sbit p00=P0^0;
static unsigned int i;
void main()
{
EA=1;
ET0=1;
TMOD=0x02;
TR0=1;
TH0=0;TL0=0;
while(1){ }
}
void T0_int () interrupt 1
{i++;
if(i>=100){i=0;p00=!p00;}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
程序跑飞?怎么周期正好是1000倍啊。main()里面的语句是不是执行完最后一行就接着从main()第一条语句重新循环?
理论上是执行完最后一句后就从第一句重新开始执行。但是这并没有可靠的依据。
一周热门 更多>