单片机原理及应用04第四章程序设计概述.ppt

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

4.1 概述 4.2 简单程序设计 4.3 分支程序设计 4.4 循环程序设计 4.5 查表程序 4.6 子程序设计与堆栈技术 4.7 实用汇编子程序举例 ;4.1 概 述; 汇编语言(Assembly Language)是指用指令助记符代替机器码的编程语言。汇编语言程序结构简单,执行速度快,程序易优化,编译后占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。汇编语言的缺点是可读性比较差,只有熟悉单片机的指令系统,并具有一定的程序设计经验,才能研制出功能复杂的应用程序,实训4中的3个程序都是用汇编语言设计的。 高级语言(High-Level Language)是在汇编语言的基础上用自然语言的语句来编写程序,例如PL/M-51、Franklin C51、MBASIC 51等,程序可读性强,通用性好,适用于不熟悉单片机指令系统的的用户。 ; 高级语言编写程序的缺点是实时???不高,结构不紧凑,编译后占用存储空间比较大,这一点在存储器有限的单片机应用系统中没有优势。 目前,大多数用户仍然使用汇编语言进行单片机应用系统的软件设计,本章将介绍MCS-51单片机汇编语言的程序设计方法。 单片机汇编语言程序设计的基本步骤如下: (1) 题意分析。熟悉并了解汇编语言指令的基本格式和主要特点,明确被控对象对软件的要求,设计出算法等。 (2) 画出程序流程图。编写较复杂的程序,画出程序流程图是十分必要的。程序流程图也称为程序框图,是根据控制流程设计的,它可以使程序清晰,结构合理,便于调试。; (3) 分配内存工作区及有关端口地址。分配内存工作区,要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。 (4) 编制汇编源程序。 (5) 仿真、调试程序。 (6) 固化程序。 ; 4.2 简单程序设计 ;例4.1题意分析示意图 ; ORG 0000H MOV A,30H ADD A,40H MOV 40H,A ;最低字节加法并送结果 MOV A,31H ADDC A,41H MOV 41H,A ;第二字节加法并送结果 ; MOV A,32H ADDC A,42H MOV 42H,A ;第三字节加法并送结果 MOV A,33H ADDC A,43H MOV 43H,A ;第四字节加法并送结果,进位 位在CY中 END ; 显然,上面程序中,每一步加法的步骤很相似,因此我们可以采用循环的方法来编程,使得源程序更加简洁,结构更加紧凑。用循环方法编制的源程序见习题4.3题。 例4.2 数据拼拆程序。将内部RAM 30H单元中存放的BCD码十进制数拆开并变成相应的ASCII码,分别存放到31H和32H单元中。 (1) 题意分析。 题目要求如图所示。 ;例4.2题意分析示意图; 本题中,首先必须将两个数拆开,然后再拼装成两个ASCII码。数字与ASCII码之间的关系是:高4位为0011H,低4位即为该数字的8421码。 (2) 汇编语言源程序。 源程序如下: ORG 0000H MOV R0,#30H MOV A,#30H XCHD A,@R0;A的低4位与30H单元的低4位 交换 MOV 32H,A ;A中的数值为低位的ASCII码; MOV A,@R0 SWAP A ;将高位数据换到低位 ORL A,#30H ;与30H拼装成ASCII码 MOV 31H,A END ;4.3 分支程序设计; (1) 题意分析。 本例是典型的分支程序,根据两个无符号数的比较结果(判断条件),程序可以选择两个流向之中的某一个,分别点亮相应的LED。 比较两个无符号数常用的方法是将两个数相减,然后判断有否借位CY。若CY=0,无借位,则X≥Y;若CY=1,有借位,则XY。程序的流程图如图所示。 ;两数比较流程图 ; (2) 汇编语言源程序。

文档评论(0)

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

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

1亿VIP精品文档

相关文档