用户工具

站点工具


侧边栏

抱歉,您没有权限增加页面
3.单片机c语言:3.if判断条件流水灯

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

关于if else这种分支自己给自己出个题目来做吧,挑战一下自己,你行的,男人不能说不行……

3.单片机c语言/3.if判断条件流水灯.txt · 最后更改: 2017/02/24 13:59 由 wawooo