4.1.1 程序编制的步骤
为了使单片机能够理解人的意图,人们必须将解决问题的思路、方法和手段通过单片机能够理解的形式告诉单片机,使得单片机能够根据人的指令一步一步去工作,完成某种特定的任务。人利用指令序列和单片机之间进行交流,人为了让单片机实现某种功能将一系列的指令按照某种顺序排列,使单片机能够实现所要求的功能,这个过程就是程序编制,简称编程。
程序编制可以分为如下几个步骤:
1.任务分析
首先,深入分析单片机应用系统要完成的任务,明确系统的设计任务、功能要求和技术指标。然后,分析系统的硬件资源和工作环境。明确单片机应用系统程序设计的基础和条件。
2.算法设计
算法是对具体问题的描述方法。一个单片机应用系统经过任务分析后,把系统要实现的功能和技术指标用严密的数学方法或数学模型来描述,从而将一个实际问题转化成能够由计算机进行处理的问题。同一个问题的算法可能有多种,应对各种算法进行分析比较,合理优化,选择最佳算法。
3.程序流程设计
经过任务分析、算法优化后,就可以进行程序的总体设计,包括确定程序结构和数据形式,进行资源分配和参数计算等。然后根据程序运行的过程,确定出程序执行的逻辑顺序,用图形符号画出程序流程图,从而使程序的结构关系直观明了,便于检查和修改。
对于简单的应用程序,可以不画程序流程图。当程序较为复杂时,绘制流程图是一个重要的编程手段,应首先画出程序流程图,这可以使编程思路更加清晰,程序结构更加直观。
常用的流程图符号有开始和结束符号、工作任务符号、判断分支符号、程序连接符号、程序流向符号等,如图4-1所示。
图4-1 常用程序流程图符号
单片机应用系统程序通常采用“超级循环”结构,其主程序流程框架如图4-2所示。
单片机应用系统“超级循环”结构程序的执行过程是在系统上电、初始化后执行一个不断循环扫描外部输入,以及执行相应功能处理模块的过程。对于较复杂的系统,可以采用中断方式及任务调度方式。
图4-2 “超级循环”框架
4.源程序编辑和编译
单片机应用系统程序开发都是借助于微型计算机完成。首先,需要对单片机的源程序进行编辑,汇编语言编写的源程序文件扩展名为“asm”,C51语言编写的源程序文件扩展名为“c”;然后,通过编译、汇编、链接等过程,将源文件转化成单片机可以识别的目标文件,目标文件的扩展名为“hex”;最后,将目标文件写入单片机的程序存储器中运行和调试。
5.程序调试
程序调试是指将编制的程序投入实际使用前,对程序进行测试和调整,使其符合设计要求的过程。程序调试可以通过软件仿真或硬件仿真的方法实现,调试程序可以验证程序的正确性、发现和纠正程序编写的缺点和错误。程序调试步骤在本书第9章介绍。