单片机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\实验例程\基础实验\实验八

版权声明:
作者:wawooo
链接:http://www.wawooo.com/147.html
来源:挖窝网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
手机浏览