keil的if语句和C语⾔不⼀样,基于proteus的51单⽚机仿真实例
⼆⼗⼋、C语⾔的i。。。
1、⼀个完整的C语⾔程序是由若⼲条语句按⼀定的⽅式组合⽽成的。按C语⾔语句执⾏⽅式的不同,C程序可分为以下三种:顺序结构、选择结构、循环结构。
顺序结构:程序按语句的顺序逐条执⾏;
选择结构:程序根据条件选择相应的执⾏顺序;
循环结构:程序根据某种条件,只要满⾜这个条件,就重复执⾏某段程序,直到条件不满⾜为⽌。如果这个条件永远存在,就形成⼀个死循环。死循环在单⽚机的C语⾔程序中普遍存在,最典型的例⼦就是每个程序的主函数中都有⼀个死循环(也成⽆限循环)while(1);
⼀般的C程序可以包含全部以上三种结构,也可以只包含⼀种或两种结构。
2、要保证C语⾔程序能够按照预期⽬的运⾏,还需要⽤到⼀些特殊语句对程序进⾏控制。
一个完整的c语言程序
1)控制语句
控制语句完成⼀定的控制功能,C语⾔中有9中控制语句
if()...语句:条件语句
for()...语句:循环语句
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
}
这种条件语句经常⽤来实现多种条件的判断,它是由if-else语句嵌套⽽成的,在这种结构⾥,else总是与距它最近的if相配对。
4、本例⼦⽤if语句控制p0⼝的8个led的点亮状态,要求程序利⽤if语句判断两个按键是否被按下了,当检测到其中⼀个按键按下时,利⽤LED灯的状态指⽰那个按键被按下了
5、在keil c51中新建⼯程ex17,编写如下程序代码,并编译⽣成ex17.hex⽂件
//实例17:if条件判断语句试验
#include //包含头⽂件
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被按下时,执⾏结果如下图所⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。