第3章单片机程序设计浅析.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 MCS-51系列单片机汇编指令格式及标识;3.1.2 指令中用到的标识符;(8)(X):表示X单元中的内容。 (9)((X)):表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用((X))表示。 (10)/ 和→符号:“/”表示对该位操作数取反,但不影响该位的原值。“→”表示操作流程,将箭尾一方的内容送入箭头所指一方的单元中去。 ;3.2 MCS-51系列单片机寻址方式;3.2.2 寄存器数寻址(寄存器寻址) ;一.直接寻址;二.寄存器间接寻址; 在MCS-51单片机中,寄存器间接寻址用到的寄存器只能是通用寄存器R0、R1和数据指针寄存器DPTR,它能访问的数据是片内数据存储器和片外数据存储器。其中,片内数据存储器只能用R0和R1作指针间接访问;片外数据存储器,低端的256字节单元,既可以用两位十六进制地址以R0或R1作指针间接访问,也可用四位十六进制地址??DPTR作指针间接访问,而高端的字节单元则只能以DPTR作指针间接访问。对于片内RAM和片外RAM的低端256字节都可以用R0和R1作指针访问,它们之间用指令来区别。片内RAM访问用MOV指令,片外RAM访问用MOVX指令。 ;例如:MOVC A,@A+DPTR;3.2.4 位寻址;二.相对寻址;3.3 MCS-51系列单片机指令系统;(1)以A为目的操作数 MOV A,Rn ;A← Rn MOV A,direct ;A←(direct) MOV A,@Ri ;A←(Ri) MOV A,#data ;A← #data (2)以Rn为目的操作数 MOV Rn,A ;Rn ← A MOV Rn,direct ;Rn ←(direct) MOV Rn,#data ;Rn ← #data (3)以直接地址direct为目的操作数 MOV direct,A ;(direct) ← A MOV direct,Rn ;(direct) ←Rn MOV direct,direct ;(direct) ←(direct) MOV direct,@Ri ;(direct) ←(Ri) MOV direct,#data ;(direct) ← #data (4)以间接地址@Ri为目的操作数 MOV @Ri,A ;(Ri) ← A MOV @Ri,direct ;(Ri) ←(direct) MOV @Ri,#data ;(Ri) ← #data (5)以DPTR为目的操作数 MOV DPTR,#data16 ;DPTR ← #data16;注意,源操作数和目的操作数中的Rn和@Ri不能相互配对。如不允许有“MOV Rn,Rn”,“MOV @Ri,Rn”这样的指令,在MOV指令中,不允许在一条指令中同时出现工作寄存器,无论它是寄存器寻址还是寄存器间接寻址。 ;3.程序存储器传送指令MOVC 程序存储器传送指令只有两条,一条用DPTR基址变址寻址。一条用PC基址变址寻址。 MOVC A,@A+DPTR ;A ← (A+DPTR) MOVC A,@A+PC ;A ← (A+PC) 这两条指令通常用于访问表格数据,因此以称为查表指令。 ;【例3-1】写出完成下列功能的程序段。 (1)将R0的内容送R6中 程序为:MOV A,R0 MOV R6,A (2)将片内RAM 30H单元的内容送片外60H单元中 程序为:MOV A,30H MOV R0,#60H MOVX @R0,A (3)将片处RAM 1000H单元的内容送片内20H单元中 程序为:MOV DPTR,#1000H MOV A,@DPTR MOV 20H,A (4)将ROM 2000H单元的内容送片内RAM的30H单元中 程序为:MOV A,#0 MOV DPTR,#2000H MOVC A,@A+DPTR MOV 30H,A;二.数据交换指令 普通传送指令实现将源操作数的数据传送到目的操作数,指令执行后源操作数不变,数据传送是单向的。数据交换指令数据作双向传送,传送后,前一个操作数原来的内容传送到后一个操作数中,后一个操作数原来的内容传送到前一个操作数中。 数据交换指令要求第一个操作数须为累加器A,共有5条。 XCH A,Rn ;A= Rn XCH A ,direct ;A=(direct) XCH A,@Ri ;A=(Ri) XCHD A,@Ri ;A0~3=(Ri)0~3 SWAP A ;A0~3=A4~7 【例3-2】若R0的内容为30H,片内RAM 30H单元的内容为23H,累加器A的内容为45H,则执行XCH

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档