4.5 break语句
在一个循环程序中,可以通过循环语句中的表达式来控制循环程序是否结束,除此之外,
还可以通过break 语句强行退出循环结构。
例 4:开机后,全部LED 不亮,按下K1 则从LED1 开始依次点亮,至LED8 后停止并
全部熄灭,等待再次按下K1 键,重复上述过程。如果中间K2 键被按下,LED 立即全部熄
灭,返回起始状态。
#include "reg51.h"
#include"intrins.h" //该文件包含有_crol_(⋯)函数的说明
void mDelay(unsigned int DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;}
}
}
void main()
{ unsigned char OutData=0xfe;
unsigned char i;
while(1)
{ P3|=0x3c;
if((P3|0xfb)!=0xff) //K1 键被按下
{ OutData=0xfe;
for(i=0;i<8;i++)
{ mDelay(1000); /*延时1000 毫秒*/
tmp=0xfe;
if((P3|0xf7)!=0xff) //K2 键被按下
break;
OutData=_crol_(OutData,i);
P1&=OutData;
}
}
P1=0xff;
}
}
请读者输入程序、建立工程,使用实验仿真板或者实验板来验证这一功能,注意,K2
按下的时间必须足够长,因为这里每1s 才会检测一次K2 是否被按下。
程序分析:开机后,当检测到K1 键被按下,执行一个:
for(i=0;i<8;i++)
{…}
的循环,即循环8 次后即停止,而在这段循环体中,又用到了如下的程序行:“
if((P3|0xf7)!=0xff) break;”即判断K2 是否按下,如果K2 被按下,则立即结束本次循
环。
还可以通过break 语句强行退出循环结构。
例 4:开机后,全部LED 不亮,按下K1 则从LED1 开始依次点亮,至LED8 后停止并
全部熄灭,等待再次按下K1 键,重复上述过程。如果中间K2 键被按下,LED 立即全部熄
灭,返回起始状态。
#include "reg51.h"
#include"intrins.h" //该文件包含有_crol_(⋯)函数的说明
void mDelay(unsigned int DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;}
}
}
void main()
{ unsigned char OutData=0xfe;
unsigned char i;
while(1)
{ P3|=0x3c;
if((P3|0xfb)!=0xff) //K1 键被按下
{ OutData=0xfe;
for(i=0;i<8;i++)
{ mDelay(1000); /*延时1000 毫秒*/
tmp=0xfe;
if((P3|0xf7)!=0xff) //K2 键被按下
break;
OutData=_crol_(OutData,i);
P1&=OutData;
}
}
P1=0xff;
}
}
请读者输入程序、建立工程,使用实验仿真板或者实验板来验证这一功能,注意,K2
按下的时间必须足够长,因为这里每1s 才会检测一次K2 是否被按下。
程序分析:开机后,当检测到K1 键被按下,执行一个:
for(i=0;i<8;i++)
{…}
的循环,即循环8 次后即停止,而在这段循环体中,又用到了如下的程序行:“
if((P3|0xf7)!=0xff) break;”即判断K2 是否按下,如果K2 被按下,则立即结束本次循
环。