怎样分析单片机程序
设计单片机程序不是从零开始,而是先对已有的相关程序进行阅读分析。分析程序是设计、修改、优化、维护的重要步骤。因此,掌握单片机程序的分析方法是非常必要的。
1 详细阅读设备使用说明书
可投产(使用)的单片机系统都附有使用说明书(手册),它介绍了该产品的(工作原理)技术指标、使用步骤、操作方法和注意事项,同时还有系统的有关状态、显示、报警等信息。这为阅读程序、划分模块分析功能提供了极大的帮助。若有该系统,应对其反复操作,熟悉使用步骤和操作方法。操作时应全面详细,确保程序和外围电路的每一部分都执行过。
2 了解单片机芯片型号及功能
目前,具有代表性的单片计算机有:8位单片机,即51系列;16位单片机,即96系列;32位嵌入式微处理器,即X86结构的i386EX系列;超低功耗i486系列和RISC结构的i960系列等。由于MCS—51系列单片机具有集成度高,处理功能强,可*性好,价格低廉等优点,它在智能仪器仪表、控制工程、测试技术等领域得到了广泛的应用。繁多的单片机品种,使阅读者必须首先知道该电路中具体使用了哪一种单片机芯片,弄清其引脚功能、存储器结构、指令系统等。
3 分析掌握外围电路各部分的作用
在单片机应用系统中,硬件是基础,软件的功能是对硬件进行合理调配和使用。在控制系统的开发中,软件和硬件设计基本上是同步进行的。
3.1 单片机常用的外围电路
单片机常用的外围电路包括程序扩展电路、内存扩展电路、并行口扩展电路、Watchdog电路、串行通讯电平转换电路、LED(LCD)数码显示电路、键盘电路、A/D转换电路、D/A转化电路、指示灯电路等,同时还必须明确该电路的实现方式。单片机外围电路简图见图1。
3.2 其他电路及连线
为了阻抗匹配,增设驱动电路,驱动大电流电路时采用的光电隔离电路,CMOS电路多余输入端的处理(接正电源或接地),地线系统(系统地,机壳地或屏蔽地,数字地,模拟地)的安排,信号线包括读、写信号线、片选信号线、时钟信号线、读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等的连接及I/O地址的分配,掌握这些对程序的阅读至关重要。
4 阅读分析程序
4.1 单片机程序所用语言
由于汇编语言精炼高效,小型的单片机程序常采用汇编语言。而C语言既有高级语言的各种特点,又可对硬件进行操作,进行结构化程序设计。对MCS—51单片机,目前采用比较多的有ASM51,C51等。此外,还有汇编语言与BASIC语言混编的单片机程序。
4.2 单片机程序的基本结构与组成
在整个单片机程序中初始化、自检部分安排在单片机程序的开始,随后便是主(监控)程序,各模块和子程序,此外还有字形表及数据表等。
4.2.1 传统的程序结构
单片机程序一般采用模块化设计。其中心思想是将一个功能较多、程序量较大的程序整体按其功能划分成若干个相对独立的程序段。通常把控制单片机应用系统工作的整个程序称为监控程序。监控程序按模块分为监控主程序和命令处理子程序。命令处理子程序完成各种命令所规定的具体操作,它按各种命令再分为不同的子程序模块。它的编程方法与功能要求与系统硬件密切相关,没有通用的方法。而监控主程序是接受和分析来自键盘的命令,进而把控制转到相应的处理子程序的入口,起引导作用。
在一键多义的情况下,监控主程序要确定控制的转向,除了要知道当前按键外,还得明确系统目前的“状况”,即“状态”。可用状态表法设计监控主程序,其核心是设计一张状态表,规定应用系统在某一状态下各按键的含义,包括应执行哪一个命令处理子程序和完成状态的正确变迁。状态表的格式见表1。
设计时,在内存开辟一个现态单元记忆当前的状态。当有键按下时,监控主程序根据当前按键的编码和现态这两个关键字去查阅状态表,从而确定系统该执行哪一个处理子程序及系统的下一个状态是什么,立即修改现态单元的内容,以便有新的按键时系统能做出正确的响应。在每个状态下并非所有的按键都有定义,即有空键。
当某个中断发生时,中断服务程序设置相应的标志,而主程序不断地判断这些标志,以决定启动哪一个处理程序。相应的处理程序处理完相关的任务后,清除此标志,然后把控制权交还给主程序。对于延时或定时处理,可用一个定时器来完成。
4.2.2 基于时间片的单片机程序
在单片机实时控制系统中引入了现代操作系统的多任务思想,采用时间片轮转调度算法对传统单片机编程思想进行了改进
- 跟我来编一个最简单的单片机程序(12-03)
- PIC16C5X单片机程序存储器(12-02)
- 单片机程序运行加密(12-01)
- 单片机程序巧用printf(12-01)
- 单片机程序汇编和C语言-LED灯的循环移动(12-01)
- 时间片轮调的单片机程序结构(12-01)