0 关于并行扩展

MCS-51单片机片内集成了各种存储器和I/O功能部件,但有时根据应用系统的功能需求,片内的资源还不能满足需要,还需要外扩存储器和I/O功能部件(也称I/O接口部件),这就是通常所说的MCS-51单片机的系统扩展问题。

MCS-51单片机外部存储器结构,采用类似于哈佛结构的设计,即程序存储器的空间和数据存储器的空间是截然分开的,但不是标准的哈佛结构。还有一种外部存储器的结构,它是程序存储器和数据存储器合用一个空间的结构:普林斯顿结构,如MCS-96单片机的存储器结构就是采用普林斯顿结构。

系统扩展是以MCS-51单片机为核心进行的。扩展内容包括扩展程序存储器(ROM)、数据存储器(RAM)、I/O接口部件及I/O设备等。

MCS-51单片机数据存储器(RAM)和程序存储器(ROM)的存储空间分别为128B和2K,的最大扩展空间各为64KB,扩展后,系统形成了2个并行的64KB外部存储器空间。

1 并行扩展相关引脚

1.1 MCS-51

51单片机共有三组总线,地址总线AB、数据总线DB、控制总线CB。

地址总线(AB):

  • P2:高八位
  • P0:低八位(与数据总线复用)

数据总线(DB):

  • P0(与地址总线复用)

控制总线(CB):

  • ALE(Address Lock Enable 允许地址锁存信号,以1/6的振荡频率稳定输出)
  • /PSEN(Program Store Enable 外部程序存储器读选通信号)
  • /RD(读信号)
  • /WR(写信号)

51系列单片机最大扩展ROM为64KB,RAM也为64KB。

1.2 三态锁存器74LS373

  • /OE:三态控制。低电平:允许数据输出,三态门通。高电平:三态门关闭,输出高阻。
  • G (LE):数据锁存控制。高电平时,输出随输入变化;低电平时,Q端将被锁存。
  • D7~D0:数据输入端
  • Q7~Q0:三态输出端

1.2 同步锁存器74LS373

  • /E:总使能端,低电平有效
  • ^CP:时钟信号,上升沿锁存数据
  • D7~D0:数据输入端
  • Q7~Q0:锁存输出端(高低)

1.3 三态门74LS244

  • /G:三态门控制端,低电平有效,高电平时输出高阻态
  • A7~A0:数据输入端
  • Y7~Y0;三台输出端,/G=0时随A变化,/G=1时高阻

1.4 译码器74LS138

  • CBA:选择输入。作为与输出对应的二进制编码输入;
  • G1, /G2A, /G2B:使能输入,仅有当G1 = 1,/G2A = 0,/G2B = 0时译码输出,否则全1;
  • Y7~Y0:译码器输出,低电平有效。

1.5 EPROM 27C64等

  • A12~A0:地址信号输入线
  • /CE(Chip Enable):片选信号,低电平有效
  • /OE(Output Enable):输出允许信号,低电平有效
  • O7~O0:数据线8bit
  • PGM:编程脉冲输入端,对芯片编程时加入编程脉冲信号;读取数据时PMG的值为1
  • 命名规则:前面的27C代表EPROM,28C代表EEPROM,29C代表Flash Memory;而后的64表示64kbit,256表示256kbit,010表示1Mbit,320表示32Mbit

1.6 RAM 6264等

  • A13~A0:地址信号输入线,64kbit仅用到A8~A0共9条线
  • /CS(Chip Select):片选信号,低电平有效
  • /OE(Output Enable):输出允许信号,低电平有效
  • /WE(Write Enable):写允许信号,低电平有效
  • D7~D0:数据线8bit
  • 命名规则:6264表示64kbit,62128表示128kbit,62256表示256kbit

2 MSC-51的ROM扩展

2.1 MCS-51的简单ROM连接

  • 与单个ROM连接不需要译码器
  • 在373选通时,P0口控制下8位地址线,P2.0到P2.4控制上5位
  • 在373锁存时,P0口用于传输ROM信号
  • /PSEN低电平时从P0读入ROM数据,高电平时O7~O0高阻态
  • 由于P2.5控制/CE,P2.5=0均为无效地址
  • 由于P2.7,P2.6不对地址造成影响,出现重叠

2.2 MCS-51的全扩ROM连接

  • P2口高三位经38译码器变为8位信号,控制8个ROM的片选/CE
  • P2低5位和373锁存构成13位地址
  • ALE下降沿时373锁存来自P0的低位地址数据
  • /PSEN低电平时从P0读入ROM数据,高电平时O7~O0高阻态
  • 当PC行至外部程序存储器时,单片机读取外部内容
  • 对应外扩地址如下图所示

2.3 片外存储器取指操作时序

片外取指时序

P2、P0输出指令地址

373锁存P0口输出地址

/PSEN选通读出地址内容

指令通过P0口返回单片机

2.4 片外取指操作的软件实现

  • 当PC行至外扩地址时,自动通过P2、P0读取外部指令,无需软件编写
  • MCS-51外部ROM最大容量为64KB,地址空间0000H~FFFFH
  • 数据是单向的,MCS-51只能读取ROM数据,不能修改

3 MSC-51的RAM扩展

3.1 MCS-51的RAM连接

  • RAM扩展与ROM扩展类似,都要用到锁存器、译码器、存储器
  • 与ROM使用/PSEN不同,RAM使用/RD和/WR分别控制读和写
  • P0口仍然处于复用模式,输出地址低位并输入外部信号

3.2 片外存储器数据读写时序

片外读写时序

MOVX指令用于访问片外

P2、P0输出数据地址DPTR

/RD选通进行“读”操作

数据通过P0口返回单片机

3.3 片外读写的软件实现

  • MOVX A,@DPTR 用于片外读取数据
  • MOVX @DPTR,A 用于片外写存数据
  • 片外RAM扩展的极限值同样为64KB

4 MSC-51的I/O扩展

4.1 I/O扩展的目的

  • 增加IO口个数
  • 电平匹配
  • 增加驱动能力

4.2 MCS-51的I/O连接

  • MCS-51的I/O扩展与RAM扩展基本类似
  • 可以通过多种芯片实现I/O扩展

4.3 I/O扩展的软件实现

I/O扩展的软件实现与RAM基本相同,即使用DPTR对外扩进行读写。


__________________

By Signalista