论坛数据统计           欢迎到【弱电论坛】来学习和讨论问题!

★电工电气产品供求、电气展会、人才、电气技术文章、图库、电气技术论坛等相关内容,请跳转至【电气之家网】--- 可直接使用本站会员名和密码登陆!(首次使用需要激活账户)
标王 热搜: 网络监控  弱电  机房及机柜内部的理线方法  楼宇对讲  CAD  门禁  综合布线  ar800-hn  工资  面板 
 
 
当前位置: 首页 » 技术 » 电工电子 » 单片机 » 正文

单片机的c语言教程---第八课:语句(1)-表达式语句

放大字体  缩小字体 发布日期:2008-01-24  来源:互联网  作者:manage  浏览次数:2457
核心提示:从第四课到第七课,学习了大部分的基本语法,这一课所要学习的各种基本语句的语法可以说是组成程序的灵魂。在前面的课程中的例子里,也简单理解过一些语句的用法,可以看出C语言是一种结构化的程序设计语言。C语言提供了相当丰富的程序控制语句。学习掌握这些语句的用法
 
 
从第四课到第七课,学习了大部分的基本语法,这一课所要学习的各种基本语句的语法可以说是组成程序的灵魂。在前面的课程中的例子里,也简单理解过一些语句的用法,可以看出C语言是一种结构化的程序设计语言。C语言提供了相当丰富的程序控制语句。学习掌握这些语句的用法也是C语言学习中的重点。
   表达式语句是最基本的一种语句。不同的程序设计语言都会有不一样的表达式语句,如VB就是在表达式后面加入回车就构成了VB的表达式语句,而在51单片机的C语言中则是加入分号";"构成表达式语句。举例如下:

  b = b * 10;
   Count++;
   X = A;Y = B;
   Page = (a+b)/a-1;

   以上的都是合法的表达式语句。在我收到的一些网友的Email中,发现很多初学的朋友往往在编写调试程序时忽略了分号";",造成程序不法被正常的编译。我个人的经验是在遇到编译错误时先语法是否有误,这在初学时往往会因在程序中加入了全角符号、运算符打错漏掉或没有在后面加";"。
   在C语言中有一个特殊的表达式语句,称为空语句,它仅仅是由一个分号";"组成。有时候为了使语法正确,那么就要求有一个语句,但这个语句又没有实际的运行效果那么这时就要有一个空语句。说起来就像大家在晚自修的时候用书包占位一样,呵呵。
空语句通常用会以下两种用法。

   (1)while,for构成的循环语句后面加一个分号,形成一个不执行其它操作的空循环体。我会会常常用它来写等待事件发生的程序。大家要注意的是";"号作为空语句使用时,要与语句中有效组成部分的分号相区分,如 for (;a<50000;a++);第一个分号也应该算是空语句,它会使a赋值为0(但要注意的是如程序前有a值,则a的初值为a的当前值),最后一个分号则使整个语句行成一个空循环。那么for (;a<50000;a++);就相当于for (a=0;a<50000;a++);我个人习惯是写后面的写法,这样能使人更容易读明白。

   (2)在程序中为有关语句提供标号,标记程序执行的位置,使相关语句能跳转到要执行的位置。这会用在goto语句中。
下面的示例程序是简单说明while空语句的用法。硬件的功能很简单,就是在P3.7上接一个开关,当开关按下时P1上的灯会全亮起来。当然实际应用中按键的功能实现并没有这么的简单,往往还要进行防抖动处理等。
先在我们的实验板上加一个按键。电路图如图8-1。


图8-1 加了按键的实验电路图
程序如下:
#include <AT89x51.h>

void main(void)
{
unsigned int a;
do
{
P1 = 0xFF; //关闭P1上的LED
while(P3_7); //空语句,等待P3_7按下为低电平,低电平时执行下面的语句
P1 = 0; //点亮LED
for(;a<60000;a++); //这也是空语句的用法,注意a的初值为当前值
} //这样第一次按下时会有一延时点亮一段时间,以后按多久就亮多久
while(1); //点亮一段时间后关闭再次判断P3_7,如此循环
}

 
 
 
[ 技术搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]

 
0条 [查看全部]  相关评论

 
点击排行
 
 
 
弱电基础 | 常用软件 | 信息发布规则 | 积分规则 | VIP会员注册 | 广告投放 | 弱电培训 | 联系我们 | 版权声明 | 帮助中心 | 网站地图 | 排名推广 | 京ICP备11008917号-3 | RSS订阅
★本站手机app客户端已上线! 点击下载