基于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点亮
}
}
}
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
- 基于proteus的51单片机仿真实例二十八、C语言的if条件语句演示实例
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 基于proteus的51单片机仿真实例二十三、C51条件运算符演示实例
- 基于proteus的51单片机仿真实例三十三、C语言的goto无条件转移语句演示实例
- 基于proteus的51单片机仿真实例四十二、C语言的二维数组演示实例
- 基于proteus的51单片机仿真实例四十三、C语言的字符串数组演示实例
- 基于proteus的51单片机仿真实例四十四、C语言的结构体演示实例
- 基于proteus的51单片机仿真实例四十五、C语言的共用体演示实例
- 基于proteus的51单片机仿真实例四十六、C语言的枚举类型演示实例
- 基于proteus的51单片机仿真实例四十七、C语言的指针演示实例
- 基于proteus的51单片机仿真实例四十八、C语言的指针数组演示实例
- 基于proteus的51单片机仿真实例四十九、C语言数组的指针演示实例
- 基于proteus的51单片机仿真实例二十一、C语言的自增和自减运算演示实例
- 基于proteus的51单片机仿真实例十五、51单片机的C语言条件编译应用实例
- 基于proteus的51单片机仿真实例二十九、C语言的switch-case多分支选择语句
- 基于proteus的51单片机仿真实例二、关于proteus
- 基于proteus的51单片机仿真实例三十、C语言的for循环语句
- 基于proteus的51单片机仿真实例三十一、C语言的while循环语句
- 智能一代云平台(二十一):生产环境Nginx报 502 Bad Gateway 问题复现及解决方案
- Unix时间戳转php日期
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 采样方法(一)
- 如何玩转谷歌浏览器
- 基于proteus的51单片机仿真实例二十八、C语言的if条件语句演示实例
- 金币 改进
- 基于proteus的51单片机仿真实例二十九、C语言的switch-case多分支选择语句
- 程序员不需要知道太多的数学
- Qt之基础窗口部件
- 1091 线段的重叠
- 数学思维正在改变着我们的生活
- 基于proteus的51单片机仿真实例三十、C语言的for循环语句
- 1047. 编程团体赛