延时通过按键调不上去是怎么回事。按键增加延时我这设置的2000以下,最高应该能调到2000的延时,但仿真的时候延时感觉1000都加不到,点了几次增加延时按键,延时固定在那不增加了。达不到预期设定值。
int delaynum=100;
void delayms(int k)
{
int i,y;
for(i=k;i>0;i--)
for(y=120;y>0;y--);
}
void key()
{
if(key1==0)
{delayms(20);
if(key1==0)
{if(delaynum<=2000)
delaynum=delaynum+50; //按键增加延时
}
while(!key1);}
if(key2==0)
{ delayms(20);
if(key2==0)
{if(delaynum>1)
delaynum=delaynum-50; //按键减少延时
}
}
void main()
{
long p=0x7fffffff;
char i;
for(i=32-delayj;i<32;i++)
{key(); //按键扫描
led595(p=p<<1); //位移函数
delayms(delaynum); //延时函数
P0=0xf0; //LED灯
if(num!=3) //外部中断
{return;}
}
|