if(124<=KM&&KM<=308)j=i2*25+j1;
if(309<=KM&&KM<=494)j=i1*25+j1;
if(495<=KM&&KM<=578)j=i2*25+j1;
按照这三句修改,其他照抄
你的错误是因为数学思想带到编程里来了,比如1/2在数学里是0.5,但是在编程就是0,除非是1.0/2.0那就等于0.5。
同理124<=KM<=308,在数学上是成立的默认他们是且得关系,但是编程时且关系必须要用&&表示
void tt1() interrupt 3
{
TH1=-j/256;
TL1=-j%256;
KM++;
if(KM<=123)j=i1*25+j1;
if((KM>123)&&(KM<=308))j=i2*25+j1;
if((KM>308)&&(KM<=494))j=i1*25+j1;
if((KM>494)&&(KM<=578))j=i2*25+j1;
if(KM>578)
{
if(KM>=740)KM=0;
j=i2*25+j1;
if(C1==0)KM=0;
}
if(Q1==0)cl=!cl; //产生脉冲
if(Q1==1)cl=cl;
}