基于proteus的51单片机仿真实例二十八、C语言的if条件语句演示实例

来源:互联网 发布:ftp文件下载 java 编辑:程序博客网 时间:2024/06/05 08:04
1、一个完整的C语言程序是由若干条语句按一定的方式组合而成的。按C语言语句执行方式的不同,C程序可分为以下三种:顺序结构、选择结构、循环结构。
顺序结构:程序按语句的顺序逐条执行;
选择结构:程序根据条件选择相应的执行顺序;
循环结构:程序根据某种条件,只要满足这个条件,就重复执行某段程序,直到条件不满足为止。如果这个条件永远存在,就形成一个死循环。死循环在单片机的C语言程序中普遍存在,最典型的例子就是每个程序的主函数中都有一个死循环(也成无限循环)while(1);
 
一般的C程序可以包含全部以上三种结构,也可以只包含一种或两种结构。
 
2、要保证C语言程序能够按照预期目的运行,还需要用到一些特殊语句对程序进行控制。
1)控制语句
控制语句完成一定的控制功能,C语言中有9中控制语句
if()...else...语句:条件语句
for()...语句:循环语句
while()...语句:循环语句
do...while()语句:循环语句
continue语句:结束本次循环语句
break语句:中止循环执行语句
switch语句:多分支选择语句
goto语句:跳转语句
return语句:从函数返回语句
2)函数调用语句
函数调用语句调用已定义过的函数(注意,一定是调用已定义过的函数,没有定义过的函数不能调用)。
3)表达式语句
一个表达式后面加一个分号“;”就构成了表达式语句
4)空语句
空语句不执行任何操作,常用于消耗机器周期,延时等待等用途。
5)复合语句
用一对大括号“{}”把一些语句括起来就构成了复合语句。在上一节的实例中我们已经学习了这种语句的用法。
 
3、if语句
if语句用来判断所给定的条件是否满足,根据判定结果选择执行给出的操作。if语句有3种基本形式
1)if(表达式)
{
...
}
....
该if语句的执行情况为:先判断表达式的结果是否为真(非0值),如果为真,则执行大括号内的语句,否则不执行大括号内的语句。
语句示例如下:
if(i==0)
{
m=10;
}
...
这条语句所实现的功能是:如果变量i等于0,则给变量m赋值为10,否则m=10这个语句不会被执行
2)if(表达式)
     {
         语句1
      }
   else
     {
        语句2
     }
其含义是:若条件表达式的结果为真,则执行语句1,否则,如果条件表达式的结果为假,则执行语句2.这里的语句1和语句2均可以是单个语句,也可以是复合语句
3、if(表达式1)
   {
      语句1
    }
    else if(表达式2)
   {
       语句2
    }
    else if(表达式3)
   {
       语句3
    }
    ....
   else
   {
       语句n
    }
这种条件语句经常用来实现多种条件的判断,它是由if-else语句嵌套而成的,在这种结构里,else总是与距它最近的if相配对。
 
4、本例子用if语句控制p0口的8个led的点亮状态,要求程序利用if语句判断两个按键是否被按下了,当检测到其中一个按键按下时,利用LED灯的状态指示那个按键被按下了
5、在keil c51中新建工程ex17,编写如下程序代码,并编译生成ex17.hex文件
//实例17:if条件判断语句试验
#include <reg51.h>           //包含头文件
sbit S1 = P1^0;      // 将S1位定义为P1.0引脚
sbit S2 = P1^1;     //  将S2位定义为P1.1引脚
   
void main(void)

 
 while(1)     //
 {
   if(S1 ==0)   //判断S1按键是否按下
  {
    P0 = 0x0f;  //如果S1按键按下,P0口高四位LED点亮
  }
  if(S2 == 0)    // 判断S2按键是否按下
  {
   P0 = 0xf0;   //如果S2按键按下,P0口低四位LED点亮
  }   
 }
}
6、在proteus中新建仿真文件ex17.dsn,原理图如下所示。

 
7、将ex17.hex文件载入单片机at89c51,启动仿真,观察运行效果
当按键S2被按下时,执行结果如下图所示

当按键S1被按下时,执行结果如下图所示


0 0
原创粉丝点击