单片机的程序结构设计

电子说

1.3w人已加入

描述

  在单片机的应用中,编程是非常重要的技术环节。在不断的探索和发展中,模块化的编程方式已经成为单片机编程的重要方式。在模块化编程中,应考虑多个程序的结构对程序执行的影响,因此下面将分析单片机的程序结构。

  单片机的应用非常广泛,承担了许多行业的系统控制任务,单片机功能的实现主要取决于应用程序的控制。适当的写作结构和方法已成为研究的重点。

  一、单片机程序结构设计的特点

  单片机的编程应从程序开发的语言入手,为不同的功能选择不同的程序结构,从而为程序设计打下良好的基础,因此如何在实际操作中选择程序的结构模式就成了编程很重要。随着计算机技术的成熟和单片机技术的发展,提出了结构化的编程方法。它主要是将程序编写纳入模块模式,使用结构标准化,模块化等方式来实现程序的编写,并使用模块化结构来简化程序的复杂性。这种类型的设计是可重用和可移植的。简化程序的编写过程,提高模块的利用率。从而降低了出错的可能性,提高了单片机的应用效果。根据不同的MCU功能可以选择不同的模块,每个模块的功能都可以突出地应用到系统中,并且可以在特定的工作环境中解决特殊的问题。始终合理地配置软件结构,理顺模块之间的关系,以便从宏观的角度完成对编程过程和结构的控制。因此,实现了复杂问题的简化,提高了单片机的编程效率,并且提高了解决复杂问题的能力。

  二、SCM开发语言选择

  由于C语言在应用方面的优势,因此被广泛用于单片机的编程中。便捷的应用程序库功能易于实现复杂数据的结构。但是C语言无法在时序控制中获得优势,速度型算法不容易满足单片机的要求。但是,由于C语言已包含在编程范围内,因此其汇编混合编程模型已经可以帮助弥补其语言的缺点。随着单片机调试技术的发展,单片机已经适应了C语言程序控制,从而为编程提供了高级语言的可能性。

  三、单片机编程的通用程序结构

  为了方便单片机的编程,通常可以将其分为多种结构以适应不同的功能要求。具体结构如下。

  3.1基本程序结构

  它的结构包括两部分:初始化程序和工作程序。上电后,初始化程序负责复位。首先执行初始化程序。该程序只需要在工作前执行一次即可。初始化程序运行以全面检测和初始化各种端口和变量,计时器,ADC等。如有必要,可以建立不同的初始化分支,可以检测和初始化不同的端子,并可以根据不同的条件选择不同的初始化方法,例如冷启动和热启动选项。主程序是一个循环程序,执行单片机的工作内容,并实现特定功能,如检测,控制,通讯,人机交互等。每个功能都由子程序控制,主程序是调用这些程序以促进模块化编程和应用的指挥官。

  3.2模块结构

  在单片机程序中,主程序负责模块的调度,而实现该功能的子例程则被合理地调度。这时,预定程序就是模块。添加到此类模块的是某些功能。模块化程序结构可以促进程序多个功能的集成,即在不增加主程序难度的前提下增加或减少模块可以实现系统功能的改变。实现程序的优化,便于维护,降低错误率。

  3.3模块控制机制

  在计划主程序时,并非所有模块都适用,因此应在一段时间内对模块进行控制,并且并非所有模块都需要参与所有周期。或者某些模块的执行并不频繁,只有在满足某些条件后才执行。为了解决这个问题,可以为模块设置一个标志。模块应在执行前判断自己的标志位。仅当标志位可用时,才能执行相关操作。如果标志位不可用,则应执行返回过程,并且不执行相应的模块功能。

  3.4优先呼叫机制

  调用模块时,主程序应具有不同的顺序,因为模块操作的优先级将限制其应用。如果没有优先级限制,则某些重要模块将无法响应或不及时。因此,主程序应该能够分析和选择调用中模块的优先级,并根据不同的处理事件来区分模块的优先级。检查模块的功能,优先级更高的模块,然后查询后续的功能模块和类比。如果出现不可用情况,则执行新一轮检测,并启动优先级更高的模块。

  3.5前后结构

  前台和后台的结构是引入了中断机制,即根据实时事件和紧急情况进行区别对待,提出具有较高实时性的事件,让它们对中断作出响应,以及具有较低实时性的事件。 -time和任务被合并到主程序中,例如显示刷新,扫描等。形成被中断的前端和后端执行程序结构。前台和后台的程序应根据大多数任务的需要执行功能调度。注意正在使用的前台和后台任务的结构,并尽可能减少中断服务程序的执行时间。您可以在中断服务程序中设置一些标志,然后后台程序检测这些标志以进行进一步处理。这可以在很大程度上防止前台程序和后台程序抢占彼此的处理器资源,从而导致某些低优先级的任务阻塞。目前,随着单片机的发展,一些单片机的中断资源已经大大丰富,所有任务都可以通过中断来实现。这样,我们可以让中断接管所有工作并废除后台程序,只保留必要的初始化程序即可。只需进入低功耗模式并等待中断以处理其他任务即可。
责任编辑:YYX

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分