设计与开发

单片机 地址分配 51单片机学习笔记(51单片机的地址空间)一

小编 2025-06-18 设计与开发 23 0

51单片机学习笔记(51单片机的地址空间)一

MCS-51单片机在物理结构上有四个存储空间

1,片内程序存储器(片内ROM) 类似电脑上的硬盘(只不过很小)

2,片外程序存储器(片外ROM)

3,片内数据存储器(片内RAM)

4,片外数据存储器(片外RAM)

在逻辑上(用户的角度上)MSC-51单片机有三个存储空间

1,片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC)

2,256B的片内数据存储器(片内RAM)地址空间 (MOV) :因为MSC-51单片机是8位的所以能够访问的最大地址空间为2^8次方 即256个字节

3,以及64K片外数据存储器(片外RAM)地址空间 (MOVX)

MSC-51单片机内部数据存储区划分 (以下内容部分来自网络,有自己的理解,可能有错,还望指出)

自己理解:因为MSC-51单片机是8位的,所以能够访问的空间地址编号只能有256个,即0~255,十六进制:0x00 ~0xFF。

地址空间划分:

1:0x00 ~ 0x1F (32个字节)

工作寄存器有4组,每组都是8个工作寄存器R0~R7,通过PSW程序状态字寄存器中的RS1,RS0两位选择使用哪一组,如果不选,默认选择第0组。

RS1 RS0 组合为 0 0时,选中第0组工作寄存器,RO~R7 地址为00H ~07H.

RS1 RS0 组合为 0 1时,选中第1组工作寄存器, RO~R7 地址为08H ~0FH.

RS1 RS0 组合为 1 0时,选中第2组工作寄存器, RO~R7 地址为10H ~17H.

RS1 RS0 组合为 1 1时,选中第3组工作寄存器, RO~R7 地址为18H ~1FH.

当使用R0-R7来表示操作数时,属于寄存器寻址方式

5分钟了解单片机数据、地址、控制总线结构

一、总线概述

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

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

二、单片机的三总线结构

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

单片机三总线扩展示意如图1 所示。

1、数据总线

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

2、地址总线

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

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

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

3、控制总线

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

三、单片机总线时序分析

51 单片机总线时序如图2 所示。

从图2 中可以看出,完成一次总线( 读写) 操作周期为T,P0 口分时复用,在T0 期间,P0 口送出低8 位地址,在ALE 的下降沿完成数据锁存,送出低8位地址信号。在T1 期间,P0 口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。

需要注意的是,在控制信号( 读、写信号) 有效期间,P2 口送出高8位地址,配合数据锁存器输出的低8 位地址,实现16 位地址总线,即64kB 范围的内的寻址。

由于CPU不可能同时执行读和写操作,所以读、写信号不可能同时有效。

四、常见单片机编址电路

1、简单地址扩展

51 单片机的P2 口可以直接作为高8位地址总线使用,在一些简单系统电路中,常使用P2口直接编址驱动。

下面以使用数据缓冲器74LS273 驱动数码显示为例,分析P2 口编址驱动的静态数码显示电路的设计。

一位LED 数码显示单元电路如图3 所示。

WR 与A8( P2.0) 相或提供74LS273的时钟信号,当执行“MOVX @DPTR,A”指令时,地址信息由DPTR 寄存器确定,会出现有效的写信号WR,只有当地址A8 为满足“0”时,写信号才可以作为74LS273 的时钟信号输入,完成数据锁存。

P2 口为A8~A15 的8 位地址线,很容易扩展到8 只LED 数码管,WR 信号分别与A8~A15 按或关系连接,每位地址线均为低电平有效,即可实现8 个有效地址。

该方案电路简单,但有效地址数太少,不适用于复杂系统设计。

2、低8 位地址锁存

通常的设计电路是使用8D 锁存器74LS373 实现地址锁存,74HC573 与之逻辑功能相同,只是引脚布局不一样,使用74HC573 布线更容易。

74LS373 真值表如图4所示。

在输出允许OE 为L、控制使能LE 为H 时,输出为跟随状态;OE 为L、LE 为L 时,输出为保持状态。

地址锁存电路如图5 所示。OE 接地,LE 接单片机的ALE脚将产生满足时序的低8 位地址信号。

执行以下三条指令会得到如图6所示的时序图。

MOV DPTR,# 0FF55H; 低8 位地址为55H

MOV A,# 0AAH; 待发送数据0AAH→A( 55H 取反)

MOVX,@DPTR,A; A 中的0AAH送地址为0FF55H 的对象中会。

从图6 中可以看出,P0 口先送55H,在ALE 下降沿实现地址锁存,随后送出数据0AAH,在WR 有效( 低电平) 期间锁存器输出低8 位地址55H,P0 口送出数据0AAH。

3、带译码器的复杂地址接口电路

理论上高8 位地址线可以产生256 个有效地址,如何实现地址“扩展”呢? 地址扩展准确描述是地址译码,例如3 根地址线可以译码成8 个地址,4根译码成16 个有效地址。这里选择3-8 译码器实现地址译码,电路图以及对应的编址如表1 所示。

五、单片机总线编址电路实例

总线扩展接口的单片机系统,包括外部32k RAM 扩展、LCD1602 接口、输入输出口。

D0~D7 接数据总线P0 口,地址线A0~A14接单片机地址总线低15 位,单片机地址线A15 接RAM 片选信号,低电平有效,这样RAM 地址分配从0000H 到7FFFH,与74138 译码地址不冲突。

LCD1602 接口电路如图9 所示。

RS、RW 分别接A12、A13,使能信号编址为Y7,这样LCD 的四个驱动地址( 数据读写和命令读写) 为0CFFFH 到0FFFFH ( 无关位为1) 或者8700H 到0B700H( 无关位为0)。

有些时候单片机引脚不够用,还要进行扩展,输入口扩展电路如图10 所示。

利用74HC573( 74LS373) 的高阻态功能,将其输出Q0~Q7 接P0 口,在满足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH 或8000H。

输出口扩展电路如图11 所示。

利用74LS273 数据锁存功能,在满足总线地址写操作中,可以把单片机累加器里的数据写入273 锁存输出,地址为0F8FFH 或8000H。由于所用控制总线不同,可以和输入共用地址。

六、结束语

总线扩展是设计单片机控制电路必须掌握的技术,大量的特殊功能IC都支持总线接口, 如ADC0809,TLC7528,DDS 器件AD9851 等。

总线接口的要点就是在严格的控制时序下,总线被分时复用,以实现复杂系统设计。

相关问答

单片机 地址 线和数据线是如何复用 分配 的?

在单片机中,地址线和数据线是通过地址总线和数据总线分别复用分配的。地址总线通常用于将地址信号从CPU传输到外部设备或存储器,以确定需要访问的存储单元或...

8051 单片机 内RAM低128字节划分为哪三个部分,有什么作用-ZOL问答

data、idata、xdata、pdata、code是定义不同数据的数据或地址空间的伪指令,含义如下:data:0x00-0x7f,片内RAM直接寻址区idata:0x00-0xff,片内R...

单片机 的存储空间如何计算-ZOL问答

51单片机的具体存储器地址分配程序存储器(ROM)的内部地址为0000H~0FFFH,共4KB;外部地址为1000H~FFFFH,共60KB。当程序计数器由内部0FFFH执行到外部...

51 单片机 里面的 地址 指针DPTR和工作寄存器组有什么作用?都有一些什么样的功能?都用在什么地方?

如果是用c语言编程,可以不必注意这些问题,因为编程软件会自动帮你分配,也不容易出错!!数据指针DPTR是80C51中一个功能比较特殊的寄存器。从结构DPTR是一个1...

简述89S51 单片机 片内RAM的 分配 空间?

89S51单片机片内RAM的分配:00~1FH:工作寄存器区;20~2FH:位寻址区;30~7FH:通用区。89S52单片机片内RAM,还有:80~FFH:通用区,必须间接寻址。89S51单片机片内...

MCS-51 单片机 片内RAM的组成是如何划分的,各有什么功能?

51内部RAM分配:工作寄存器区00H--1FH位寻址区20H--2FH便笺区30H--7FH共128字节;片外的80H--FFH为特殊功能寄存器;而52的这部分在片内;52有256字节大小;51内...

MCS-51系列 单片机 的存储器可划为几个空间?其 地址 范围及容量...

2、地址范围及容量程序存储器是片内外统一寻址,片内程序存储空间+片外程序存储空间=64K的存储空间(0000H-FFFFH)。而数据存储器则是单独寻址,片内数据存储空间...

总结编写 单片机 应用程序的一般思路要点有哪些?

编写单片机应用程序的一般思路要点:1、根据所选单片机型号,查阅该单片机技术文档,了解单片机具有哪些内部资源。2、阅读软件设计说明书详细了解通过编程所要...

单片机 怎么让两个程序同时进行?

在单片机中,可以让两个程序同时进行的一种方法是使用多任务处理技术。可以通过将两个程序分别拆分成多个小任务,然后分配给不同的处理器或线程来并行运行。另...

单片机 设计,看谁会?

了解电机的转向关系,如图,是要正转还是反转。三相单三拍不如三相单双六拍控制好。因为丢失任意一个节拍电机不会停转。所以按6拍画出通电顺序图。用单片机的IO...

猜你喜欢