软件设计包括拟定程序的总体设计方案、画出程序流程图、编制具体程序以及程序的检查修改等,现对它们分述如下。
程序总体设计是指从系统高度考虑程序结构、数据形式和程序功能的实现方法和手段。程序总体设计包括拟定总体设计方案、确定算法和绘制程序流程图等。
在拟定总体设计方案时,由于一个实际的单片机控制系统的功能复杂、信息量大和程序较长,这就要求设计者能合理地选用切合实际的程序设计方法。常用的程序设计方法有以下三种:
(1)模块化程序设计。
(2)自顶向下逐步求精程序设计。
(3)结构化程序设计。
模块化程序设计的中心思想是要把一个复杂的应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程、调试和查错,然后装配起来联调,最终成为一个有实用价值的程序;自顶向下逐步求精程序设计要求先从系统一级的主干程序开始,集中力量解决全局问题,然后层层细化逐步求精,最终完成一个复杂程序的设计;结构化程序设计是一种理想的程序设计方法,它是指在编程过程中对程序进行适当的限制,特别是限制转向指令的使用,用于控制程序的复杂程度,使程序上下文与执行流程保持一致。不论采用何种程序设计方法,设计者均应根据系统的总任务和控制对象的数学模型画出程序的总体框图,以描述程序的总体结构。
在总体框图基础上,设计者还应结合数学模型确立各子任务的具体算法和步骤,并演化成计算机能处理的形式,然后画出子模块的所有流程图。
程序流程图绘制成后,整个程序的轮廓和思路已十分清楚。设计者就可统筹考虑和安排一些全局性的问题。例如:程序地址空间分配、工作寄存器安排、数据结构、端口地址和输入/输出格式等。因此,只要编程者既熟悉所选单片机内部结构、功能和指令系统,又能掌握一定的程序设计方法和技巧,那么依照程序流程图来编出具体程序就不会十分困难了。
一个实际的应用程序编好以后,往往会有不少潜在隐患和错误,这是不足为奇的。但如果这些隐患和错误不加排除和修改就很容易产生并发症,使得本来很好的程序陷入不可收拾的地步。因此,源程序编好后在上机调试前进行静态检查是十分必要的。
对编好的程序进行静态检查往往会加快整个程序的调试进程,静态检查采用自上而下的方法进行,如发现错误及时加以修改。