微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > i没赋值,怎么有详细数字赋值到“i<50”,

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--);}

一般情况下,这个i刚开始时=0

但是我把"i=0;”剪切到"j=0xfe; "后面就不能延时点亮LED了,但是还是能瞬间点亮灯

那肯定不行了,i=0永远都执行不到了
你放到while(1)前面了就不行了

但是还是能重复依次瞬间点亮灯,因此看起来全是一起点亮了,不是应该只延时并点亮一次吗

程序是为了50次的10ms延时,i不清零就不能执行延时程序了,那不是就飞快的点亮每个灯,看着就是全亮的了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top