产品中心 Product Center

联系博昌达电子CONTACT US

咨询热线:13922832581

深圳市博昌达电子科技有限公司

公司电话:13922832581
Email:2355403977@qq.com
地址:深圳市宝安区西乡街道兴业路3012号老兵大厦东三座7005A

单片机循环程序的典型形式有哪些呢

2021-12-12 03:00:00 来源:http://hn.combat-elec.com/news735751.html

一个较复杂的程序,总是包含多个分支程序段,为防止分支流向的混乱,应采用程序流程图具体标明每个分支的确切条件和走向。

单片机循环结构程序:

循环结构程序是控制主机多次、重复执行同一个程序段的一种基本程序结构。从本质上讲,它是分支结构程序中的一个特殊形式。由于它在程序设计中的重要性,故而配以专用指令,单独作为一种程序结构的形式进行设计。

在某些情况下采用循环程序结构,可使原程序大大缩短和简化。例如,利用软件延时lms,若采用NOP指令来实现,当fosc=12MHz时,需近1000条NOP指令组成。如果采用循环结构程序,只需少数几条指令即可完成。可见其程序的简化效率。

①循环结构程序的组成

循环结构程序由下述4个主要部分组成。

A、初始化部分

程序在进入循环处理程序段部分之前需设备初值,如循环次数、有关单元清0、变量设置、地址指针等。

B、循环处理部分

循环处理部分又称循环程序主体。是循环结构程序的核心,是循环执行需完成某种功能的主体。

C、循环控制部分

在重复执行循环体的过程中,不断修改和判断循环控制变量,直到符合结束循环条件。循环控制变量可以是循环递减计数或条件控制。前者是每循环执行一次,控制变量减1,并判是否减为0,若不为0,继续执行循环体程序;若控制变量减1后结果值为0,则结束循环程序的执行,进入结束处理。这些工作均由循环指令自动完成。后者判别结束条件上是否成立,例如计算结果达到给定精度要求或达到某一给定条件时就结束循环,这时的循环次数是不固定的。常用条件判跳指令来完成。

D、结束处理部分

这是对循环程序全部执行结束后的结果进行处理和存储。

单片机,触摸单片机
②单片机循环结构程序举例

有两条功能极强的循环转移指令:

DJNZ Rn,rel ;以工作寄存器Rn为控制寄存器

DJNZ direct,rel ;以直接寻址单元作控制寄存器

这两条基本指令可派生出很多条不同控制计数器的循环转移指令,大大扩展了应用范围和多重循环的层次。

控制计数器的计数方式一般均为不断减1计数(递减方式),即每循环一次,计数器自动减1计数,并判控制计数器是否为0,若不为0,继续执行循环;若为0,则结束循环程序的执行,脱离循环程序顺序往下执行。循环次数在初始化时预置,循环次数范围1-255,如超过此范围,则要采用多重循环方式。多重层次原则上不受限。

③单片机多重循环结构程序

某些复杂问题或者循环数超过256,则需采用多重循环的程序结构,即循环程序中包含循环程序或一个大循环中包含多个小循环程序,称多重循环程序结构,又称循环嵌套。循环的重数不限,但必须每循环的层次分明,不能有相互交叉!

例如:双重软件延时。

START:MOV R3,#DATA1 ;外层循环计数初值

LOOP1:MOV R2, ;内层循环计数初值

LOOP2:NOP

NOP

NOP

DJNZ R2,LOOP2 ;(R2)-1≠0,转LOOP2

DJNZ R3,LOOP1 ;(R3)-1≠0,转LOOP1

END ;结束

此例为典型的二重循环程序结构,可根据实际需要设计任意重循规蹈矩环。其执行过程是由内向外逐层展开。内层循环全部执行完后,外层则执行一次循环,依此类推。如内层循环次数为M,外层循规蹈矩环次数为N,则总的循规蹈矩环次数为NM次。

    联系我们
  • 深圳市博昌达电子科技有限公司
  • 电话:13922832581 / 0755-86655451
  • 传真:0755-86655436
  • Email:2355403977@qq.com
  • 公司地址:深圳市宝安区西乡街道兴业路3012号老兵大厦东三座7005A
    二维码
  • 微信公众号

    微信公众号

湖南松翰单片机口碑怎么样?湖南NIKOSEM哪里好?湖南单向可控硅找哪家?博昌达电子科技有限公司专业从事湖南单向可控硅方面,欢迎咨询!

CopyRight © 2020 版权所有 深圳市博昌达电子科技有限公司