单片机程序的执行方法及装置与流程

文档序号:17130128发布日期:2019-03-16 01:05阅读:314来源:国知局
单片机程序的执行方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种单片机程序的执行方法及装置。



背景技术:

在单片机程序设计中,经常要用到延时去处理一些程序。一般经常采用循环的方式产生延时效果。采用这种方法适合简单的程序设计,但是在循环延时的过程中无法去执行其它程序。在程序的运行过程中会造成单片机性能的严重浪费。并且随着功能的增加单片机程序变得更复杂,程序运行效率变低。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种单片机程序的执行方法及装置,以至少解决相关技术中相关技术中单片机程序的执行效率较低的问题。

根据本发明的一个实施例,提供了一种单片机程序的执行方法,包括:在启动单片机运行的情况下,启动所述单片机中的定时器对所述单片机中包括的延时程序的目标时间进行计时,其中,所述延时程序为被设置为延时所述目标时间运行的程序;在计时时间达到所述目标时间的情况下,将所述定时器中存储的所述延时程序对应的标识信息从第一标识转换为第二标识;在待运行所述延时程序的情况下,检测所述定时器中存储的所述标识信息是否为所述第二标识;在检测到所述标识信息为所述第二标识的情况下,执行所述延时程序。

可选地,在检测到所述标识信息为所述第二标识的情况下,所述方法还包括:在执行所述延时程序的同时,将所述定时器中存储的所述标识信息从所述第二标识转换为所述第一标识。

可选地,所述延时程序包括一个或者多个程序,所述定时器用于存储具有对应关系的所述一个或者多个程序和标识信息,其中,检测所述定时器中存储的所述标识信息是否为所述第二标识包括:从所述一个或者多个程序中获取待执行的目标程序;从具有对应关系的所述一个或者多个程序和标识信息中获取所述目标程序对应的目标标识信息;检测所述定时器中存储的所述目标标识信息是否为所述第二标识。

可选地,启动所述单片机中的定时器对所述单片机中包括的延时程序的目标时间进行计时包括:将所述目标时间与目标时间间隔的比值确定为目标检测次数,其中,所述目标时间间隔为对所述定时器进行检测的时间间隔;通过所述定时器记录对所述定时器执行检测的次数;在对所述定时器进行检测的次数达到所述目标检测次数的情况下,确定计时时间达到所述目标时间。

根据本发明的另一个实施例,提供了一种单片机程序的执行装置,包括:计时模块,用于在启动单片机运行的情况下,启动所述单片机中的定时器对所述单片机中包括的延时程序的目标时间进行计时,其中,所述延时程序为被设置为延时所述目标时间运行的程序;第一转换模块,用于在计时时间达到所述目标时间的情况下,将所述定时器中存储的所述延时程序对应的标识信息从第一标识转换为第二标识;检测模块,用于在待运行所述延时程序的情况下,检测所述定时器中存储的所述标识信息是否为所述第二标识;执行模块,用于在检测到所述标识信息为所述第二标识的情况下,执行所述延时程序。

可选地,在检测到所述标识信息为所述第二标识的情况下,所述装置还包括:第二转换模块,用于在执行所述延时程序的同时,将所述定时器中存储的所述标识信息从所述第二标识转换为所述第一标识。

可选地,所述延时程序包括一个或者多个程序,所述定时器用于存储具有对应关系的所述一个或者多个程序和标识信息,其中,检测模块包括:第一获取单元,用于从所述一个或者多个程序中获取待执行的目标程序;第二获取单元,用于从具有对应关系的所述一个或者多个程序和标识信息中获取所述目标程序对应的目标标识信息;检测单元,用于检测所述定时器中存储的所述目标标识信息是否为所述第二标识。

可选地,所述计时模块包括:第一确定单元,用于将所述目标时间与目标时间间隔的比值确定为目标检测次数,其中,所述目标时间间隔为对所述定时器进行检测的时间间隔;记录单元,用于通过所述定时器记录对所述定时器执行检测的次数;第二确定单元,用于在对所述定时器进行检测的次数达到所述目标检测次数的情况下,确定计时时间达到所述目标时间。

根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,通过在启动单片机运行的情况下,启动单片机中的定时器对单片机中包括的延时程序的目标时间进行计时,其中,延时程序为被设置为延时上述目标时间运行的程序;在计时时间达到目标时间的情况下,将定时器中存储的延时程序对应的标识信息从第一标识转换为第二标识;在待运行延时程序的情况下,检测定时器中存储的标识信息是否为第二标识;在检测到标识信息为第二标识的情况下,执行延时程序的方式,利用单片机中的定时器对需要延时运行的程序的延时时间进行计时,在定时器中设置与延时程序对应的标识信息,在需要运行延时程序时,只需要检测定时器中的标识信息是否转换为用于指示计时时间达到了需要延时的目标时间的第二标识,如果标识信息已经转换为第二标识,则执行延时程序。单片机无需再采用循环的方式延时程序,在延时程序的计时时间未达到目标时间时,能够继续执行其他程序,不会影响其他程序的执行。因此,可以解决相关技术中单片机程序的执行效率较低的问题,达到提高单片机程序的执行效率的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种单片机程序的执行方法的移动终端的硬件结构框图;

图2是根据本发明实施例的单片机程序的执行方法的流程图;

图3是根据本发明实施例的单片机程序的执行装置的结构框图;

图4是根据本发明可选实施例的单片机程序的执行方法的示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种单片机程序的执行方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的单片机程序的执行方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种单片机程序的执行方法,图2是根据本发明实施例的单片机程序的执行方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,在启动单片机运行的情况下,启动单片机中的定时器对单片机中包括的延时程序的目标时间进行计时,其中,延时程序为被设置为延时目标时间运行的程序;

步骤s204,在计时时间达到目标时间的情况下,将定时器中存储的延时程序对应的标识信息从第一标识转换为第二标识;

步骤s206,在待运行延时程序的情况下,检测定时器中存储的标识信息是否为第二标识;

步骤s208,在检测到标识信息为第二标识的情况下,执行延时程序。

通过上述步骤,利用单片机中的定时器对需要延时运行的程序的延时时间进行计时,在定时器中设置与延时程序对应的标识信息,在需要运行延时程序时,只需要检测定时器中的标识信息是否转换为用于指示计时时间达到了需要延时的目标时间的第二标识,如果标识信息已经转换为第二标识,则执行延时程序。单片机无需再采用循环的方式延时程序,在延时程序的计时时间未达到目标时间时,能够继续执行其他程序,不会影响其他程序的执行。因此,可以解决相关技术中单片机程序的执行效率较低的问题,达到提高单片机程序的执行效率的效果。

可选地,在检测到标识信息为第二标识的情况下,在执行延时程序的同时,将定时器中存储的标识信息从第二标识转换为第一标识。以实现对标识信息的复位,使得定时器能够继续对延时程序的延时时间进行计时。

可选地,延时程序包括一个或者多个程序,定时器用于存储具有对应关系的一个或者多个程序和标识信息,其中,在上述步骤s206中,从一个或者多个程序中获取待执行的目标程序;从具有对应关系的一个或者多个程序和标识信息中获取目标程序对应的目标标识信息;检测定时器中存储的目标标识信息是否为第二标识。

可选地,在本实施例中,需要延时执行的延时程序可能有一个或者多个,在定时器中为每个延时程序设置标识信息和目标时间,分别对各个延时程序的延时时间进行计时,如果需要增加新的延时程序,只要在定时器中增加新的标识信息,然后在主程序中判断相应的标识信息去运行对应的延时程序即可。

可选地,通过设置检测定时器的目标时间间隔来调整定时器的精度,延时程序需要延时的目标时间与目标时间间隔的比值则为延时程序达到延时要求的情况下需要检测定时器的最小次数,通过定时器记录定时器的检测次数,并判断定时器的检测次数是否达到了目标检测次数来确定计时时间是否达到了目标时间。例如:在上述步骤s202中,将目标时间与目标时间间隔的比值确定为目标检测次数,其中,目标时间间隔为对定时器进行检测的时间间隔;通过定时器记录对定时器执行检测的次数;在对定时器进行检测的次数达到目标检测次数的情况下,确定计时时间达到目标时间。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种单片机程序的执行装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本发明实施例的单片机程序的执行装置的结构框图,如图3所示,该装置包括:

计时模块32,用于在启动单片机运行的情况下,启动单片机中的定时器对单片机中包括的延时程序的目标时间进行计时,其中,延时程序为被设置为延时目标时间运行的程序;

第一转换模块34,用于在计时时间达到目标时间的情况下,将定时器中存储的延时程序对应的标识信息从第一标识转换为第二标识;

检测模块36,用于在待运行延时程序的情况下,检测定时器中存储的标识信息是否为第二标识;

执行模块38,用于在检测到标识信息为第二标识的情况下,执行延时程序。

通过上述装置,利用单片机中的定时器对需要延时运行的程序的延时时间进行计时,在定时器中设置与延时程序对应的标识信息,在需要运行延时程序时,只需要检测定时器中的标识信息是否转换为用于指示计时时间达到了需要延时的目标时间的第二标识,如果标识信息已经转换为第二标识,则执行延时程序。单片机无需再采用循环的方式延时程序,在延时程序的计时时间未达到目标时间时,能够继续执行其他程序,不会影响其他程序的执行。因此,可以解决相关技术中单片机程序的执行效率较低的问题,达到提高单片机程序的执行效率的效果。

可选地,在检测到标识信息为第二标识的情况下,上述装置还包括:

第二转换模块,用于在执行延时程序的同时,将定时器中存储的标识信息从第二标识转换为第一标识。

可选地,延时程序包括一个或者多个程序,定时器用于存储具有对应关系的一个或者多个程序和标识信息,其中,检测模块包括:

第一获取单元,用于从一个或者多个程序中获取待执行的目标程序;

第二获取单元,用于从具有对应关系的一个或者多个程序和标识信息中获取目标程序对应的目标标识信息;

检测单元,用于检测定时器中存储的目标标识信息是否为第二标识。

可选地,在本实施例中,需要延时执行的延时程序可能有一个或者多个,在定时器中为每个延时程序设置标识信息和目标时间,分别对各个延时程序的延时时间进行计时,如果需要增加新的延时程序,只要在定时器中增加新的标识信息,然后在主程序中判断相应的标识信息去运行对应的延时程序即可。

可选地,计时模块包括:

第一确定单元,用于将目标时间与目标时间间隔的比值确定为目标检测次数,其中,目标时间间隔为对定时器进行检测的时间间隔;

记录单元,用于通过定时器记录对定时器执行检测的次数;

第二确定单元,用于在对定时器进行检测的次数达到目标检测次数的情况下,确定计时时间达到目标时间。

可选地,在本实施例中,通过设置检测定时器的目标时间间隔来调整定时器的精度,延时程序需要延时的目标时间与目标时间间隔的比值则为延时程序达到延时要求的情况下需要检测定时器的最小次数,通过定时器记录定时器的检测次数,并判断定时器的检测次数是否达到了目标检测次数来确定计时时间是否达到了目标时间。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

下面结合本发明可选实施例进行详细说明。

本发明可选实施例提供了一种单片机程序的执行方法,基于单片机的定时器设立基准时间(相当于上述目标时间间隔),将所有的延时标识(相当于上述标识信息)都放在定时器中统一激活,在程序主体中判断设立的延时标识是否置位去执行相应的程序,运行完毕后复位标识等待延时标识的下一次激活运行。如果需要增加新的延时只要在定时器中增加新的延时标识,然后在主程序中判断相应的标识去运行对应的程序。利用这种方法单片机运行中不会有资源的过多浪费,并且程序设计相对简单降低程序复杂度,提高程序运行效率。

图4是根据本发明可选实施例的单片机程序的执行方法的示意图,如图4所示,首先初始化单片机设置寄存器,然后使能一个定时器用于执行计时功能,精度根据需求可自行设置。再进行其它功能的必要设置。这样就完成了单片机的基本设置。

其次,进行定时器程序的编写,如图4所示,利用t1ms1、t1ms2记录进入定时器的次数,判断进入的次数就可以得到相应的延时时间,当达到1000时,延时1s钟,清零计数标识重新计数。置位t1s标识(相当于上述第二标识),用于主程序中t1s标识对应的程序的执行。以此类推可以加入更多的延时时间。

主程序中判断t1s,t2s等延时标识用于执行相应的程序。同时复位t1s、t2s等延时标识(相当于上述第一标识),开始重新计时。主程序中还可以继续运行其它程序。

为了解决延时造成的单片机性能的严重浪费,减少单片机程序设计的复杂程度,提高程序运行效率。本可选实施例中提出了一种基于定时器的伪实时多功能单片机程序设计方法。采用上述单片机程序的执行方法,单片机资源利用率高,程序结构清晰,设计复杂度较低,程序运行效率较高。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,在启动单片机运行的情况下,启动单片机中的定时器对单片机中包括的延时程序的目标时间进行计时,其中,延时程序为被设置为延时目标时间运行的程序;

s2,在计时时间达到目标时间的情况下,将定时器中存储的延时程序对应的标识信息从第一标识转换为第二标识;

s3,在待运行延时程序的情况下,检测定时器中存储的标识信息是否为第二标识;

s4,在检测到标识信息为第二标识的情况下,执行延时程序。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,在启动单片机运行的情况下,启动单片机中的定时器对单片机中包括的延时程序的目标时间进行计时,其中,延时程序为被设置为延时目标时间运行的程序;

s2,在计时时间达到目标时间的情况下,将定时器中存储的延时程序对应的标识信息从第一标识转换为第二标识;

s3,在待运行延时程序的情况下,检测定时器中存储的标识信息是否为第二标识;

s4,在检测到标识信息为第二标识的情况下,执行延时程序。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1