微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 怎样分析单片机程序

怎样分析单片机程序

时间:08-02 来源:互联网 点击:

,并应用在分布式系统中,结构清晰、调度灵活,适用于定时要求复杂、实时性要求强的系统。

4.3 阅读程序并画出程序流程图

程序流程图(简称框图)是用来描述程序处理过程的工具,推理过程清晰、直观、逻辑性强,可用于刻画程序的控制流逻辑,为程序测试和理解提供了一种重要的辅助手段。

只有分析者对程序进行多次扫描,画出每个模块的详细流程图,才能明确各个模块的任务和相互联系及资源分配和整个程序的设计思路,各程序模块的入口、出口和对CPU内部寄存器的占用情况。还有CPU对启动A/D转换要发什么控制信号;端口地址是什么;CPU用什么方法得知A/D转换结束,以便输入转换结果;采样周期多长等。这是分析和设计程序最重要的一步,也是逻辑分析和优化的基础。单片机常用功能模块有:定时、数据采集、数字采集、数字滤波、标度变换、控制算法、显示、报警、打印等。

4.4 算法分析

算法是为解决某一特定问题而采取的确定的有限的步骤,是求解某一问题所使用的一组定义明确的规则,在实际应用中又称为方法、方式、体制等。对有些较复杂的算法,最好用画流程图的方式来分析,这样思路清晰,简洁直观。

单片机控制系统程序设计中的重要内容,是根据被控制对象的特性,合理选择算法,以达到所要求的控制精度和指标。例如数据采集时进行数字滤波处理,常用的数字滤波方式有:程序判断滤波、中位置滤波、算术平均滤波、递推平均滤波法、防脉冲干扰平均值滤波、一阶滞后滤波等。因此,在阅读程序前,必须对该问题的解决方法有一定的了解,才能确定具体使用了哪一种算法。

4.5 资源分配

确定资源分配,包括ROM、定时器/计时器、RAM、中断源等。其中最关键的是片内RAM的分配,如00H~2FH工作寄存器,常用作指针、计数器、循环变量等;20H~2FH具有位寻址功能,用来存放各种标志位、逻辑变量、状态变量。对RAM应列出一张RAM资源详细分配表,以备阅读查用。在数据存储器中,安排好采样数据区、处理结果数据区、显示和打印数据区、标志区等。该分配表可手动画出,而用Excel表则更方便。

4.6 标志位

单片机有丰富的位操作指令和位存储资源。一类是为I/O操作服务的,如监测到的各种逻辑信息可存入位资源中,随时供程序使用。另一类是为程序本身服务,表明系统的各种状态特点,传递各模块之间的控制信息,控制程序流向等,这一部分称为软件标志。阅读程序时,对每个位资源必须进行详细记录,绘出软件标志的使用说明书。需要说明的项目有:名称和位地址:该软件标志在程序中的代号和存放的位单元。意义:说明逻辑1和逻辑0代表的状态或功能。对全局定义的软件标志,它有唯一的定义,对于局部定义的软件标志,必须注明其有效范围。生命周期:分析每个软件标志初始化的状态,程序运行时发生变化的条件和时刻,并进行记录。用户:对软件标志进行读操作的状态或模块称为该软件标志的用户。软件标志的使用有两种,一种是非破坏性的,只读不写;另一种是破坏性使用,这种软件标志多为某种申请标志,响应后立即清除,可避免重复响应。同一标志位在不同的状态下可有不同的含义。多位标志表示多个状态,这样节省标志位。

4.7 抗干扰处理

由于单片机工作环境比较恶劣和复杂,往往会影响系统的可*性、安全性。这些干扰有供电系统干扰、过程通道干扰、空间干扰等,会导致数据采集误差加大、控制状态失灵、数据受干扰发生改变、程序运行失常。

为保证单片机控制系统长期稳定运行,必须对各种干扰进行处理,包括必要的硬件电路,如硬件看门狗技术;软件抗干扰技术,如输入通道抗干扰技术、数字滤波、RAM数据冗余技术、软件陷阱等。软件和硬件抗干扰技术结合,这样才能达到最佳效果。

5 结语

程序设计是创造性的工作,而程序分析往往是为创造性的工作做准备。阅读程序是从已有的程序开始,分析其硬件、软件功能,对其消化、吸收,才能对程序进行修改、维护、优化程序,从而扩大系统的适应范围,提高技术指标和性能参数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top