首页 > 嵌入式硬件 > 嵌入式处理器

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

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

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

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

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

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

2.1 顺序结构

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


2.2 选择结构

本文引用地址: http://www.21ic.com/embed/hardware/processor/201806/63882.html

在选择结构程序中,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系列单片机应用系统设计同样适用。

换一批

延伸阅读

[猎聘集] 面试过900+工程师的HR自述,手把手教你看破面试中的套路

面试过900+工程师的HR自述,手把手教你看破面试中的套路

技术面试常常有很多坑,不管是对面试官还是面试者来说,都是如此。这篇文章可以让技术面试官规避很多面试过程中可能出现的问题,也可以给即将参与技术面试的面试者一定的启发。......

关键字:技术面试

[趣科技] 科学家培育出更加逼真的类大脑:直径4毫米微型球状

科学家培育出更加逼真的类大脑:直径4毫米微型球状

而斯坦福大学的神经科学家塞吉厄·帕斯卡(Sergiu Pa?ca)希望精神病学领域也能经历如此巨大的转变。但与癌症相比,研究人脑带来的挑战更大。由于大脑科学家不能像医生解剖肿瘤那样、从健康人的大脑皮层下切下一块组织,他们必须发挥创造力、另辟......

关键字:类大脑 肿瘤治疗

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[真心话] 三大运营商取消流量漫游费,本地流量将被国内流量替代

三大运营商取消流量漫游费,本地流量将被国内流量替代

7月1日,中国移动、中国联通和中国电信正式全面取消流量漫游费,原有套餐中的省内通用流量直接升级为国内流量,但并不包含港澳台地区。目前原来的本地流量已经转化为国内流量。对于本地流量转化为国内流量后价格是否......

关键字:电信 网络流量

[新鲜事] 谷歌上亿大奖空置11年无人领取!难道真的没人眼馋吗?

谷歌上亿大奖空置11年无人领取!难道真的没人眼馋吗?

Google在11年前为了激励民间航天业的发展,曾设立探月大奖赛,只要满足一定条件就可以领取高达3000万美元(约合人民币1.9亿)奖金,但是直到11年后大奖还是名花无主。......

关键字:谷歌 民间航天业
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14