当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]探讨了MCS-51系列单片机结构化程序设计相关问题,研究了MCS-51系列单片机结构化程序的三种基本结构,并给出了程序实现方法范例,介绍了MCS-51系列单片机结构化程序设计步骤及各部分具体设计要求。

1 MCS-51系列单片机结构化程序设计概述

结构化程序指程序组成结构化、功能模块化、运行流程化。结构化程序要求将处理特定任务的代码和数据与程序其余部分隔离,在MCS-51系列单片机结构化程序中,实现隔离的方法是将处理特定任务的指令和数据设计成子程序或中断服务子程序。这些子程序或中断服务子程序称作功能模块,其具有确定功能,处理特定任务,解决专门问题。

在MCS-51系列单片机结构化程序设计时,按照总体规划和总体设计,由若干软件设计人员分别编程设计各功能模块,再依据软件结构和程序流程,由若干功能模块组成结构化程序,实现应用程序整体功能,解决复杂的实际问题。

MCS-51系列单片机结构化程序具有结构清晰、逻辑性强、易于维护、便于共享、运行稳定、可靠性高等特点。按照结构化程序设计要求编程,有助于规范软件设计人员的编程工作,有助于提高软件设计人员的编程效率,有助于提升软件设计人员的编程水平。

2 三种基本结构及程序实现方法

MCS-51系列单片机结构化程序由若干功能模块构成,功能模块由三种基本结构组成,即顺序结构、选择结构、循环结构。由这三种基本结构组成的功能模块,能实现各种程序算法,解决复杂实际问题。

2.1 顺序结构

在顺序结构程序中,按先后顺序,CPU逐条执行指令或逐段执行程序段。顺序结构分为逐条顺序结构和逐段顺序结构两种。逐条顺序结构如图1所示,逐段顺序结构如图2所示。


2.2 选择结构

在选择结构程序中,CPU执行条件判断指令(或间接转移指令),依据条件(或转移目的地址)执行对应分支程序段。选择结构分为二分支选择结构和多分支选择结构。

2.2.1 二分支选择结构

在二分支选择结构程序中,CPU执行条件判断指令,判断转移条件。当条件满足时,CPU执行程序段1;当条件不满足时,CPU执行程序段2,实现了二分支选择功能。条件转移类指令、比较不相等转移类指令均可作为条件判断指令。二分支选择结构如图3所示。程序实现方法参见范例1。

范例1:
CJNE A,# DATA,PGM2
PGM1:{程序段1}
LJMP EXIT
PGM2:{程序段2}
EXIT:┇

2.2.2 多分支选择结构

在多分支选择结构程序中,CPU执行间接转移指令,计算多分支转移目标地址,依据多分支转移目标地址,CPU执行对应分支程序段,实现了多分支选择功能。在多分支选择结构程序实现方法范例2中,A中保存有多分支选择条件值n,多分支选择结构如图4所示。程序实现方法参见范例2。

范例2:
PGM:MOV R1,A
RL A
ADD A,R1
MOV DPTR,# PGMTB
JMP @A+DPTR
PGMTB: LJMP PGM0
LJMP PGM1

LJMP PGMn

PGM0:{程序段0}
LJMP EXIT
PGM1:{程序段1}
LJMP EXIT

PGMn:{程序段n}
LJMP EXIT
EXIT:┇

2.3 循环结构

在循环结构程序中,CPU执行条件转移指令,依据条件决定是否继续执行循环体。循环结构分为当型循环结构和直到型循环结构两种,下面分别介绍。

2.3.1 当型循环结构

在当型循环结构程序中,CPU首先执行条件转移指令,判断循环条件。当条件满足时,CPU继续执行循环体程序;当条件不满足时,CPU退出循环结构程序,接着执行后续程序。当型循环结构如图5所示,程序实现方法参见范例3、范例4。

范例3:
LOP1: JB BIT,LOP2
LJMP EXIT
LOP2: {循环体}
LJMP LOP1
EXIT:┇
范例4:
LOP1: JNB BIT,EXIT
{循环体}
LJMP LOP1
EXIT:┇

2.3.2 直到型循环结构

在直到型循环结构程序中,CPU首先执行循环体程序,再执行条件转移指令,判断循环条件。当条件满足时,CPU继续执行循环体程序;当条件不满足时,CPU退出循环结构程序,接着执行后续程序。直到型循环结构如图6所示,程序实现方法参见范例5、范例6。

范例5:
MOV R2,#COUNT
LOP1:{循环体}
DJNZ R2,LOP1

范例6:
LOP1:{循环体}
JB BIT,LOP1

说明:条件转移类指令、比较不相等转移类指令、减1不为0转移指令均可作为条件判断指令,由CPU决定是否继续执行循环体,从而实现了循环执行程序段功能。

3 MCS-51系列单片机结构化程序设计步骤

MCS-51系列单片机结构化程序设计步骤如图7所示,现对各部分具体设计要求分别叙述。


(1)需求分析

通过现场调研及与用户交流,全面、深入、准确地分析MCS-51系列单片机结构化程序设计所要解决的实际问题,搞清实际问题所涉及的应用环境、应用对象、应用过程、应用要求、应用联系,从整体上得出结构化程序设计所要达到的目标及系统所要实现的功能、完成的具体任务、产品的形式,最后形成需求分析报告。

(2)总体规划

在需求分析的基础之上,制订出MCS-51系列单片机结构化程序设计的总体规划。总体规划中应确定MCS-51系列单片机结构化程序设计的设计原则、设计目标、设计任务、设计方式、设计进度和设计协作。

(3)总体设计

基于需求分析,按照总体规划进行总体设计,确定出MCS-51系列单片机结构化程序设计的具体技术方案。总体设计包括系统性能设计、功能设计、工作原理设计、软件结构设计、程序流程设计和通信协议设计。

(4)模型建立

总体设计确定了软件结构的所有功能模块,某些功能模块涉及处理复杂实际问题,应根据相关理论和专业知识,对复杂实际问题建立数学模型,为后续算法设计提供依据。

(5)数据结构

依据功能模块所要完成的指定功能、所要执行的具体任务、所要处理的具体问题,针对为特定功能模块所建立的数学模型,应确定出功能模块的输入数据、暂存数据、输出数据、数据关系。对于MCS-51系列单片机结构化程序设计,应统筹规划内部RAM、确定数据类型、定义程序变量、分配数据存储单元,为后续算法设计打好基础。

(6)算法设计

结构化程序设计包括结构化算法设计。在建立了特定功能模块的数学模型、规划了特定功能模块的数据结构之后,应对数学模型进行结构化算法设计,结构化算法设计的原则如下:
①自顶向下、逐步求精。基于需求分析制订出总体规划,依据总体规划完成总体设计,按照总体设计自顶向下对总任务逐层分解细化,直到每个子任务仅处理一个特定问题。
②模块化设计。由自顶向下、逐步求精得出的子任务处理程序称为功能模块,处理复杂实际问题的应用程序由多层若干功能模块组成。
③功能模块特性。功能模块仅处理一个特定子任务;功能模块由顺序、选择和循环三种基本结构组成;功能模块可独立编程、独立编译、独立调试;功能模块可被上层功能模块调用。

(7)程序编辑

按照数据结构规划,对软件结构中各层功能模块应分别进行编程。对于建有数学模型、设有算法的功能模块,应依据算法设计进行编程。

(8)程序编译

利用集成开发调试工具软件,对各层功能模块源程序分别编译,检查程序语法。若发现语法错误,应修改源程序重新编译,直到所有功能模块源程序编译通过为止。

基于总体设计,参照软件结构图及程序流程图,将各层功能模块集成到一起,形成一个完整应用程序,并进行统一编译。若发现语法错误,应修改应用程序重新编译,直到应用程序编译通过为止。

(9)程序调试

利用集成开发调试工具软件,首先对各层功能模块分别进行调试,检查各功能模块的功能是否正确。若发现功能逻辑错误,应修改程序错误后重新调试,直到所有功能模块调试通过为止。然后对应用程序进行统调,检查应用程序的总体功能是否正确。若发现功能逻辑错误,应跟踪查找错误原因,确定引起错误的位置,修改程序错误后重新调试,直到应用程序调试通过为止。

(10)文档整理

应用程序调试通过后,应对应用程序进行测试,测试通过后,应整理出应用程序的整套技术文档。技术文档包括需求分析报告、总体规划报告、总体设计报告、源程序文件和使用说明。

本文探讨了MCS-51系列单片机结构化程序设计相关问题,对于其他系列单片机,软件程序设计人员可参照本文进行对应结构化程序设计。对于本文所述功能模块,软件设计人员应结合实际、准确理解、整体考虑、总体设计、按功能分层次设计好各层功能模块。本程序的设计步骤及硬件设计部分,对MCS-51系列单片机应用系统设计同样适用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式处理器是一种特殊的计算机处理器,它被设计用于嵌入到各种设备和系统中,以实现特定的功能。由于其低功耗、高性能和可靠性等特点,嵌入式处理器在许多领域都有广泛的应用,如汽车电子、工业控制、医疗设备等。本文将对嵌入式处理器...

关键字: 嵌入式处理器 嵌入式系统

2023年10月10日, [恩智浦创新技术论坛] 在深圳湾万丽酒店举行,众多工业、物联网、新能源和医疗等行业的企业出席论坛,深入交流市场趋势与行业洞察,一同讨论如何协同面对市场的机遇与挑战,共同促进未来市场的发展。米尔电...

关键字: NXP 嵌入式处理器

据业内信息报道,昨天 AMD 在 Embedded World 上宣布了其第四代 EPYC 嵌入式处理器,该处理器采用其 Zen 4 架构,旨在云和企业计算以及工厂车间工业边缘服务器中的嵌入式网络、安全、防火墙和存储。

关键字: Zen 4 AMD EPYC 嵌入式处理器

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

摘要:针对海军军械信息化建设问题,对物联网技术在军械保障中的应用进行了需求分析,详细分析了物联网技术在 军械资产管理、环境(设施)监控、人员管理和作业活动管理中的需求和应用点,对物联网技术在军械保障中的推广应用具有 重要...

关键字: 物联网 军械保障 信息化 需求分析

摘要:随着物联网概念的提出和相关技术的发展成熟,物联网的应用领域日趋广泛,文章就物联网在职业学校智能教学、校园安全、后勤服务等方面的应用发展现状及需求进行了分析,结果认为,物联网的应用必将引起教学模式和管理模式的变革,并...

关键字: 物联网 职业教育 需求分析

摘 要 :智能电网以优良的性能服务于国民生产,主要依靠接入电力系统设备间的网络通信。便携式电力设备的网络通信性能测试对于智能电网的运行具有重要意义。以嵌入式处理器为核心,提出了一种智能电网设备网络通信性能的便携式测试装置...

关键字: 智能电网 嵌入式处理器 WinCE操作系统 通信 便携式测试装置 人机接口

摘 要 :农业物联网是信息技术和网络技术在农业领域的典型应用,改变了传统的农业生产经营与管理模式, 促进了农业智能化和精细化,极大地推动了农业生产和农业科研。情景感知计算是农业物联网应用中使用广泛、十分重要且极具潜力的一...

关键字: 农业物联网 情景感知计算 需求分析 发展趋势

摘要:提出了军事物联网的基本概念,对许多军事专家称为"未探明储量的金矿"的军事物联网的核心思想,以及在信息化条件下,通过军事物联网提高作战打击的精确度和自动化程度进行了分析,同时分析了各军兵种以及完成多样化军事任务对军事...

关键字: 军事物联网 多样化 军事任务 需求分析
关闭
关闭