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

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

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

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

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

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

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

2.1 顺序结构

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


2.2 选择结构

本文引用地址: http://embed.21ic.com/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系列单片机应用系统设计同样适用。

换一批

延伸阅读

[新鲜事] 科学家证实:最早拥有自我意识的物种竟然是海豚!

科学家证实:最早拥有自我意识的物种竟然是海豚!

近期,研究人员发现宽吻海豚(bottlenose dolphin)是自我意识出现最早的物种,甚至比人类和黑猩猩还要早。......

关键字:海豚

[趣科技] 真正符合人类思维方式的“黑科技”--三进制计算机

真正符合人类思维方式的“黑科技”--三进制计算机

相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。......

关键字:逻辑思维 二进制 三进制计算机

[疯狂史] 黄明威:一个从阿里离开后又回来的人

黄明威:一个从阿里离开后又回来的人

阿里人”这三个字,黄明威如今背了14年,也自豪了14年。如果不是中途下了“车”,那就是足足的18年了。......

关键字:黄明威 阿里巴巴

[真心话] 身价816亿美元!扎克伯格有望超越巴菲特成全球第三富

身价816亿美元!扎克伯格有望超越巴菲特成全球第三富

Facebook股价今日升至202美元的历史新高。这让Facebook创始人扎克伯格的身价达到了816亿美元,有望成为全球第三富有的人。目前,扎克伯格的身价与巴菲特之间的差距已缩小至2900万美元。Facebook创始人扎克伯格身价周......

关键字:扎克伯格 巴菲特

[趣科技] 可以为手机充电的牛仔裤

可以为手机充电的牛仔裤

但是如果有一条神奇的既可以容纳你的手机,同时还可以给你的手机充电,让你出门在外,从此无忧,你会去购买这款神奇的牛仔裤吗?......

关键字:充电

[新鲜事] 波士顿动力正在制造令人害怕的“机器狗军队”,明年出货1千台SpotMini机器人

波士顿动力正在制造令人害怕的“机器狗军队”,明年出货1千台SpotMini机器人

波士顿动力公司正在制造令人害怕的“机器狗军队”!目前,该公司表示,到2019年7月,将实现每年量产1000个紧凑型SpotMini机器人。SpotMini是公司研制多款机器狗中体型最小的,身高两英尺9英寸,重量66磅......

关键字:波士顿动力 机器人

[新鲜事] 阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

6月30日晚,俄罗斯世界杯的赛场上上演16强焦点之战,阿根廷对法国。面对拥有身高、年龄、速度等优势,并坚持打高吊、防反的法国队,阿根廷队显得没有什么办法。虽然两次被幸运女神眷顾并一度以2:1领先,但法国队最......

关键字:阿根廷 世界杯
条评论

我 要 评 论

网友评论

大家都爱看

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

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

    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