(佛山食神网络智能科技有限公司)
摘要:单片机属于一种集成电路芯片,目前在社会生活中的各个行业有着广泛的应用,在家用电器以及汽车电子等领域发挥着不可替代的作用,迄今为止单片机主要经历了三个阶段,并且随着研究力度的加大仍在不断优化与发展,本文立足于单片机应用程序的优劣效果,概括分析了应用程序及其具体设计,并总结了应用程序的具体优化措施。
关键词:单片机;应用编程;技巧
引言
单片机又称单片微控制器,普遍具备体积小、价格低廉以及重量轻等特点,给社会生产与生活带来了极大的便利性,其不只是完成逻辑功能,更侧重于实现计算机系统向芯片的集成。单片机的应用系统主要由软件以及硬件组成,单片机即是借助软件系统中的由特定指令组成的应用程序发挥作用,并为后续工作提供指导。对于单片机应用系统的编写过程而言,涉及到的程序语言有汇编语言与高级语言,其中,汇编语言具备语言直观、易于理解与记忆等优势,因此在汇编语言程序中应用广泛。此外,一个优良的汇编程序需要满足执行时间短以及存储空间小等要求。
1程序优劣分析
以下为两个基础的编制数据传送功能的程序段,以下进行详细对比。
(1)方法一的程序为:
mova,3eh
mov3eh,3dh
mov3dh,3ch
mov3ch,3bh
mov3bh,00h
(2)方法二的程序为:
clra
xcha,3bh
xcha,3ch
xcha,3dh
xcha,3eh
上述两种编程方法都可以完成同一数据传送功能,但是方法一的空间与执行时间分别为14B的指令代码与9个机器周期,而方法二的空间与执行时间则分别为9B的指令代码与5个机器周期,从中不难看出,方法二实现了总体效率的显著提升,体现了算法不同引起的编制程序的差异。
2单片机的应用程序分析和设计
2.1流程图的设计
编写程序由算法决定,同时会在程序运行的时间与效率等方面存在差异,为了有效应对上述问题,需要保障流程图设计的水平与质量,首先需要选择运行快、内存占比小的算法,在确定好算法之后,需要将其绘制成流程图,这在整个应用程序设计的环节中占据了重要的位置。以空调温度控制为例,在制冷过程中,如果排出温度比吸入温度低六度则为正常运作状态,否则表明其中出现了故障,并影响了空调机的正常工作。在此情况下,我们可以设定XRZ为吸入空气的温度值的地址,并将该温度值存储于上述地址;将PCZ设定为排出空气的温度值的地址,并将该温度值存储于上述地址;设定KZ为空调状态地址,并空调机工作状态存储于KZ单元。当空调处于正常工作状态时,KZ为0,否则等于FFH。如图1所示,为空调工作温度的控制流程图。
图1空调工作温度控制流程
2.2复杂程序的设计
对于复杂程序的具体设计过程而言,循环程序与子程序是其中的重要组成部分,可以有效缩减程序的实际长度与内存占比,有利于简化应用程序的逻辑结构,从而更利于对应用程序进行调试,此时,基于此程序设计的机器周期数量不会减少,但是程序的编制效率得到了大幅度提升。在重复执行机器的同一组操作时需要使用循环程序,在重复使用某一程序时则需要使用子程序,主要包括了数制的转换以及函数的计算等,在上述情形中,如果不借助循环程序与子程序则需要对同一个指令进行重复书写,从而大大增加了工作量,同时,还导致了内存占比的增加,在存储空间等方面造成不必要的浪费。
3应用程序的有效优化措施
对于同一个汇编程序而言,存在多种实现方法,各应用程序耗费的空间与时间也各不相同,在编写过程中,应该综合应用程序的实际要求进行编写,对于一般控制系统而言,需要将空间放在首要位置,确保应用程序得以顺利安装;对于实时控制系统而言,则需要以时间为重,确保程序执行时间得到有效缩减。综上,为了满足各应用系统对时间与空间等方面的要求,需要在编写过程中加以优化,最大程度地满足系统需求。
3.1时间的优化
实现应用编程时间的优化主要有以下三种途径:一是尽量编写周期短的指令,这也是一种基础的优化方法,以乘除运算的编写为例,借助移位的方法可以完成;二是利用寄存器寻址,其指令本身的周期较短,在执行过程中可以显著减少执行时间;三是借助空间替换时间的方式缩短时间,该方式适用于存储空间较大的应用系统,即利用闲置的存储空间编写执行时间较短的应用程序,从而可以提升存储空间的利用率,例如,将一个循环程序进行划分使其独立执行,将部分含参数的子程序进行设计,使其可以直接投入使用,有利于参数赋值时间的有效缩减。
3.2空间的优化
对应用程序的空间进行优化时,除了使用循环程序与子程序之外,还可以通过复用存储空间实现空间的优化,一般而言,一个存储空间只具备一种用途,但是受资源的限制,复用存储空间在一定程度上可以显著提高资源利用率。此外,在应用系统对时间要求较低的情况下,可以通过时间换空间的方式,将程序大小进行压缩,以及将某些功能相近的程序进行合并。
3.3建立子程序库
现阶段,单片机的应用程序普遍采用结构化程序设计法,在程序编写过程中,从建立的子程序库可以直接取用所需子程序或者稍加调整,这在很大程度上提升了编程效率。子程序库的建立一般具备以下特点:一是相容性,即各子程序的入口与出口的条件相容;二是功能多样性,从而避免用户重复性操作等情况;三是高质量,即对算法进行优化,提升运行速度,及时对错误信息做出准确反馈;四是透明化,指的是在运行结束后,子程序不能损坏用户现场。
3.4解决单片机的抗干扰性问题
现阶段,防干扰的方式主要有去除干扰源以及截断干扰途径等,但是上述方法在实现过程中具备一定的难度,因此最有效的途径为提升单片机的抗干扰能力。对于单片机的干扰性方面,复位是最常见的问题,在解决程序跑飞问题时,可以借助软件陷阱等实现程序的复位,因此,在进行单片机软件的抗干扰处理的过程中,处理好复位状态至关重要。一般而言,为了对复位状态进行准确合理的判断,单片机中都含有标志寄存器,同时,在实际使用中,也可以根据实际需求在RMA中增添标志,在后续程序复位时,借助上述标志可以全面掌握复位的具体原因,此外,还可以根据标志转至对应的程序,保障了程序运行的连续性。
3.5测试单片机系统的可靠性
在单片机系统设计完毕以后,不同的单片机系统产品在测试项目与方法等方面存在一定的差异,但是部分测试属于基础与必要项目,列举如下:软件功能完善性、ESD与EFT测试、上电与掉电测试以及老化测试等。此外,还可以对实际使用过程中可能出现的损坏进行模拟,例如,用衣织物等对单片机的接触端口进行摩擦,以对其抗静电能力进行测试;将单片机靠近大功率电器,以测试其抗电磁干扰能力。
4结语
综上所述,对于单片机应用编程而言,程序的逻辑性与可行性是进行优劣判断的重要依据,因此在应用程序的设计过程中,需要综合程序的内存占比、执行效率以及执行时间等多方面的因素,为了进一步提升编程效率,需要借助一定的技巧,主要包括合理设计流程图、建立健全子程序库以及优化应用程序的时间与空间等方法,从而可以在提升整体执行效能方面取得良好的效果。
参考文献:
[1]孙吴松,王烈准,刘荣富.单片机汇编程序编写技巧[J].科技向导?职业教育,2012(155).
[2]翟晓华,程珩.浅谈单片机汇编语言编程技巧[J].机械工程与自动化,2007(143).
[3]符红霞.C语言和汇编语言混合编程电子设备中的应用研究[J].工业控制计算机,2011(14).
[4]鲁杰爽.汇编程序开发中的“隐含错误”分析[J].濮阳职业技术学院学报,2010(155).
[5]包敬海,韦美兰.汇编和C混合编程的研究[J].电脑与电信,2011(155).