单片机C语言入门之三if判断语句流水灯

下面来看if语句,用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。第一种形式为基本形式if

if(表达式) 语句。

其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。

例子:

unsigned char a = 5;
unsigned char a = 6;
if(a < b)
{
  printf("a小于b\n");
}

第二种形式为: if-else
if(表达式)  
  语句1;  
else  
  语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。
例子:
unsigned char score = 100;
if(score==100)
{
  printf("你考了一百分\n");
}
else
{
  printf("不及格,把党章再抄一遍\n");
}

第三种形式为if-else-if形式,前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句,其一般形式为:

if(表达式1)
    语句1;
else  if(表达式2)  
    语句2;
else  if(表达式3)  
    语句3;
        …  
else  if(表达式m)  
    语句m;
else 
    语句n;

其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。

例子:
unsigned char age = 35;
if(age < 18)
{
  printf("你是小孩子\n");
}
else if(age >= 60)
{
  printf("你是位老人\n");
}
else
{
  printf("你正当青年啊, 小伙子!\n");
}

下面来看,定义一个整形变量初值设为256,用它来除以一个数,使用if语句判断值是否相等,相等就点亮LED。先抄一遍吧,然后再理解其含义,代码如下:

#include<stc12.h> //STC12系列头文件 复制到工程目录下

sbit LEDK = P1^4;// 控制三极管基极

void main(void)
{   
	unsigned int i=256,t=0; //变量i的值初始化为256
        LEDK=0;  //置0使PNP型三极管导通LED负极接地
        P0=0x00;	//P0口电平初始化为0 关闭全部LED
        P0M1=0x00;
        P0M0=0xff; //P0口全部设置为推挽输出 见手册87页 IO口模式配置
	while(1)
	{
	  if(i/2==128)//判断除以2是否等于128,等于则进入if语句执行
	  {
	    P0=0x01;//P0赋值0x01 点亮P0口最低位的LED
	  }
	  for(t=0;t<50000;t++); //延时一会
	  if(i/4==64)//判断除以4是否等于64,等于则进入if语句执行
	  {
	    P0=0x02;//P0赋值0x02 点亮P0口第二个LED
	  }
	  for(t=0;t<50000;t++);
	  if(i/8==32)
	  {
	    P0=0x04;
	  }
	  for(t=0;t<50000;t++);
	  if(i/16==16)
	  {
	    P0=0x08;
	  }
	  for(t=0;t<50000;t++);
	  if(i/32==8)
	  {
	    P0=0x10;
	  }
	  for(t=0;t<50000;t++);
	  if(i/64==4)
	  {
	    P0=0x20;
	  }
	  for(t=0;t<50000;t++);
	  if(i/128==2)
	  {
	    P0=0x40;
	  }
	  for(t=0;t<50000;t++);
	  if(i/256==1)
	  {
	    P0=0x80;
	  }
	  for(t=0;t<50000;t++);

	}
}

以上代码完整工程在\STC51 Discovery\实验例程\基础实验\实验五

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

THE END
分享
手机浏览