i没赋值,怎么有详细数字赋值到“i<50”,
时间:10-02
整理:3721RD
点击:
i没赋值,怎么有详细数字赋值到“i<50”,
#include<reg51.h>
#include<intrins.h>
#define LED1 P2
sbit K1=P3^0;
void Delay10ms();
void main(void)
{unsigned int i,j;
j=0xfe;
while(1)
{LED1=j;
if(K1==0)
{Delay10ms();
if(K1==0)
{
j=_cror_(j,1);
while((i<50)&&(K1==0))
{Delay10ms();
i++;
}
i=0;
}}}
}
void Delay10ms()
{unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);}
#include<reg51.h>
#include<intrins.h>
#define LED1 P2
sbit K1=P3^0;
void Delay10ms();
void main(void)
{unsigned int i,j;
j=0xfe;
while(1)
{LED1=j;
if(K1==0)
{Delay10ms();
if(K1==0)
{
j=_cror_(j,1);
while((i<50)&&(K1==0))
{Delay10ms();
i++;
}
i=0;
}}}
}
void Delay10ms()
{unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);}
一般情况下,这个i刚开始时=0
但是我把"i=0;”剪切到"j=0xfe; "后面就不能延时点亮LED了,但是还是能瞬间点亮灯
那肯定不行了,i=0永远都执行不到了
你放到while(1)前面了就不行了
但是还是能重复依次瞬间点亮灯,因此看起来全是一起点亮了,不是应该只延时并点亮一次吗
程序是为了50次的10ms延时,i不清零就不能执行延时程序了,那不是就飞快的点亮每个灯,看着就是全亮的了
