文章目录
Chapter9:单片机总线与系统扩展
-
一片C51功能是全的,就可以看做成一个最小系统。8031呢,因为本身没有ROM,所以要外接一个EPROM,加起来就能正常工作,就构成了一个最小系统。
对于简单应用,最小系统就能满足需求。
但在很多复杂情况下,单片机最小系统不能满足我们的使用需求,所以要扩充。
-
何时需要进行扩展?
最小系统能不能满足我的要求?若能够满足,就够了。若不能满足,就得考虑扩展。
-
扩展主要是面向:ROM、RAM、I/O接口
9.1 单片机总线信号的定义
9.1.1 总线接口信号图
-
单片机是通过地址总线,数据总线和控制总线与外部交换信息的
由图可见:
1)由于P0分时传送地址/数据信息,在接口电路中,通常配置地址锁存器,由ALE信号锁存低8位地址A0~A7,以分离地址和数据信息。2)P2口传送高8位地址A8~A15。
3)/PSEN:连接到外部ROM的选通控制,只读。是在取指令码时或执行MOVC指令时变为有效。
/WR、/RD:读、写。是执行MOVX指令时变为有效。
-
系统扩展的连线原则
9.1.2 系统扩展的方法
通常和计算机接口的专用芯片具备三总线引脚,即数据线、地址线、读写控制线、片选线。
其中地址线的根数取决于片内存储单元的个数或I/O接口内寄存器(端口)的个数,若有N根地址线,则单元的个数= $2^N $ 。MCU和这些芯片的连接方法是对应线相连。规律如下:
-
数据线的连接:
外接芯片的数据线 D0~D7 接图9-1单片机的数据线的 D0~D7,
对于并行接口,数据线通常为8位、各位对应连接。
-
控制线的连接:
-
外接ROM:
由于程序存储器只读,通常使用状态是读操作,因此只需连OE引脚。PSEN为程序存储器的选通控制信号,连接ROM的输出允许端OE;
-
外接RAM和I/O口
由于数据存储器可读可写,而RD(P3.7)和WR(P3.6)为数据存储器(RAM)和I/O口的读写控制信号,因此单片机的RD应连接扩展芯片的OE (输出允许)或RD端,单片机的WR应连接扩展芯片的WR或WE端。
-
-
地址线的连接:
和计算机接口的专用芯片会有N根地址线引脚,用于选择片内的存储单元或端口,称为字选或片内选择;外围芯片通常都有一个片选引脚,仅当该引脚为有效电平(通常为低电平)该片才被选中。
一个芯片的某个单元或某个端口的地址由片选的地址和片内字选择地址共同组成,因此字选和片选引脚均应接到单片机的地址线上。连线的方法是:字选 or 片选-
字选:
外围芯片的字选(片内选择)地址线引脚直接接单片机的从A0开始的低位地址线
-
片选:
1)片选引脚接单片机用于片内寻址剩下的高位地址线某根;此法称为线选法,或称线译码。
2)片选引脚接对高位地址线进行译码后的输出。译码可采用部分译码或全译码法。
3)片选端可直接接地。
-
9.1.3 地址译码器
-
使用逻辑门译码
例题1:给你图,让你算存储器的地址范围:
(1)先看低八位,P0口,A0~A11, $ 2^{12}=4K$ 。所以字选 有 4K 的范围。
(2)再看高八位,P2口,A12~A15,要起作用的话,片选必须是 0110B = 6H,
(3)合起来,地址范围就是:6000H ~ 6FFFH
例题2:给定片选范围+字选范围,计算地址范围
(1)A15~A13是无用位,这里用1填充
(2)P2.4 就是 片选,只有两种选择 0 或 1
(3)合起来,若A12=0,则片选为 1110B = EH;若A12=1,则片选为 1111B = FH;
-
使用译码器芯片进行地址译码
常用3-8译码器
*例题见ppt
9.2 程序存储器的扩展
9.2.1 EPROM
-
单片机在取指令码时,和执行MOVC指令时/PSEN会变为有效,
其它信号ALE、P0和P2配合完成扩展程序存储器的方法。
-
芯片:
51单片机的 /PSEN 连接 外部EPROM的 /OE ,作为 控制
51单片机的 P2.0~P2.3 连接 外部EPROM 的 A8~A11 ,作为 片选
51单片机的 P0.0~P0.7 连接 外部EPROM 的 A0~A7 , 作为 字选 ,中间通过一个 地址锁存器
51单片机的 P0.0~P0.7 连接 外部EPROM 的 D0~D7 , 作为 字选 ,中间通过一个 地址锁存器
51单片机的 /ALE 控制 地址锁存器
-
扩展?
上图是 4KB,因为共有 A0~A11,12条线,且片选是可变的。
如果要 8KB? 则片选变成:A8~A12,13条线。 2 13 = 8 k b 2^{13}=8kb 213=8kb 。
9.2.2 EEPROM
-
特点:EEPROM可以电擦除,很快。【EPROM只能用紫外线擦除,很麻烦。】
既可以读、也可以写。
-
芯片:
作为只读: 只要连接 /PSEN ---- /OE (或者 /RD — /OE)
作为读写:连接 /WE /RD
9.2.3 FLASH
-
特点:和EPROM类似,加了 电擦除、可再编程、可读可写
-
芯片:
*见ppt
9.3 数据存储器的扩展
-
单片机内部只有 128B 的 RAM,最大我们能扩充 64K 的 RAM
-
芯片:
和之前一样的
-
MOVX指令
单片机8XX51读写外部数据RAM的操作使用MOVX指令,用 Ri 间址或用 DPTR 间址。
-
ROM 和 RAM 混合使用
9.4 I/O 接口的扩展
-
在外部扩展时, P0和P2口要做总线使用,P3口又有一些特殊功能, 因而提供给用户的 I /O口基本只有P1口了,当所连接的外设较多时, 就必须扩展I/O接口。
-
MCS-51单片机扩展的I/O口和外部数据存储器统一编址, 采用相同的控制信号, 相同的寻址方式和相同的指令。
-
扩展I/O所用的芯片有 TTL锁存器,缓冲器(如273, 244, 245等) 和
通用可编程芯片 ( 如8255, 8155, 8253等),用户可根据系统的要求选择芯片。
-
输出设备最简单的接口:锁存器
输入设备最简单的接口:缓冲器
9.4.1 通用锁存器、缓冲器的扩展
都是通过P2.0来控制。右边读、写的地址是一样的。但一个只能读,一个只能写。
优点:节省单片机接口
9.4.2 可编程并行接口芯片的扩展
-
上面讲的是最简单的:输入:缓冲器; 输出:锁存器。
-
可编程并行接口芯片是专为:和计算机接口而制作的。
有和计算机接口的三总线引脚,和CPU或MCU连接非常方便
-
8255可编程并行接口芯片(左边和计算机连,右边和外设连。C口比较特别,分高低位)
-
40个引脚:
PA、PB、PC 共 24 个 + D0~D7 共 8 个 +
A1 A0 2个 + /RD /WR 读写 2个 + Vcc GND 2个 + /CS 片选端 RESET重置 2个
-
三种工作方式【D7=1】:
方式0/1/2 , 我们一般都用方式0
**8255的方式控制字!每一位代表什么含义,一定要知道! **
D6D5的A口方式:00方式0 , 01方式1 , 10方式2
D2的B口方式:0方式0 , 1方式1
D3D0:对应C口的高四位、低四位 的 I/O 选择
I/O口:1表示input,0表示output
-
8255的置位、复位控制字格式为: (D7=0)
-
例题:
9.5 存储器和I/O口的扩展实例
- 下图是一个用8031/80C31扩展1片2732(4K×8位 EPROM),2片6116(2K×8位 SRAM)和1片8255(可编程并行接口)的电路。
9.6 小结
- 单片机应用系统的设计中如果片内的资源不够,就需要扩展,扩展无非是加接ROM、RAM和I/ O接口等外围芯片。本章重点要掌握单片机扩展的方法及地址的译码。
- 外围芯片和单片机的连接归结为三总线(数据总线、地址总线和控制总线)的连接,因此 单片机三总线的定义应十分熟悉,即要求掌握图9.1,这是扩展的基础。
- 在微机系统中,控制外围芯片的数据操作有三要素:地址、类型控制(RAM、ROM)和操作方向(读、写)。三要素中有一项不同,就能区别不同的芯片。如果三项都相同,就会造成总线操作混乱。因此在扩展中应注意。