主页 > 单片机单片机的几种寻址方式?

单片机的几种寻址方式?

一、单片机的几种寻址方式?

80C51有七种寻址方式:

1、立即寻址,寻址空间为ROM;

2、直接寻址,寻址空间为片内RAM的低128B和特殊功能寄存器;

3、寄存器寻址,寻址空间为A、B、DPTR、CY、通用工作寄存器等;

4、寄存器间接寻址,片内RAM低128B、片外RAM;

5、相对寻址,寻址空间为ROM;

6、变址寻址,寻址空间为ROM;

7、位寻址,寻址空间为片内RAM低128B的位寻址区的128个位,其字节地址为20H~2FH;以及部分可以位寻址的特殊功能寄存器。

二、51单片机寻址方式区分?

51单片机寻址方式分为位寻址和字节寻址,这是51单片机的难点,难就难在有的位地址和字节地址相同,比方说00H既是寄存器20H最低位(20H.0)的地址,又可以代表寄存器00H。

到底该如何区分呢?

汇编语言是用指令码区分的,在操作地址相同时,使用位寻址指令操作的是位,而使用字节指令就是字节寻址。而C语言是靠变量类型定义区分的,具体的寻址方式要看变量是位变量还是字节变量。

三、51单片机寻址方式的特色?

1. 直接寻址:

指令中直接给出参与操作的数据的地址,该地址一般用direct表示。

汇编指令:MOV A,direct

该指令的功能是将片内RAM地址direct单元中的内容(参与操作的数据)传送到累加器A中,双字节指令。

2. 立即寻址:

指令中直接给出参与操作的数据,称立即数,用data表示。在汇编语言中,为标明立即数,为data加前缀”#”。立即数可以是8位和16位二进制数,分别用#data和#data16表示。

汇编语言指令:MOV A,#data

该指令将立即数data传送到累加器A中,双字节指令。

3. 寄存器寻址:

参与操作的数据存放在寄存器中,汇编指令中直接以寄存器名来表示参与操作的数据地址,寄存器包括工作寄存器R0~R7、累加器A、AB、数据指针DPTR和位运算寄存器C。

汇编语言指令:MOV A,Rn ;n=0~7

该指令将Rn中的内容传送到累加器A中,单字节指令。

4. 寄存器间接寻址:

寄存器间接寻址为二次寻址,第一次寻址得到寄存器的内容为(Ri)或(DPTR),第二次寻址是将第一次寻址得到的寄存器内容作为地址,并在其中存、取参与操作的数据。汇编语言中,寄存器前缀@是寄存器间接寻址的标志,有@Ri、@DPTR等。

汇编语言指令:MOV A,@Ri ;i=0、1

该指令是将Ri中的内容作为地址,再将该地址中的内容传送到累加器A中,单字节指令。

5. 变址寻址:

间接寻址由两个寄存器提供。若由A、PC提供,在汇编语言指令中寻址地址表示为@A+PC;若由A和DPTR提供,在汇编语言指令中寻址地址为@A+DPTR。其中,PC或DPTR被称为基址寄存器,A被称为变址寄存器,基址与变址相加为16位无符号加法。若变址寄存器A中内容加基址寄存器DPTR(或PC)中内容时,低8位有进位,则该进位直接加到高位,不影响进位标志。因变址寻址指令多用于查表,故常称为查表指令。

汇编语言指令:MOVC A,@A+DPTR

该指令将DPTR中的内容加上A中的内容作为地址,再将该地址中的内容传送到累加器A中,单字节指令。

6. 相对寻址:

相对寻址是以相对寻址指令的下一条指令的程序计数器PC的内容为基值,加上指令机器代码中的“相对地址”,形成新的PC值(要转移的指令地址)的寻址方式。指令机器代码中“相对地址”指的是用一个带符号的8位二进制补码表示的偏移字节数,其取值范围为-128~+127,负数表示向后转移,正数表示向前转移。

四、51单片机六种寻址方式?

准确地说,51单片机有七种寻址方式,包括寄存器寻址、直接寻址、立即数寻址、间接寻址、变址寻址、相对寻址和位寻址。其中前四种寻址方式较容易理解,而后三种需要深入掌握它们的定义。

1、变址寻址以DPTR为基址,以累加器A为变址,用它们的数据之和作为ROM的访问地址。

2、相对寻址是当前的PC值加上给定的偏移量作为PC新值,因为当前的PC值与程序执行位置有关,所以这种寻址是相对的。

3、使用位寻址需要注意的是不要混淆位地址和单元地址。

五、单片机位寻址?

在单片机中集成有一位处理器,而不同的CPU有属于自己不同的指令,所以在单片机中有部分专门的位处理指令,其中部分位处理指令采用的寻址方式就为位寻址方式.

而所谓的位寻址和一般的存储单元寻址本质上是一样的,只不过它的每个单元只能存储一个二进制位,每个位单元有一个位地址,要访问某个位单元,必须先找到该单元的位地址,找它的方式就叫位寻址方式了.

六、单片机CLRP1.0是什么寻址方式?

单片机有七种寻址方式分别是:

1.寄存器寻址例如: MOV A,R0;

2.直接寻址例如: MOV A,4FH;

3.寄存器间接寻址 MOV A,@R04.立即数寻址 MOV A,#0FFH5.变址寻址(典型的是查表指令) MOV A,@A+DPTR6.相对寻址 SJMP $7.位寻址 SETB P0.0; MOV 60H,40H;是属于直接寻址;(直接用内存单元的地址来寻找对应的内容) MOV A, #58HMOV RO, #0B0HMOV @RO, AMOV 0B0H, #28H而执行完以上指令后结果是:(0B0H)=P3=28H;因为在8051单片机中P3口是特殊功能寄存器(也占一内存)它的地址刚好是0B0H;程序的最后给0B0H赋了立即数28H;

七、单片机定时器/计数器计数方式的初值公式怎样理解?

单从公式上来讲,题主的解释没啥大毛病。我就再详细解释一下。

当我们需要指定一段时间后去处理一些事务时,就可以用到定时器。

一般最直接的想法就是,指定一个计时值x,然后从0开始累加计数,计数到x表示时间到,可以处理事务了。这种处理方法,需要一个数值比较器,每计一次数,就比较一下。这对单片机或者说硬件电路来讲,一个8位计数器就需要包含一个8位数值比较器,实在不够简便。

第二种想法,是指定一个计时值x,然后进行减计数,减计数到0表示时间到。这也要一个比较器,只不过是个0值比较器,硬件电路上比上一种要简单一些,但减计数器还是不常用。我们知道累加器才是最简便的硬件电路之一。

上面两种方法,都是软件实现的定时器的合理想法。那么硬件电路实现定时最简便的方法是什么呢?

那就是用累加器来实现。比如一个8位的累加器,可以从0累加计数,计数到256时溢出,产生溢出信号,就可以触发事务处理了。

要是我们只需要计数10次就够了,则可以将计数初值定义为246。那样,计数10次后就可以达到256,产生溢出信号了。

所以就有了(2^n-x)。n是计数器的位数;2^n就是最大计数值;x是计数初值。整个这段,表示我们需要的计时次数。

计数器每次计数的时间间隔是t,及计数周期。那么总的计时时长m=计数周期×计数次数=t×(2^n-x),也就是m=(2^n-x)×t。

计数位数n由选用的单片机确定,通常等于8,12,16或32等等,即8位、12位等计数器。计数周期t由定时器基础时钟确定,可通过设置定时器时钟源和选择时钟分频数确定。这两项灵活性不大,一般在程序初始化时就应设定。

初值x可以在应用时,根据定时需求进行修改确定。

协调好n,t和x三者的设定,就可以完美实现定时功能了。

八、80C51单片机的寻址方式?

80c51有七种寻址方式:

1、立即寻址,寻址空间为rom;

2、直接寻址,寻址空间为片内ram的低128b和特殊功能寄存器;

3、寄存器寻址,寻址空间为a、b、dptr、cy、通用工作寄存器等;

4、寄存器间接寻址,片内ram低128b、片外ram;

5、相对寻址,寻址空间为rom;

6、变址寻址,寻址空间为rom;

7、位寻址,寻址空间为片内ram低128b的位寻址区的128个位,其字节地址为20h~2fh以及部分可以位寻址的特殊功能寄存器。

九、mc-51单片机4种寻址方式?

MC-51单片机有7种寻址方式不是4种,分别是:立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、位寻址和指令寻址。

十、51单片机的7种寻址方式适用于什么寻址空间?

80C51有七种寻址方式: 1、立即寻址,寻址空间为ROM; 2、直接寻址,寻址空间为片内RAM的低128B和特殊功能寄存器; 3、寄存器寻址,寻址空间为A、B、DPTR、CY、通用工作寄存器等; 4、寄存器间接寻址,片内RAM低128B、片外RAM; 5、相对寻址,寻址空间为ROM; 6、变址寻址,寻址空间为ROM; 7、位寻址,寻址空间为片内RAM低128B的位寻址区的128个位,其字节地址为20H~2FH;以及部分可以位寻址的特殊功能寄存器。

热门文章