单片机——序的基本结构.pptx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机——序的基本结构

MCS—51 单片机2. 7 程序的基本结构2. 7 程序的基本结构一、绪论 二、基本结构1. 顺序结构 2. 分支结构3. 查表结构4. 子程序结构5. 循环结构 绪 论 在汇编语言程序设计中,普遍采用结构化程序设计方法。任何复杂的程序都可由顺序结构、分支结构、循环结构、子程序结构等程序构成。结构程序设计的特点是程序的结构清晰、易于读写和验证、可靠性高。a 不管多么简单或复杂的程序,总离不开若干顺序程序段所组成的。如图1所示,A框和B框分别代表不同的程序段, 是A、B顺序执行。它是最简单、最基本的程序结构,其特点是按指令的排列顺序一条条地执行,直到全部指令执行完毕为止。 A Bb图2-7-1 顺序程序结构 顺序结构基本结构分支结构查表结构子程序结构循环结构顺序结构 顺序结构程序:是一种最简单、最基本的程序,按照程序编写的顺序逐条依次执行,直到程序结束。这是程序的最基本的形式,任何程序都离不开这种形式。 程序段A 程序段 B顺序结构 【例1】 将片内RAM的20H单元中的压缩BCD码拆成两个ASCII码存入21H、22H单元。高4位转换后存在21H单元,低4位转换后存在22H单元。 方法一 分析:两个 BCD 码拼装在一个单元内叫压缩 BCD码。设20H 内为压缩 BCD 码59, 22H通过变换 BCD 码 “5” 为ASCII码 “35”;BCD 码 “9” 变换为ASCII码 “39”。图1-2压缩BCD码转换成两个ASCII字符图程序入口:20H程序出口:21H、22H 根据分析图设计程序:MOV A, 20HANL A, #0FH;屏蔽高4位ADD A, #30H;得到低4位ASCII码MOV 21H, A;个位ASCII码送21HANL 20H, #0F0H;屏蔽低4位MOV A, 20H;送ASWAP A;高位交换到低位ADD A, #30H;得到高4位ASCII码MOV 22H,A; 十位ASCII码送22H分支结构 顺序结构程序只能解决一些简单的算术、逻辑运算、传送操作等。实际控制问题往往要求计算机能根据给定的条件进行判断,再选择不同的处理路径,从而表现出某种智能。 程序要求改变程序执行顺序,即程序的流向有两个或两个以上时,这种程序结构称为分支程序结构,分支程序的特点是程序中包含有转移指令。根据分支出口的不同分为简单分支程序和多路分支程序。 分支结构分支结构:程序中含有转移指令N条件Y 程序段A 程序段 B分支结构分支程序的两类结构开始 程序段1 开始 数字关键码 程序段1 分支程序1 分支程序2 分支程序3 Y条件满足吗?N 程序段2 程序段2结束 程序段3 结束(a)单分支结构 (b)多分支结构【例2】有一离散函数如下式所示,试编写程序,根据x求y的值,设变量x保存在30H中,结果存入31H单元。已知 y=?解:单片机中负数一般用补码表示,只要能够判断x=0、 x<0和 x>0便能够方便实现函数。采用JZ指令进行判断,程序流程图如图2-1所示。图2-7-2 程序流程图 START: MOV A,30H JZ OUT;x=0, 转移 ANL A #80H ;x≠0,判断正负号 JZ OUT1;x小于0,y=x MOV 31H, 30H SJMP OK OUT: MOV 31H, #3;x=0,则y=3 OUT1: MOV A, #5;x>0,y=5+x ADD A , 30H MOV 31H, A OK: SJMP $ 查表结构 查表是把事先安排的数据按照一定的顺序编制成表格存放在 ROM 中,然后根据输入的数据,从表格中查出所需的结果。查表可以将复杂的问题变得简单。MCS-51汇编指令系统提供了两条专用的查表指令:MOVC A,@A+PC表格只能放在该指令的256个地址单元内,地址需要调整。 MOVC A,@A+DPTR基址寄存器DPTR能提供16位基址,因此查表范围可达64KB空间,且表格的大小和位置也可在64KB ROM中任意安排。 【例3】 根据项目一流水灯电路电路,采用查表方法实现相同功能。解: 用查表法实现流水灯,要设计一个LED点亮码表格,根据8个LED点亮次序,制作数码表格,为了循环点亮LED,在点亮第8个LED后返回点亮第1个LED,表格可以设置一个结束标志码FFH。当取显示码为结束标志FFH时,返回取第1个显示码。ORG 0000H LJMP STRAT ORG 0100H STRAT:MOV R1,#0 ; R1用于计数,R1清零 MOV DPTR,#TAB ; 设置表地址指针 GO:MOV A, R1 LOOP: MOVC

文档评论(0)

jiqingyong1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档