80C51的并行扩展
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
评论