单片机数据、地址、指令、控制总线结构

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

数据、地址、指令之所以将这三者放在一同是因为这三者的实质都是相同的──数字或者说都是一串‘0’和‘1’组成的序列。换言之地址、指令也都是数据。

指令具体可参考文章

由单片机芯片的设计者规则的一种数字它与咱们常用的指令助记符有着严厉的一一对应联系不能由单片机的开发者更改。

地址

是寻觅单片机内部、外部的存储单元、输入输出口的根据内部单元的地址值已由芯片设计者规则好不行更改外部的单元能由单片机开发者自行决定但有一些地址单元是一定要有的详见程序的履行进程。

通俗解释

地址是存储单元的编号如果把存储单元看成一排排的房子地址就是房子的门牌号c语言里地址即指针。

有点像澡堂里放衣服的箱子需要拿衣服的时候按照箱子的编号去拿衣服。但是有时候直接告诉你箱子号码你过去打开箱子拿到了衣服——直接寻址找到一个箱子打开却发现是一把钥匙钥匙上写着另一个箱子的号码。你拿着钥匙过去打开那个箱子拿出衣服来——间接寻址

8位单片机256的存储器就像是一座256户16层16个单元每个单元每层是1户1户有八个房间的大楼
存储器容量就是户数=256。
存储器地址就是门牌号如5AH就是5单元10楼H是十六进制的意思
每一户里的八个房间就是8个位
八个房间的名字就是位地址

单片机的几种寻址方式

此内容转自文章如有侵权请联系作者删除
https://blog.csdn.net/baidu_37503452/article/details/83016841
寻址就是寻找指令中操作数或操作数所在的地址。所谓寻址方式就是如何找到存放操作数的地址把操作数提取出来的方法。通常指源操作数的寻址方式。

MCS-51系列单片机寻址方式共有七种寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

1、寄存器寻址

寄存器寻址是指操作数存放在某一寄存器中指令中给出寄存器名就能得到操作数。寄存器可以使用寄存器组R0~R7中某一个或其它寄存器(A,B,DPTR等)。

例如

MOV AR0 ;(R0 )→A

MOV P1A ;(A)→P1

ADD A, R0 ;(A)+(R0) →A

在这里插入图片描述

2、直接寻址

在指令中直接给出操作数所在的存储单元的地址称为直接寻址方式。在8051中使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器(SFR)对于特殊功能寄存器既可以使用他们的地址也可以使用他们的名字。

例如

MOV A, 3AH ;(3AH) →A

又如

MOV A, P1 ;(P1口) →A

也可写为

MOV A, 90H ; 90H是P1口的地址。
在这里插入图片描述

在这里插入图片描述

3、立即数寻址

指令操作码后面紧跟的是一字节或两字节操作数用 # 号表示以区别直接地址。例如:

MOV A, #3AH ;3AH→A

MCS-51系列单片机有一条指令要求操作码后面紧跟的是两个字节立即数即

MOV DPTR, #DATA16

4、寄存器间接寻址

寄存器中的内容是一个地址由该地址单元寻址到所需的操作数.

例如 MOV R1#30H ;(R1)← 立即数30H

MOV @R1#0FH ;(30H)←立即数0FH

MOV A@R1 ;(A)←((30H))=#0FH

注意

“间接”表示某寄存器中的“内容”只是一个“单元地址”这个地址单元中存放的数据才是要找的“操作数”。

例如指令MOV A@R0执行的操作是将R0的内容作为内部RAM的地址再将该地址单元中的内容取出来送到累加器A中如图所示。

在这里插入图片描述

5、变址寻址 也称为: 基址寄存器+变址寄存器间接寻址

以16位的地址指针寄存器DPTR或 16位的PC寄存器为基址寄存器以累加器 A 为变址寄存器两者中的“内容”形成一个16位的“地址”该“地址”所指的存储单元中的内容才是操作数。用变址寻址方式只能访问程序存储器访问的范围为64KB当然这种访问只能从ROM中读取数据而不能写入。

例如 MOVC A, @A+DPTR 😭(A)+ (DPTR))→A

设A中已存有#30HDPTR中已存有#1000H

MOVC A@A+DPTR;(A)←((A)+(DPTR))

操作将30H+1000H=1030H单元中的数放进累加器A

在这里插入图片描述

6、相对寻址

相对寻址只出现在相对转移指令中。相对转移指令执行时是以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。这里所说得PC的当前值是执行完相对转移指令后的PC值一般将相对转移指令操作码所在的地址称为源地址转移后的地址称为目的地址。于是有目的地址=源地址+2(相对转移指令字节数)+rel

51单片机指令系统中相对转移指令既有双字节的也有三字节的。

在这里插入图片描述

7、位寻址

采用位寻址方式的指令操作数是8位二进制数中的某一位。指令中给出的是位地址是片内RAM某个单元中的某一位的地址。位地址在指令中用bit表示。

例 CLR P1.0 ;(P1.0) ← 0

SETB ACC.7 ;(ACC.7)← 1

CPL C 😭 C )← NOT( C )

位地址常用下列三种方式表示;

(1)直接使用位地址表示。对于20H2FH的16个单元共128位位地址分布是00H7FH。

(2)对于特殊功能寄存器可以直接用寄存器名字加位数表示如PSW.3、ACC.5等。

(3)对于定义了位名字的特殊位可以直接用其位名表示例如CY、AC等。

寻址方式及对应存储器空间
在这里插入图片描述

寻址方式中常用符号注释

(1) Rn(n=0~7) 当前选中的工作寄存器R0~R7 。

(2) Ri(i=0,1) 当前选中的工作寄存器组中可作为间址寄存器

的两个工作寄存器R0、R1。

(3) #data 8位立即数。

(4) # data16 16位立即数。

(5) direct 8位片内RAM单元(包括SFR)的直接地址。

(6) addr11 11位目的地址用于ACALL和AJMP指令中。

(7) addr16 16位目的地址用于LCALL和LJMP指令中。

(8) rel 补码形成的8位地址偏移量。

(9) bit 片内直接寻址位地址。

(10)@ 间接寻址方式中表示间址寄存器的符号。

(11)/ 位操作指令中表示对该位先取反再参与操作但

不影响该位原值。

(12)(X) 表示X中的内容。

(13)((X)) 由X指出的地址单元中的内容。

(14) → 指令操作流程将箭头左边的内容送入箭头右边的单元。
首先地址的作用只有一个就是用来寻址

补充

51单片机的的片内寄存器都是可以字节寻址的。
字节地址就是用来寻址一个字节的内容和位地址相对应位地址就只能寻址一个位bit)。在单片机指令中寻址任何一个字节都需要字节地址寻址任何一个位都需要位地址。所谓的IP、IE不过是我们给这个寄存器取了另外一个名字而已。如MOV
IP#00H和
MOV B8H#00H
这两条语句是一样的效果。另外从这些寄存器的使用上来说IP、IE等特殊功能寄存器既可以字节寻址也可以位寻址是同样的效果。比如SETBPX0和MOV IP#01H是一样的都是将IP的第0位即PX0置1。不同的是字节寻址的时候是8位一起操作的会对其它的位赋值有时不想改变其它位的值就用位寻址。
所以字节地址是用来寻址字节的位地址是用来寻址位的。就这样。另外IP也好IE也好也都是寄存器要访问它们也需要地址访问字节用字节地址访问位用位地址不同的是它们用来对处理器进行配置我们给它们取了一些特定的名字而已。

数据

这是由微处理机处理的目标在各种不相同的使用电路中各不相同一般来说被处理的数据可能有这么几种状况

  • 地址如MOV DPTR#1000H即地址1000H送入DPTR。
  • 方法字或操控字如MOV TMOD#33便是操控字。
  • 常数如MOV TH0#10H10H即守时常数。
  • 实践输出值如P1口接彩灯要灯全亮则履行指令MOV P1#0FFH要灯全暗则履行指令MOV P1#00H这儿0FFH和00H都是实践输出值。又如用于LED的字形码也是实践输出的值。

总线概述

计算机系统是以微处理器为核心的各器件要与微处理器相连且必须协调工作所以在微处理机中引入了总线的概念各器件共同享用总线任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。

计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据控制总线用于传送控制信号 地址总线则用于选择存储单元或外设。

单片机的三总线结构

51系列单片机具有完善的总线接口时序可以扩展控制对象其直接寻址能力达到64k( 2的16次方) 。在总线模式下不同的对象共享总线独立编址、分时复用总线CPU 通过地址选择访问的对象完成与各对象之间的信息传递。
在这里插入图片描述

数据总线

51单片机的数据总线为P0口P0口为双向数据通道CPU从P0 口送出和读回数据。

控制总线

51系列单片机的控制总线包括读控制信号P3.7和写控制信号P3.6等二者分别作为总线模式下数据读和数据写的使能信号。

地址总线

单片机内部或者外部存储器及其它器件中有存储单元这些存储单元要被分配地址才能使用分配地址当然也是以电信号的形式给出的由于存储单元比较多所以用于地址分配的线也较多这些线被称为地址总线。地址总线Address Bus是一种计算机总线是CPU或有DMA能力的单元用来沟通这些单元想要访问读取/写入计算机内存组件/地方的物理地址。

51系列单片机的地址总线为16位。

为了节约芯片引脚采用P0口复用方式除了作为数据总线外在ALE信号时序匹配下通过外置的数据锁存器在总线访问前半周期从P0口送出低8位地址后半周期从P0 口送出8位数据。

高8位地址则通过P2口送出。

地址总线驱动
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6