单片机vbs for循环语句句咨询

51单片机之C语言-4.5基本语句之循环语句
> 51单片机之C语言-4.5基本语句之循环语句
51单片机之C语言-4.5基本语句之循环语句
1.循环语句while循环结构是程序中一种很重要的结构。本文引用地址:while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非零)时,执行循环体语句。其执行过程可用下图表示。图4-5-1 while循环执行过程while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。2.循环语句do-whiledo-while语句的一般形式为:do语句while(表达式)其执行过程可用如下流程图表示,这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。3.循环语句forfor循环的一般形式为:for (表达式1;表达式2;表达式3){
语句;}执行过程:(1)计算&表达式1&(&表达式1&通常称为&初值设定表达式&).(2)计算&表达式2&(&表达式2&通常称为&终值条件表达式&)。若其值为非零,执行步骤(3);若其值为零,执行步骤(5)(3)执行一次for循环中的语句(4)计算&表达式3&,跳到步骤(2)(5)结束循环,执行for循环之后的语句例如:for(i=0;i<8;i++)num=num+i;关于for循环在前面章节的讲解中我们已经使用过了,相信大家已经会使用了。这里需要注意的是for循环的执行过程。这里再对for循环语句的几种特例进行简单描述。所谓特例实际上是当for循环中&表达式1&, &表达式2&, &表达式3&部分省略的情况下,程序如何执行。(1)三个表达式为空for(;;){
语句2;}在以上for循环中没有表达式1,2,3均为空,表示没有初值,没有判断条件,没有增量变化,这是一个死循环,相当于while(1)语句。#include "reg52.h"void main(void){
for(;;)//可以代替while(1)
}(2)第一个表达式为空for(;i<=100;i++)sum=sum+i;以上for循环中表达式1无,i不做初始值设置,i的值取决于该程序前面对i的处理(3)第二个表示为空for(i=1;;i++)sum=sum+i;以上程序表达式2为空,不判断条件,那么该循环也是死循环。相当于:i=1;while(1){
sum=sum+i;
i++;}(4)表达式1和表达式3为空for(;i<=10;){
num=num+i;
i++;}以上for循环中,表达式1和3为空,相当于while(i<=10){
num=num+i;
i++;}(5) for循环中没有执行语句(循环体)for(i=0;i<8;i++){}以上for循环中无循环体,起到延时的作用,也可以简写为,for(i=0;i<8;i++);
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一51单片机for循环延时是如何计算的 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
51单片机for循环延时是如何计算的
20:45:25  
求告知啊,请具体点
11:39:18  
51的经典晶振为11.0592MHz,12个时钟周期就是一个机器周期,那么对应一个机器周期就是1.085us,然后延时的每条程序指令的执行时间就是一个机器周期了的,再对应1Ms就是就是100us,然后在循环里面不断循环100次左右就可以了的。还有,其实每条指令都有它特定的执行周期的,这个你得自己看下咯
等待验证会员
22:46:08  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
软件延时本身就是一种粗糙的延时,用C语言写出来的FOR循环延时时间只能估计一个大概的值,一条C指令的执行时间要看它编译成汇编指令,不同的汇编指令需要不同的执行周期。
等待验证会员
09:00:41  
51的经典晶振为11.0592MHz,12个时钟周期就是一个机器周期,那么对应一个机器周期就是1.085us,然后延时的每条程序指令的执行时间就是一个机器周期了的,再对应1Ms就是就是100us,然后在循环里面不断循环100次左右就可以了的。还有,其实每条指令都有它特定的执行周期的,这个你得自己看下咯 ...
1MS 不是 等于1000us么 何来的100?
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司"单片机c语言for"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的单片机c语言for的糗事,各种关于单片机c语言for的爆笑经历、尴尬时刻和开心视频,想持续关注单片机c语言for的糗事就收藏本页吧.
扫码下载糗事百科app51单片机之C语言-4.5基本语句之循环语句 - 51单片机 - 电子工程世界网
51单片机之C语言-4.5基本语句之循环语句
14:45:25来源: eefocus
循环结构是程序中一种很重要的结构。
while语句的一般形式为:
while(表达式)语句
其中表达式是循环条件,语句为循环体。
while语句的语义是:计算表达式的值,当值为真(非零)时,执行循环体语句。其执行过程可用下图表示。
图4-5-1 while循环执行过程
while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
2.循环语句&do-while
do-while语句的一般形式为:
while(表达式)
其执行过程可用如下流程图表示,
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。
3.循环语句for
for循环的一般形式为:
for (表达式1;表达式2;表达式3)
(1)&计算&表达式1&(&表达式1&通常称为&初值设定表达式&).
(2)&计算&表达式2&(&表达式2&通常称为&终值条件表达式&)。若其值为非零,执行步骤(3);若其值为零,执行步骤(5)
(3)&执行一次for循环中的语句
(4)&计算&表达式3&,跳到步骤(2)
(5)&结束循环,执行for循环之后的语句
for(i=0;i<8;i++)num=num+i;
关于for循环在前面章节的讲解中我们已经使用过了,相信大家已经会使用了。这里需要注意的是for循环的执行过程。
这里再对for循环语句的几种特例进行简单描述。所谓特例实际上是当for循环中&表达式1&, &表达式2&, &表达式3&&部分省略的情况下,程序如何执行。
(1)&三个表达式为空
& & 语句1;
& & 语句2;
在以上for循环中没有表达式1,2,3均为空,表示没有初值,没有判断条件,没有增量变化,这是一个死循环,相当于while(1)语句。
#include "reg52.h"
void main(void)
& & for(;;)//可以代替while(1)
& & & & //语句1;
& & & & //语句2;
& & } & & &&
(2)&第一个表达式为空
for(;i<=100;i++)sum=sum+i;
以上for循环中表达式1无,i不做初始值设置,i的值取决于该程序前面对i的处理
(3)&第二个表示为空
for(i=1;;i++)sum=sum+i;
以上程序表达式2为空,不判断条件,那么该循环也是死循环。相当于:
& & sum=sum+i;
(4)&表达式1和表达式3为空
for(;i<=10;)
& & num=num+i;
以上for循环中,表达式1和3为空,相当于
while(i<=10)
& & num=num+i;
(5) for循环中没有执行语句(循环体)
for(i=0;i<8;i++)
以上for循环中无循环体,起到延时的作用,也可以简写为,
for(i=0;i<8;i++);
关键字:&&&&
编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
微信扫一扫加关注 论坛活动 E手掌握
微信扫一扫加关注
芯片资讯 锐利解读
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。还没有帐号? 赶紧
用户版块帖子
为什么程序在写了这个for循环之后就死在里面了?
UID:1229269
在线时间13小时
M币821专家0
上面的程序省略,主要在下面。。Flag_Judge = 0;do&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&if (!Flag_Judge)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&for (delaynms = 0;delaynms & 10;delaynms++)&&&&&&&&&&&&&&&&&&&&&&&&for (j = 0;j & 123;j++)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&& Weight_HX711();//测量体重并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& Height_Urtl();//测量身高并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& bmi_sys();&&&&&&//计算BMI身体质量指数并实时显示&&&&&&&&&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&& Flag_Judge = 1;while(KIN1);//KIN1在这里是按键...................省略下面的程序
UID:1105060
在线时间518小时
M币1815专家3
for (delaynms = 0;delaynms & 10;delaynms++)&&延时吗???怎么没有“;”分号呢???
UID:802724
在线时间555小时
M币484专家1
:for (delaynms = 0;delaynms & 10;delaynms++)&#160;&#160;延时吗???怎么没有“;”分号呢???&#160;( 22:21)&#160;涨姿势了,头次见这么写的
UID:1023450
在线时间2016小时
M币1015专家49
你的代码没贴全,很难分析; 假如 while(KIN1);是 do{..} while ();循环体的结束判断,则1&&你的do {.....} while (..) 花括号不配对,少了一个,在while前应增加一个,如下红色:do&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&if (!Flag_Judge)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&for (delaynms = 0;delaynms & 10;delaynms++)&&&&&&&&&&&&&&&&&&&&&&&&for (j = 0;j & 123;j++)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&& Weight_HX711();//测量体重并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& Height_Urtl();//测量身高并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& bmi_sys();&&&&&&//计算BMI身体质量指数并实时显示&&&&&&&&&&&&&&&&&&&&&&&&} &&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&& Flag_Judge = 1;&&&&&&&&&&&&}&&&&//这个括号少了;while(KIN1);//KIN1在这里是按键 2&& 主程序应该是一个死循环:&&do {...} while (1); 3&& 循环体内两个 for 的循环运行条件设置不合理,由于 Flag_Judge = 0 在do循环前设置为0 ,第一次运行后 你 将 Flag_Judge = 1; 而此时 如KIN1 为0的,程序则不断循环等待&&KIN1 为T,就跳出循环了;4&&KIN1变量最好定义为 volite,通知编译器在while时总是取得该变量的最新数值;而避免对该变量优化;
UID:1105060
在线时间518小时
M币1815专家3
回 蜈蚣 的帖子
:涨姿势了,头次见这么写的&#160;( 23:06)&#160;他那里有两个for语句,前面个里面有delaynms,应该是个延时吧?软件延时几乎都这样写呀。
UID:1064933
在线时间578小时
M币3167专家2
建议在2个for程序之间加多1个{{for (delaynms = 0;delaynms &10;delaynms++){for (j=0;j&123;j++)… }}}Flag_Judge=1;
UID:1577031
在线时间196小时
M币833专家0
其他不知道,第一个for语句怎么不加{},同上楼一致
UID:1598870
在线时间6小时
M币1674专家0
俺也同意五楼的说法,第一个for循环应该有{}的
UID:827709
在线时间414小时
M币1023专家3
如3楼,你应该漏了一个花括号,如果没有其他问题的话,你的程序应该没有语法错误了for (delaynms = 0;delaynms & 10;delaynms++)&&&&&&&&&&&&&&&&&&&&&&&&for (j = 0;j & 123;j++)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&& Weight_HX711();//测量体重并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& Height_Urtl();//测量身高并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& bmi_sys();&&&&&&//计算BMI身体质量指数并实时显示&&&&&&&&&&&&&&&&&&&&&&&&} 这几行代码是把花括号里面的,即&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&& Weight_HX711();//测量体重并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& Height_Urtl();//测量身高并实时显示&&&&&&&&&&&&&&&&&&&&&&&&&&&& bmi_sys();&&&&&&//计算BMI身体质量指数并实时显示&&&&&&&&&&&&&&&&&&&&&&&&}执行了10*123=1230次,而 这花括号里的3个子程序执行时间应该不会很快,等到这1230次执行完毕才算一个大循环,只是这个大循环的时间比较长,程序并没死而是这个循环还没有退出
UID:176953
在线时间312小时
M币608专家2
不加大括号也可以,编译器可以识别。 但是他这个三层循环嵌套可以优化的。循环嵌套层数最最好不要超过2层
访问内容超出本站范围,不能确定是否安全
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
您目前还是游客,请
&回复后跳转到最后一页
Code by , Time now is:11-24 16:27, Total 0.152961(s) query 9,
Gzip enabled&

我要回帖

更多关于 单片机for语句 的文章

 

随机推荐