第3章MCS-51单片机汇编语音程序设计.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一部分 内 容 提 要 概述 伪指令 汇编语言程序设计步骤 顺序程序设计 分支程序设计 循环程序设计 位操作程序设计 子程序 小结 3.1 概述 MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。? 目前很多公司将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步。 汇编的方法:汇编的方法有两种 1.手工汇编: 人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。 2.机器汇编: 用计算机中的汇编程序对用户源程序进行汇编。 用机器汇编时要提供给汇编程序一些信息,并遵循汇编程序的一些约定。这些功能由伪指令完成。 汇编的作用与结果: 1)将程序中每条汇编语言指令翻译成相应的机器码; 2)确定每条指令在存储器中的存放地址; 3)提供错误信息; 4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。 二.常用伪指令及功能: 1.目标程序地址起始指令 ORG nnnn 功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nnnn为起始地址,连续存放在程序存储器中。 指令地址 机器码 源程序 3. 字定义 标号:DW (字常数或表式) 作用: 指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即16位的二进制数),例如: GH :DW 1234H,5678H,08 5. 等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。 例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH 6. 位地址赋值伪指令 标号 BIT [位地址] 作用: 同EQU指令,但定义的是位地址值。 例如 AIC BIT P1.1。 位地址赋值举例 格式:标号 BIT 位地址 该伪指令的功能是将位地址赋予特定位的标号,经赋值后就可以用指令中BIT左边的标号来代替BIT右边所指出的位。 例如:FLG: BIT F0 LED: BIT P1.0 经以上伪指令赋值以后,在编程中就可以用FIG、LED当相应的位地址来使用了。 3.3 汇编语言程序设计方法与步骤 一.确定方案(程序结构与流程)及相关算法; 二.了解应用系统的硬件配置及性能,合理分配存储器单元; 三.根据需要建立算法模型,并确定算法的实现方法与步骤 四.编制源程序: 3.3.1 程序的基本结构 程序的基本结构有三种 1 顺序结构:程序按顺序依次执行。 2 分支(选择)结构:根据给定的条件判断并选择执行。 3 循环结构:在给定的条件下反复执行某一部分的操作的程序。循环结构又分为当型(While)和直到型(Until)。 ⑴当型:是先判断,当条件成立则这些循环体。 ⑵直到型:是先执行循环体一次,再判断条件,条件不成立再执行循环体。 由以上3种基本结构顺序组成的算法结构,可以解决任何复杂的问题。但 在基本结构中可能还嵌套另一种结构。 用汇编语言编程时一定要注意与用高级语言编程的差别,用汇编语言编 程时,对于数据的存放位置及工作单元的安排是由编程者安排的。 3.3.2 编程举例 例1 编程序将外部数据存储器的000EH和000FH单元的内容交换。 ORG 0100H MOV P2, #00H ;送地址高八位至P2口 MOV R0, #0EH ;R0= 0EH MOV R1, #0FH ;R1= 0FH MOVX A, @R0 ;A=(000EH) MOV 20H, A ;(20H)=(000EH) MOVX A, @R1 ;A=(000FH) MOVX @R0,A ;(000EH)=原(000FH) XCH A, 20H

文档评论(0)

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

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

1亿VIP精品文档

相关文档