我的为什么不行
我的程序如下,但当计数超过65536后,zscount一直为零,为何?
unsigned char count,T0H;
long zscount;
TMOD = 0x1D;//t1 定时器,t0 计数器
ET1 = 1;
ET0 = 1;
IT0 = 1;
EX0 = 1;
PT0 = 1;
TH1 =0x3c ;//per 50ms
TL1 = 0xb0;
TR1 = 1;
TR0 = 1;
EA = 1;
TH0 = 0x00;TL0 = 0x00;
T0H =0;
//////////////////
void Int0(void) interrupt 0 using 2
{
if(bFlag==0)
{
P1_4 = 1;
bFlag = 1;
}
else
{
P1_4 = 0;
bFlag = 0;
}
}
void timer0(void) interrupt 1 using 3
{
// TR0 = 0;
T0H++;
TH0 = 0;TL0 = 0;
// TR0=1;
}
void timer1(void) interrupt 3 using 1
{
TR1 = 0;
TH1 =0x3c ;
TL1 = 0xb0;
count++;
if(count == 20)//per 1s
{
count = 0;
zscount = T0H < < 8;
zscount < <=8;
zscount += (unsigned long)TH0 < <8;
zscount = zscount + TL0;
TH0 = 0;TL0 = 0;
//T0H = 0;
}
TR1 = 1;
}
发表时间:2003年4月26日13:18:15