用户工具

站点工具


侧边栏

抱歉,您没有权限增加页面
3.单片机c语言:5.do-while循环

八位流水灯学单片机C语言之do…while循环语句

上面讲过while语句,这节来看do……while语句,do-while语句的一般形式为:

     do
       {
         语句;
       }
     while(表达式);

这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此, do-while循环至少要执行一次循环语句。来看个例子,用do-while语句计算从1加到100的值。

    #include <stdio.h>
    int main(void)
    {
        int i,sum=0;
        i=1;

        do
           {
            sum=sum+i;
            i++;
           }
        while(i<=100);

        printf("%d\n",sum);
        return 0;
    }

使用do while循环语句和运算符实现的流水灯代码如下:

#include<stc12.h> //STC12头文件
sbit LEDK = P1^4;//控制三极管基极 
				
void main(void)
{   
    unsigned int i,t; //定义局部变量
    LEDK=0;  //置0使PNP型三极管导通LED负极接地
    P0M1=0x00;
    P0M0=0xff; //P0口全部设置为推挽输出 见手册87页 IO口模式配置
	while(1)
	{
	  i=1;//i重新赋值为1
	  do   //do while先执行后判断 while条件成立继续循环 不成立结束循环
	  {
	      P0=i; //i的值赋到P0口 
	      i=i*2;//每次i*2 循环 1 2 4 8 16 32 64 128转为16进制即为点亮每个灯的值
	      for(t=0;t<50000;t++); //延时一会

	  }while(i<256);  //i小于128时条件成立 继续循环

	  P0=0x00; //i大于256时不成立跳出do while循环 关闭所有LED
	  for(t=0;t<50000;t++);//延时一会
	}
}
  以上代码完整工程在\STC51 Discovery\实验例程\基础实验\实验八
3.单片机c语言/5.do-while循环.txt · 最后更改: 2017/02/26 20:41 由 wawooo