51单片机寻址方式

来源 :硅谷 | 被引量 : 0次 | 上传用户:a3799222999
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 我们已经知道,单片机的工作过程就是一条一条地从ROM存储器中取出指令然后执行相关的操作。一般来说,一条指令总是有操作码字段和操作数字段两部分组成,单片机执行指令时就根据指令中给出的地址寻找实际的操作数,寻址方式就是根据指令中给出地址寻找操作数地址的方式。根据指令操作的需要,计算机有多种寻址方式。总的来说,寻址方式越多,计算机的功能就越强,灵活性越大,指令系统也越复杂,而本文主要介绍的是51单片机指令系统中的7种寻址方式。
  关键词: 寻址方式;操作数;单片机
  1 引言
  指令的寻址方式MOVA,#20H这条指令,第一个词MOV是命令动词,也就是决定做什么事情的。MOV是英文单词“MOVE”少写了一个E,代表的含义是“传递或传送”,这就是指令,规定做什么事情,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是20H,而要送达的地方(目的地)就是A这个累加器。注意:源操作数、目的操作数都有各自的寻址方式,而这里所介绍的寻址方式是指目的操作数的寻址方式。在我们学习的8051单片机中,有7种寻址方法,下面我们将逐一进行分析。
  2 8051单片机的7种寻址方式
  2.1 立即寻址
  指令中直接给出操作数的寻址方式称为立即数寻址。在51系列单片机指令系统中,为了与直接寻址指令中的直接地址相区别,立即数用前面加“#”号的8位数表示(#data,如#20H)或16位数(#data16,如#1000H)表示。举例说明立即数寻址方式,以传送指令为例。
  例:MOVA,#20H;把8位立即数20H送入累加器A。
  MOVDPTR,#1000H;把16位立即数1000H送入数据指针DPTR寄存器。
  2.2 直接寻址
  直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。
  例如:MOVA,30H;把内部RAM30H单元的内容送入累加器A。
  MOV30H,20H;把内部RAM20H单元的内容送入内部RAM30H单元。
  在80C51单片机中,直接地址只能用来表示特殊功能寄存器、内部数据存储器以及位地址空间,具体内容是:
  1)内部数据存储器RAM低128单元。在指令中是以直接单元地址形式给出。
  2)位寻址区。20H-2FH地址单元。
  3)特殊功能寄存器。专用寄存器除可以以单元地址形式给出外,还可以以寄存器符号形式给出。例如指令MOVIE,#85H。我们知道,中断允許寄存器IE的地址是80H,那么也就是这条指令可以以MOVIE,#85H的形式表述,也可以MOV80H,#85H的形式表述。需要说明的是,直接寻址是访问特殊功能寄存器的惟一方法。
  2.3 寄存器寻址
  以通用寄存器的内容为操作数的寻址方式称为寄存器寻址。直接寻址和寄存器寻址的差别在于,直接寻址是操作数所在的字节地址(占一个字节),寄存器寻址是寄存器编码出现在指令码中。寄存器寻址速度比直接寻址要快。除上面所指的几个寄存器外,其它特殊功能寄存器一律为直接寻址。
  例如:MOVA,R0;把寄存器R0的内容送入累加器A。
  寄存器寻址方式的范围包括:
  1)4个寄存器组共32个通用寄存器,但在指令中只能使用当前寄存器组。因此,在使用前要通过指定PSW中的Rs1、RS0,以选择当前寄存器组。
  2)部分特殊功能寄存器。例如,累加器A、寄存器B以及数据指针DPTR。其中B寄存器仅在乘法、除法指令中为寄存器寻址,在其它指令中为直接寻址。A寄存器可以寄存器寻址,又可以直接寻址(此时写作ACC)。
  2.4 寄存器间接寻址
  以寄存器中的内容为地址,该地址的内容为操作数的寻址方式称为寄存器间接寻址。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址方式中,寄存器中存放的则是操作数的地址,即寄存器为地址指针。这就是说,指令的操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。
  寄存器间接寻址也需要以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,应在寄存器的名称前加前缀“@”。
  例如:MOVA,@R0;把R0的内容作为地址的内容送入到累加器A。
  寄存器间接寻址的寻址范围是:
  1)片内RAM低128单元,这里只能使用R0,R1作为间址寄存器。其通用形式写为@Ri(i=0,1);
  2)片外RAM64KB,使用DPTR作为间址寄存器,书写形式为@DPTR。
  3)片外RAM低256单元。除可使用DPTR作为间址寄存器外还可以使用R0,R1作为间址寄存器。
  4)堆栈区,堆栈操作指令(PUSH和POP)也属于寄存器间接寻址,即使用SP(堆栈指针)作为间址寄存器的间接寻址方式。
  2.5 变址寻址
  由寄存器DPTR或PC中的内容加上A累加器内容之和而形成操作数地址的寻址方式称为变址寻址。变址寻址只能对程序存储器中的数据进行寻址操作。由于程序存储器是只读存贮器,因此变址寻址只有读操作而无写操作。在指令符号上采用MOVC的形式。
  例如:MOVCA,@A+DPTR;将DPTR和A的内容相加所得到的程序存储器地址单元的内存送累加器A。
  变址寻址指令有如下特点:
  1)变址寻址方式只能对程序存储器进行寻址。
  2)变址寻址方式的指令只有三条:   MOVCA,@A+DPTR;
  MOVCA,@A+PC;
  JMP@A+DPTR;
  其中,前两条是程序存储器读指令,后一条是无条件转移指令。
  3)尽管变址寻址方式复杂,但这三条指令都是单字节指令。
  4)变址寻址方式可用于查表操作。
  2.6 相对寻址
  相对寻址是指在指令中给出的操作数为指令转移的偏移量。相对寻址方式是为实现程序的相对转移而设置的,为相对转移指令所采用。在相对转移指令中,给出地址偏移量(在51单片机系列的指令系统中,以“rel”表示)把PC的当前值加上偏移量就构成了程序转移目的地的地址。而PC的当前值是指执行完转移指令后的PC值,即转移指令的PC值加上它的字节数。因此,转移的目的地地址可用如下公式表示:
  目的地地址=转移指令所在地地址+转移指令字节数+rel
  在51单片机指令系统中,有许多条相对转移指令。这些指令多数均为两字节指令,只有个别的是三字节指令。偏移量rel是一个带符号的8位二进制补码数,所能表示数的范围是-128---+127。因此,相对转移指令的所在地址为基点,向前最大可转移(127+转移指令字节数)个单元地址,向后最大可转移(128-转移指令字节数)个单元地址。
  例如:JC70H;该指令表示若进位位c为o,则程序计数器Pc中的内容不变,不转移;若C为1,则以PC中当前值为基地址,加上偏移量70H后所得结果作为该转移指令的目的地址。
  2.7 位寻址
  对位地址中的内容进行位操作的寻址方式称为位寻址。由于51单片机中只有内部RAM和特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。位寻址是一种直接寻址方式,由指令给出直接位地址。与直接寻址不同的是,位寻址只给出位地址,而不是字节地址。
  位寻址的范围:
  1)片内RAM中的位寻址区
  片内RAM中的单元地址为20H2FH,共16个单元128位,为位寻址区,位地址是00H~7FH。这128个位的寻址使用直接地址表示。
  例如:MOVC,2BH;该指令的功能是把位寻址区的2BH位状态送给位C。
  2)可位寻址的特殊功能寄存器位。
  可位寻址的特殊功能寄存器有11个,对应寻址位共83位。对这些寻址位在指令中有以下4种表示方法:
  ① 直接使用位地址表示法。
  ② 单元地址加位的表示方法。例如,88H单元的位5,则表示为88H.5。
  ③ 特殊功能寄存器符号加位的表示方法。例如,psw寄存器的位5,可表示为psw.5。
  ④ 位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的。例如,PSW寄存器位5为F0标志位,则可使用F0表示该位。
  3 结语
  本文主要介绍了比较简单和常用的80C51系列单片机的寻址方式,通过学习51系列单片机的寻址方式,进而了解和掌握单片机的工作原理和编写相应的程序,应用单片机于实际生活和工程中,改善和提高工作效率。
  参考文献:
  [1]趙晓安等编著,MCS-51单片机原理及应用,天津大学出版社.
  [2]周兴华编著,手把手教你学单片机,北京航空航天大学出版社.
  [3]周坚编著,单片机轻松入门,北京航空航天大学出版社.
其他文献
摘 要: 面对日益发展的信息技术,以及人们日益剧增的信息需求,计算机语言正朝着越来越高级的方向发展,以满足现代人的生产生活需求。首先论述计算机语言的发展演变,从的演变流程,看计算机语言的发展。最后,从面向对象技术的开发等领域,阐述了面向对象的发展。  关键词: 计算机语言;汇编语言;面向对象;开发  0 前言  计算机已成为现代人生产生活的主角,扮演着越发重要的角色。计算机工作的执行,需要依托于计
摘 要: 浅述PTN技术的原理、体系构成、关键技术,对PTN技术运用到城域网建设当中进行策略探析。  关键词: PTN技术;城域网建设  中图分类号:TN91 文献标识码:A 文章编号:1671-7597(2013)0120062-01  下一代网络是基于分组,能够提供的是电信级服务,且可以使用更多宽带,更加能确保服务质量的网络传输技术。PTN技术保持有传统的网络技术优点,且增加了分组业务选择,能
本文通过对荣华二采区10
期刊
摘 要: 对计量装置由于电流互感器极性反接而引起公用线断开后电路参数的变化进行了分析,计算出更正系数和追补电量,并指出对计量的影响。  關键词: 电流互感器;极性反接;电路分析;公用线断开;更正系数  随着电力工业的飞速发展,电力行业从计划经济逐步走向市场经济,电能计量装置作为“公平秤”,其作用越来越重要。准确计量电能除了采用高准确度的计量装置外,还必须减少电能计量装置错误接线造成的电量不准。一旦
随着信息技术的高速发展与广泛应用,信息化的建设正成为当今企业环境中最重要的工作之一。在企业信息化过程,信息系统规模越来越大,随之支撑信息系统运行的IT设备也越来越多,从而要求企业对信息化的运维要求越来越高。本文通过分析RFID技术与IT运维平台的结合,说明该技术对如何极大地提高IT设备运维工作效率。
期刊