单片机判断语句怎么写(单片机cy怎么判断)
导语:二.单片机C语言入门之判断语句
C语言中一个相当常用的语句结构就是判断语句,判断语句结构要求程序员指定一个或者多个需要判断的条件,以及条件满足或者不满足时程序需要执行的动作(可选)。
C语言中常用的判断语句如下:
判断语句
单片机按键状态读取图
if语句的格式及用法
第一种形式
if(条件表达式)
{
条件表达式为真时需要执行的语句1;
}
语句解释:当条件表达式为真时,程序将执行语句1,如果if条件表达式不为真,将跳转到大括号外继续执行后续的语句。
举个简单的例子,单片机中一般采用IO口来读取按键的状态(硬件如上图),需要实现的是按键每按下一次,自定义变量seft_count值自加1。
按上面要求,采用判断语句的程序如下:
Unsigned int seft_count //自定义变量
if(P3^0==0) //判断按键按下
{
seft_count = seft_count+1; //变量自加1
}
第二种形式
if(条件表达式)
{
条件表达式为真时需要执行的语句1;
}
else
{
上述if条件不满足,执行语句2;
}
语句解释:当if条件表达式为真时,程序将执行语句1,如果if条件表达式不为真时,将执行语句2。
同样上面硬件,需要实现的是按键每按下一次,自定义变量seft_count值自加1,如果按键没有按下,自定义变量值seft_count值自减1。
Unsigned int seft_count //自定义变量
if(P3^0==0) //按键按下
{
seft_count = seft_count+1; //变量自加1
}
else //按键没有按下
{
seft_count = seft_count-1; //变量自减1
}
第三种形式
if(条件表达式1)
{
条件表达式1为真时需要执行的语句1;
}
else if(条件表达式2)
{
条件1不为真,条件表达式2为真时需要 执行的语句2;
}
语句解释:当if条件表达式1为真时,程序将执行语句1,如果if条件表达式1不为真时,转而判断if表达式2是否为真,如果为真则将执行语句2。如果两个条件表达式都不为真,则执行if判断后续的语句。
同样上面硬件,需要实现的是按键每按下一次,自定义变量seft_count值自加1,按键没有按下的情况下,如果自定义的变量值seft_count大于0,则自定义变量值seft_count值自减1。
Unsigned int seft_count //自定义变量
if(P3^0==0)
{
seft_count = seft_count+1;
}
else if(seft_count>0) //变量值大于0为真
{
seft_count = seft_count-1; //变量自减1
}
第四种形式
if(条件表达式1)
{
条件表达式为真时需要执行的语句1;
}
else if(条件表达式2)
{
条件1不为真,条件表达式2为真时需要执行的语句2;
}
else
{
上述条件都不满足,则执行语句3;
}
语句解释:当if条件表达式1为真时,程序将执行语句1,如果if条件表达式1不为真时,转而判断if表达式2是否为真,如果条件2为真则将执行语句2。如果两个条件表达式都不为真,则执行语句3.
同样上面硬件,需要实现的是按键每按下一次,自定义变量seft_count值自加1,按键没有按下的情况下,如果自定义的变量值seft_count大于0,则自定义变量值seft_count值自减1,如果按键没有按下,并且seft_coun也不满足大于0的情况下,清除自定义变量seft_count的值。
Unsigned int seft_count //自定义变量
if(P3^0==0)
{
seft_count = seft_count+1;
}
else if(seft_count>0)
{
seft_count = seft_count-1;
}
else
{
seft_count = 0; //变量清零
}
switch语句的格式及用法
与if判断语句非此即彼的判断不一样,switch判断的条件可以选择很多分支,简单来说,if可以看作不是甲就是乙,而switch判断的分支可以是甲乙丙丁...等等分成很细致的条件,其格式及形式如下:
switch(表达式) //也可以是变量
{
case 常量表达式1://表达式必须是常量
{语句1;}break;
case 常量表达式2://表达式必须是常量
{语句2;}break;
case 常量表达式3://表达式必须是常量
{语句3;}break;
...
default://如果上述条件都不满足
{语句n;}break;
}
语句解释:switch判断语句,直观来说就是匹配语句,语句执行时,将switch(表达式)括号里的表达式运算的结果或变量,一个个跟case的常量去匹配,当两者相等时,相等的那个case满足判断条件,如果所有case的常量都跟表达式的结果不相等,那就执行default;
同样上面硬件,需要实现的是按键每按下一次,自定义变量seft_count值自加1,当按键按10次后,自定义变量值a加10,按键按20次后,变量值a加20,按键按30次后,变量值a加30。
unsigned int seft_count;
unsigned int a;
if(P3^0==0)
{
seft_count = seft_count+1;
Switch(seft_count)
{
case 10:{a = a+10;}break;
case 20: {a = a+20;}break;
case 30:{a = a+30;}break;
default:{;}break;
}
}
注意:举例只为了直观阐明判断语句用法,不代表单片机按键扫描的现实函数就是如此,别的不说,首先按键扫描读的端口状态就不能直接作为判断按键是否按下的直接条件,单片机应用后续再介绍,此处只介绍c语言。
另外,上述阐述的是判断语句的独立用法,判断语句还可以嵌套使用,大家可以自行理解[机智]
本文内容由小心整理编辑!