项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
循环程序是指在程序中有一段程序需要重复执行的一种程序结构。在一些实际应用中往往需要多次反复执行某种相同的操作,而只是参与操作的操作数不同,这时就可采用循环程序结构。循环程序可以缩短程序,减少程序所占的内存空间。循环程序一般包括以下几个部分。
(1)初始化
在进入循环之前,要对循环中需要使用的寄存器和存储器赋予规定的初始值,比如循环次数、循环体中工作单元的初值等。
(2)循环体
循环体就是程序中需要重复执行的部分,是循环结构中的主要部分。
(3)循环修改
每执行一次循环,需要对有关值进行修改,使指针指向下一数据所在位置,为进入下一轮循环做准备。
(4)循环控制
在程序中还需根据循环计数器的值或其他循环条件,来控制循环是否该结束。
(5)结束处理
分析及保存执行结果。
以上5个部分可以有两种组织方式,其结构如图4-6所示。
图4-6 循环结构程序流程图
图4-7 程序流程图
【例4-8】设Xi均为单字节数,并按顺序存放于片内RAM的50H开始的单元中,字节个数n存于R2中,求S=X1+X2+…+Xn,把S(双字节)放在R3和R4中。
【程序】 (www.chuimin.cn)
【例4-9】已知8051单片机使用的晶振为12MHz,要求设计一个软件延时程序,延时时间为1ms。
【编程说明】延时程序的延时时间主要与所用晶振和延时程序中的循环次数有关。假设内循环用两条NOP指令以及一条DJNZ指令,需要4个机器周期。循环24次,需要96个机器周期。根据要求延时的时间,考虑所用指令,即可算出外循环次数。显然这是一个双重循环程序。
【程序】
程序段中每条指令执行时需要的机器周期注明在分号后,整个程序段耗用的机器周期数为
当采用晶振12MHz时,可知一个机器周期为1μs,执行这段程序将用993μs,存在7μs的误差。若要改变延时时间,可以调节NOP指令数,即可改变延时时间。
从上面介绍的几个例子不难看出,循环程序的结构大体上是相同的。要特别注意以下几个问题:
1)在进入循环之前,应合理设置循环初始化变量。
2)循环体只能执行有限次。若无限执行,称之为“死循环”。
3)不能破坏和修改循环体,要特别注意避免从循环体外直接跳转至循环体内。
4)多重循环的嵌套,应当注意嵌套的形式。多重循环是从外层向内层一层一层地进入,从内层向外层一层一层地退出。不允许在外层循环中用跳转指令直接跳转到内层循环体内。
5)循环体内可以直接转到循环体外或外层循环中,实现一个循环由多个条件控制结束的结构。
6)对循环体的编程要仔细推敲,合理安排。对其进行优化时,应首先考虑缩短执行时间,其次要考虑程序的长度。
有关单片机基础及应用的文章
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
若程序框图中同时存在优先级设为实时的 VI 和定时顺序,将导致无法预计的定时行为出现。名称是对定时循环的一个标志,一般被作为停止定时循环的输入参数,或者用来标识具有相同的启动时间的定时循环组。定时顺序结构由一个或多个任务子程序框图或帧组成,是根据外部或内部信号时间源定时后顺序执行的结构。定时顺序结构适于开发精确定时、执行反馈、定时特征等动态改变或有多层执行优先级的VI。图5-73 多帧定时循环图5-74 定时顺序结构......
2023-11-07
评价程序优劣的因素1)正确性,容错性。程序设计过程与基本设计方法1)模块化;结构化;自顶而下与自底而上。4)从原理到程序实现:原理→模型→算法→流程→程序设计→调试→优化→验证→建档。常用的程序调试方法1)原则:先硬后软;先局部,后整体。程序的优化与文件编制1)参照评价因素,修改程序结构、数据结构、算法及程序等。5)使用说明功能、操作方法、出错信息与排除方法、注意事项等。......
2023-10-28
一个循环结构的循环体内又包含另外一个完整的循环结构,称为循环的嵌套。循环嵌套层数可以是多层,称为多重循环。在某些具有规律性重复计算的问题中,如果被重复计算部分的某个局部又包含着另外的重复计算问题,就可以通过使用循环的嵌套结构来处理。while和for 3种循环控制结构均可互相嵌套,并且可以多层嵌套以适应不同的应用,下面列出最常见的几种二层循环嵌套结构:多层循环嵌套时,外层循环每执行一次,内层循环就完整执行一遍。......
2023-11-20
while循环控制结构的执行过程如图4.1所示。使用while循环结构时需要注意以下几点:图4.1while控制结构执行过程①由于整个结构的执行过程是先判断、后执行,因而循环体有可能一次都不执行。......
2023-11-20
while型循环结构是C语言中提供的直到型循环结构,控制结构的一般形式为:图4.2do…while循环控制结构的执行过程如图4.2所示。while循环结构的循环体内必须有能改变循环条件的语句存在。编写程序实现功能:从键盘上输入一个正整数,判断其是否是“回文数”。上面程序中,通过输入数据与其对应的“倒序数”进行比较来判断输入数据是否是“回文数”,在程序中要注意以下几点:①输入数据后需要拷贝一个备份,因为拆分数字会破坏原数。......
2023-11-20
for循环控制结构的执行过程如图4.3所示。②C语言的for循环控制结构不仅提供在其控制部分的exp3中修改循环控制变量的值,而且还允许在for循环的循环体中存在能改变循环控制条件的语句,使用时需特别注意。图4.3for控制结构的执行过程③无论exp1和exp3的取值如何,只要exp2是一个非0值常量表达式,则构成了死循环。......
2023-11-20
While循环重复执行代码片段直到条件接线端接收到某一特定的布尔值为止。如果把控制条件接线端子的控件放在While循环外,则根据初值的不同将出现两种情况:无限循环或仅被执行一次。图5-11 For循环的自动索引但是此时对于While循环直接执行则不可以,因为While循环自动索引功能是关闭的需要在自动索引的方框 上单击右键,选择启用索引,使其变为。图5-12 处于死循环状态的While循环图5-13 添加了布尔控件的While循环......
2023-11-07
相关推荐