怎样分析单片机程序
财务法规-七夕情话
科技情报开发与经济
文章编号:
1005-6033
(
200
6
)
03-0227-02
SCI-TECHINFORMATIONDEVELOP
MENT&ECONOMY2006
年第
16
卷第
3
期
收稿
日期:
2005-09-22
怎样分析单片机程序
张世生
(山东师范大学传播
学院,山东济南,
250014
)
摘要:分析单片机程序是为编写程序做准备,包括对
硬件电路和软件功能的分析,提
出了实用的分析方法,并总结出分析程序的一般步骤和应注意的问题。<
br>关键词:单片机;程序结构;算法分析
中图分类号:
TP368.1
文献标识码
:
A
设计单片机程序不是从零开始,而是先对已有的相关程序进行阅读
分析。分析程序
是设计、修改、优化、维护的重要步骤。因此,掌握单片机
程序的分析方法是非常必要的。
1<
br>详细阅读设备使用说明书
可投产(使用)的单片机系统都附有使用说明书(手册),它介绍了该<
br>(工作原理)技术指标、使用步骤、操作方法和注意事项,同时还有
产品的
系统的有关状
态、显示、报警等信息。这为阅读程序、划分模块分析功能
提供了极大的帮助。若有该系统,应对其反复
操作,熟悉使用步骤和操作
方法。操作时应全面详细,确保程序和外围电路的每一部分都执行过。
电路,
CMOS
电路多余输入端的处理(接正电源或接地),地线系统(系统
地,机
壳地或屏蔽地,数字地,模拟地)的安排,信号线包括读、写信号线、
(
PSEN
)、
地址锁存信号(
ALE
)、复片选信号线、时钟信号线、读选通信号
位信号等的连接及
I/O
地址的分配,掌握这些对程序的阅读至关重要。
2
了解单片机芯片型号
及功能
目前,具有代表性的单片计算机有:
8
位单片机,即
51
系列
;
16
位单
片机,即
96
系列;
32
位嵌入式微处
理器,即
X86
结构的
i386EX
系列;超
低功耗
i48
6
系列和
RISC
结构的
i960
系列等。由于
MCS—
51
系列单片
机具有集成度高,处理功能强,可靠性好,价格低廉等优点,它在
智能仪
器仪表、控制工程、测试技术等领域得到了广泛的应用。繁多的单片机品
种,使阅读者必
须首先知道该电路中具体使用了哪一种单片机芯片,弄
清其引脚功能、存储器结构、指令系统等。
4
4.1
阅读分析程序
单片机程序所用语言
由于汇编语言精炼高效,小型的
单片机程序常采用汇编语言。而
C
语言既有高级语言的各种特点,又可对硬件进行操作,进行结
构化程序
设计。对
MCS
—
51
单片机,目前采用比较多的有
ASM51
,
C51
等。此外,
还有汇编语言与
BASIC
语言混编的单片机程序。
3
分析掌握外围电路各部分的作用
在单片机应用系统中,硬
件是基础,软件的功能是对硬件进行合理
4.2
单片机程序的基本结构与组成
在整个单
片机程序中初始化、自检部分安排在单片机程序的开始
,
随后便是主(监控)程序,各模块和子
程序,此外还有字形表及数据表等。
调配和使用。在控制系统的开发中,软件和硬件设计基本上是同步进
行
的。
4.2.1
传统的程序结构
单片机程序一般采用模块化设计。其中心思
想是将一个功能较多、
3.1
单片机常用的外围电路
单片机常用的外围电路包括程序扩
展电路、内存扩展电路、并行口
程序量较大的程序整体按其功能划分成若干个相对独立的程序段。通常<
br>把控制单片机应用系统工作的整个程序称为监控程序。监控程序按模块
分为监控主程序和命令处理
子程序。命令处理子程序完成各种命令所规
定的具体操作,它按各种命令再分为不同的子程序模块。它的
编程方法
与功能要求与系统硬件密切相关,没有通用的方法。而监控主程序是接
受和分析来自键
盘的命令
,进而把控制转到相应的处理子程序的入口,
起引导作用。
扩展电路、串行通
讯电平转换电路、(
LCD
)数码显示
Watchdog
电路、
LE
D
电路、键盘电路、指示灯电路等,同时还必
A/D
转换电路、
D/A
转化电路、
须明确该电路的实现方式。单片机外围电路简图见图
1
。
3.2
其他电路及连线
为了阻抗匹配,增设驱动电路,驱动大电流电路时采用的光电隔离
!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
TheAppl
icationoftheDiversityReceptionTechnique
inSDHDi
gitalMicrowaveTransmissionSystem
LIUWei-dong
ABSTRACT
:
Thediversityreceptiontechniquepl
aysanimportantroleinthelarge-capacitydigitalmicrow
ave
transmission.Thispaperexpoundstheconcepts,
featuresandimplementationschemesofseveralki
ndsofthediversity
receptiontechniques
,
a
nddemonstratestheprospectofthecombinationofvarious
diversityreceptiontechniques.
KEYWORDS
:
diversityreceptiontechnique
;
digitalmicrowa
vetransmission
;
selectivefading
227
张世生怎样分析单片机程序本刊
E-mail:bjb@mail.sxinfo.net
信息技术
在一键多义的情况下,监控主程序要确定控制的转向,除了要知道
“状况”, 即“状态”。可用状态表法设计
当前按键外
,还得明确系统目前的
监控主程序,其核心 是设计一张状态表,规定应用系统在某一状态下各
按键的含义,包括应执行哪一个命令处理子程序和完成 状态的正确变
迁。状态表的格式见表
1
。
表
1
现态当前按键
状态表的格式
次态执行模块
确定具体使用了哪一种算法。
4.5
资源 分配
确定资源分配,包括
ROM
、定时器
/
计时器、中断源等。其中 最关
RAM
、
计数器、键的是片内
RAM
的分配,如
00H ~2FH
工作寄存器,常用作指针、
循环变量等;
20H~
逻辑变量、
2FH
具有位寻址功能,用来存放各种标志位、
状态变量。对
RAM
应列出 一张
RAM
资源详细分配表,以备阅读查用。在
数据存储器中,安排好采样数据区、处 理结果数据区、显示和打印数据区、
标志区等。该分配表可手动画出,而用
Excel
表则更方便。
0
1
……
4.6
标志位
单片机有丰富的位操作 指令和位存储资源。一类是为
I/O
操作服务
的,如监测到的各种逻辑信息可存入位资 源中,随时供程序使用。另一类
是为程序本身服务
,表明系统的各种状态特点,传递各模块之间 的控制
信息,控制程序流向等,这一部分称为软件标志。阅读程序时,对每个位
资源必须进行详 细记录,绘出软件标志的使用说明书。需要说明的项目
有:名称和位地址:该软件标志在程序中的代号和 存放的位单元。意义:
说明逻辑
1
和逻辑
0
代表的状态或功能。对全 局定义的软件标志,它有
唯一的定义,对于局部定义的软件标志,必须注明其有效范围。生命周
期:分析每个软件标志初始化的状态,程序运行时发生变化的条件和时
刻,并进行记录。用户:对软件标 志进行读操作的状态或模块称为该软件
标志的用户。软件标志的使用有两种,一种是非破坏性的,只读不 写;另
一种是破坏性使用
,这种软件标志多为某种申请标志,响应后立即清除,
可避免 重复响应。同一标志位在不同的状态下可有不同的含义。多位标
志表示多个状态,这样节省标志位。n
设计时,在内存开辟一个现态单元记忆当前的状态。当有键按下时,
监控主程序根据当前 按键的编码和现态这两个关键字去查阅状态表,从
而确定系统该执行哪一个处理子程序及系统的下一个状 态是什么,立即
修改现态单元的内容,以便有新的按键时系统能做出正确的响应。在每
个状态下 并非所有的按键都有定义
,即有空键。
当某个中断发生时,中断服务程序设置相应的标志,而主 程序不断
地判断这些标志,以决定启动哪一个处理程序。相应的处理程序处理完
相关的任务后, 清除此标志,然后把控制权交还给主程序。对于延时或定
时处理,可用一个定时器来完成。
4. 2.2
基于时间片的单片机程序
在单片机实时控制系统中引入了现代操作系统的多任务思想,采 用
4.7
抗干扰处理
由于单片机工作环境比较恶劣和复杂,往往会影响系统的可靠性、 安
时间片轮转调度算法对传统单片机编程思想进行了改进,并应用在分布式
系统中,结构清晰、 调度灵活,适用于定时要求复杂、实时性要求强的系统。
全性。这些干扰有供电系统干扰、过程通道干扰 、空间干扰等,会导致数据
采集误差加大、控制状态失灵、数据受干扰发生改变、程序运行失常。
为保证单片机控制系统长期稳定运行,必须对各种干扰进行处理,
包括必要的硬件电路,如硬件看门狗 技术;软件抗干扰技术,如输入通道
抗干扰技术、数字滤波、软件陷阱等。软件和硬件抗
RAM
数据冗余技术、
干扰技术结合
,这样才能达到最佳效果。
4.3
阅读 程序并画出程序流程图
(简称框图)是用来描述程序处理过程的工具,推理过程
程序流程图清晰、直观、逻辑性强,可用于刻画程序的控制流逻辑,为程序测试和理
解提供了一种重要的辅助手 段。
只有分析者对程序进行多次扫描,画出每个模块的详细流程图,才能
明确各个模块的任务和 相互联系及资源分配和整个程序的设计思路,各程
序模块的入口、出口和对
CPU
内部 寄存器的占用情况。还有
CPU
对启动
5
结语
程序设计是创造性的工 作,而程序分析往往是为创造性的工作做准
A/D
转换要发什么控制信号;端口地址是什么;< br>CPU
用什么方法得知
A/D
转换结束,以便输入转换结果;采样周期多长等。 这是分析和设计程序最重
数要的一步,也是逻辑分析和优化的基础。单片机常用功能模块有:定时、据采集、数字采集、数字滤波、标度变换、控制算法、显示、报警、打印等。
备。阅读程序是从已有 的程序开始,分析其硬件、软件功能,对其消化、吸
维护、优化程序,从而扩大系统的适应范围,提收, 才能对程序进行修改、
高技术指标和性能参数。
参考文献
[
1
][
2
]
张迎新,杜小平
.
单片机初级教程[
M
]
.
北京:北京航空航天大学出版
周锐鹏
.
基于消息机制的
C51
单片机程序设计[
J
]
.
电工技术与自动
(责任编辑 :王雅利)
社,
2000.
(
4
):
66-68.
化
,
2003
4.4
算法分析
算法是为解决某一特定问题而采取的确 定的有限的步骤,是求解某
一问题所使用的一组定义明确的规则,在实际应用中又称为方法、方式、体制等。对有些较复杂的算法,最好用画流程图的方式来分析,这样思路
清晰,简洁直观。
单片机控制系统程序设计中的重要内容,是根据被控制对象的特
性,合理选择算法,以达到所要求的控制 精度和指标。例如数据采集时进
行数字滤波处理,常用的数字滤波方式有:程序判断滤波、中位置滤波、
算术平均滤波、递推平均滤波法、防脉冲干扰平均值滤波、一阶滞后滤波
等。因此
,在 阅读程序前,必须对该问题的解决方法有一定的了解,才能
───────────────
第 一作者简介:张世生,男,
1967
年
11
月生,
1993
年毕业于聊城大
学物理系,讲师,现为山东师范大学传播学院教育技术专业
2003
级 硕士
研究生,山东省济南市文化东路
88
号,
250014.
How toAnalyzetheProgramforMCU
ZHANGShi-sheng
ABS TRACT:AnalyzingaprogramofMCUisapreparatoryworkforp rogramming,whichincludestheanalysisonthe
hardwa recircuitandsoftwarefunction.Thispaperputsforwards omeappliedanalyzingmethods,andsumsupthegeneral
proceduresforanalyzingprogramandsomeproblemsneedin gattention.
KEYWORDS:MCU;programstructure;algor ithmanalysis
228