程序是指令的集合,当用单片机求解某些问题时,必须按工作要求编排指令序列,这一过程称为程序设计。程序设计是软件开发工作的重要部分,是工程性的工作,所以要有规范。
程序设计往往以某种程序设计语言为工具,过程大致可分为6步:
①分析问题,确定问题的数学模型。接到一个单片机项目设计文件之后,应进行全面分析,将解决问题所需要的条件、原始数据、输入和输出信息理清楚,并找出解决问题的规律,归纳出数学模型。
②确定符合单片机运算的算法。计算机算法比较灵活,一般要优先选取逻辑简单、运算速度快、精度高的算法,还要考虑编程简单、占用内存少的算法。
③绘制流程图。流程图是使用图形表示算法思路的一种方法,能直观地表示解决问题的过程和先后顺序,对后续程序编写起到一个指导作用。
④分配内存单元。原始数据、运行中的中间数据及结果等都需要存放在指定的存储单元中,这就需要确定程序中的数据(包括工作单元的数量),并为其分配存储单元。
⑤按流程图编写程序。
⑥调试程序。程序调试是为了修改错误,这是一项熟能生巧的重要工作。一般来说,程序的调试需要一定技巧,一个程序需要经过多次修改才能成功。
2)程序流程图
程序流程图又称程序框图,用统一规定的标准符号描述程序运行具体步骤的图形表示。程序流程图的设计,通过对输入输出数据和处理过程的分析,将单片机的主要运行步骤和内容用图形表示出来,是进行程序设计的最基本依据,直接关系到程序设计的质量。
不论什么程序设计语言,程序设计都有3种基本结构:顺序结构、选择结构和循环结构。三种基本结构的特点:一个入口,一个出口,不出现死循环和死语句。构成流程图的图形符号及其作用见表1.2。
表1.2 流程图的图形符号及其作用
续表(www.xing528.com)
3)单片机编程语言
(1)机器语言
机器语言(Machine Language)是用二进制代码表示的微处理器能直接识别和执行的一种机器指令的集合。它是设计者通过硬件结构赋予单片机的操作功能。机器语言具有灵活、直接执行和速度快等特点。一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。指令的基本格式包含操作码字段和地址码字段,其中,操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。
用机器语言编写程序,编程人员首先要熟记所用的全部指令代码和代码的涵义。着手编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态,这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是0和1组成的指令代码,可读性差,容易出错。除了生产厂家的专业人员外,绝大多数的程序员已不再学习机器语言。
(2)汇编语言
汇编语言(Assembly Language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程把汇编语言程序转换成机器指令。一般来说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
在实际应用中,汇编语言通常被应用在底层,以及硬件操作和高要求的程序优化的场合,比如驱动程序、嵌入式操作系统和实时运行程序等。
(3)高级语言
相对于机器语言而言,高级语言(High-level Programming Language)是一种指令集的体系,是CPU可直接解读的数据,是高度封装了的编程语言。它以人类的日常语言为基础,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员更容易编写,也有较高的可读性。由于早期发展主要集中在美国,一般的高级语言都是以英语为蓝本。
高级语言并不特指某一种具体的语言,而是包括很多种编程语言,比如流行的Java,C,C++,C#,Pascal,Python,Lisp,Prolog,FoxPro等;这些语言的语法、命令格式都不相同,常见的编程语言及其用途见表1.3。
表1.3 常用的编程语言及其用途
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。