第 4章 MCS-51单片机系统功能的扩展第 4章 MCS-51单片机系统功能的扩展
4.1 系统扩展概述
4.2 常用扩展器件简介
4.3 存储器的扩展
4.4 I/O扩展第 4章 MCS-51单片机系统功能的扩展
4.1 系统扩展概述
4.1.1 最小应用系统
(a) 8051/8751最小系统结构图; (b) 8031最小系统结构图图 4.1 MCS–51单片机最小化系统第 4章 MCS-51单片机系统功能的扩展
4.1.2 单片机系统扩展的内容与方法
1.单片机的三总线结构图 4.2 MCS–51单片机的三总线结构形式第 4章 MCS-51单片机系统功能的扩展
2.系统扩展的内容与方法
(1) 系统的扩展一般有以下几方面的内容:
① 外部程序存储器的扩展。
② 外部数据存储器的扩展。
③ 输入 /输出接口的扩展。
④ 管理功能器件的扩展 (如定时器 /计数器、键盘 /显示器、中断优先级编码器等 )。
第 4章 MCS-51单片机系统功能的扩展
(2) 系统扩展的基本方法:一般来讲,所有与计算机扩展连接芯片的外部引脚线都可以归属为三总线结构。扩展连接的一般方法实际上是三总线对接。要保证单片机和扩展芯片协调一致地工作,即要共同满足其工作时序。
第 4章 MCS-51单片机系统功能的扩展
4.2 常用扩展器件简介表 4.1 常用的扩展器件第 4章 MCS-51单片机系统功能的扩展表 4.1 常用的扩展器件第 4章 MCS-51单片机系统功能的扩展
4.2.1 8D锁存器 74LS373
图 4.3 74LS373结构示意图第 4章 MCS-51单片机系统功能的扩展图 4.4 74LS373用作地址锁存器第 4章 MCS-51单片机系统功能的扩展
4.2.2 74LS244和 74LS245芯片图 4.5 74LS244内部逻辑与引脚图第 4章 MCS-51单片机系统功能的扩展图 4.6 74LS245内部逻辑与引脚图第 4章 MCS-51单片机系统功能的扩展图 4.7 总线驱动器的连接图
(a)?P2外接 74LS244; (b) P0外接 74LS245
第 4章 MCS-51单片机系统功能的扩展
4.2.3 3-8译码器 74LS138
图 4.8 74LS138引脚图第 4章 MCS-51单片机系统功能的扩展表 4.2 74LS138的译码逻辑关系第 4章 MCS-51单片机系统功能的扩展
4.3 存储器的扩展
4.3.1 存储器扩展概述
1,MCS-51单片机的扩展能力根据 MCS-51单片机总线宽度 (16位 ),在片外可扩展的存储器最大容量为 64 KB,地址为 0000H~FFFFH。
因为 MCS-51单片机对片外程序存储器和数据存储器的操作使用不同的指令和控制信号,所以允许两者的地址空间重叠,故片外可扩展的程序存储器与数据存储器分别为 64 KB。
为了配置外围设备而需要扩展的 I/O口与片外数据存储器统一编址,即占据相同的地址空间。因此,片外数据存储器连同 I/O口一起总的扩展容量是 64 KB。
第 4章 MCS-51单片机系统功能的扩展
2.扩展的一般方法存储器除按读写特性不同区分为程序存储器和数据存储器外,
每种存储器还有不同的种类。程序存储器又可分为掩膜 ROM、
可编程 ROM(PROM)、可擦除 ROM(EPROM或 EEPROM);数据存储器又可分为静态 RAM和动态 RAM。因此,存储器芯片有多种。即使是同一种类的存储器芯片,容量的不同,其引脚数目也不同。尽管如此,存储器芯片与单片机扩展连接具有共同的规律。不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。另外,电源线应接对应的电源线上。
第 4章 MCS-51单片机系统功能的扩展存储器芯片的控制线:对于程序存储器,一般来说,具有读操作控制线 (OE),它与单片机的 PSEN信号线相连。除此之外,
对于 EPROM芯片还有编程脉冲输入线 (PRG)、编程状态线
(READY/BUSY)。 PRG应与单片机在编程方式下的编程脉冲输出线相接; READY/BUSY在单片机查询输入 /输出方式下,与一根 I/O口线相接;在单片机中断工作方式下,与一个外部中断信号输入线相接。
存储器芯片的数据线:数据线的数目由芯片的字长决定。 1
位字长的芯片数据线有一根; 4位字长的芯片数据线有 4根; 8位字长的芯片数据线有 8根;存储器芯片的数据线与单片机的数据总线 (P0.0~P0.7)按由低位到高位的顺序顺次相接。
第 4章 MCS-51单片机系统功能的扩展存储器芯片的地址线:地址线的数目由芯片的容量决定。容量 (Q)与地址线数目 (N)满足关系式,Q=2N。存储器芯片的地址线与单片机的地址总线 (A0~A15)按由低位到高位的顺序顺次相接。
一般来说,存储器芯片的地址线数目总是少于单片机地址总线的数目,如此相接后,单片机的高位地址线总有剩余。剩余地址线一般作为译码线,译码输出与存储器芯片的片选信号线相接。存储器芯片有一根或几根片选信号线。对存储器芯片访问时,片选信号必须有效,即选中存储器芯片。片选信号线与单片机系统的译码输出相接后,就决定了存储器芯片的地址范围。因此,单片机的剩余高位地址线的译码及译码输出与存储器芯片的片选信号线的连接,是存储器扩展连接的关键问题。
第 4章 MCS-51单片机系统功能的扩展
(1) 部分译码:所谓部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。参加译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关。也可以说,只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。正因如此,部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。
第 4章 MCS-51单片机系统功能的扩展图 4.9 地址译码关系图第 4章 MCS-51单片机系统功能的扩展图 4.9中与存储器芯片连接的低 11位地址线的地址变化范围为全 "0"~ 全 "1"。参加译码的 4根地址线的状态是唯一确定的。不参加译码的 A15位地址线有两种状态都可以选中该存储器芯片。
当 A15=0时,占用的地址是
0010000000000000~0010011111111111,即 2000H~2FFFH。
当 A15=1时,占用的地址是
1010000000000000~1010011111111111,即 A000H~AFFFH。
同理,若有 N条高位地址线不参加译码,则有 2N个重叠的地址范围。重叠的地址范围中真正能存储信息的只有一个,其余仅是占据,因而会造成浪费。这是部分译码的缺点。它的优点是译码电路简单。
第 4章 MCS-51单片机系统功能的扩展
(2) 全译码:所谓全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。
这种译码方法存储器芯片的地址空间是唯一确定的,但译码电路相对复杂。
这两种译码方法在单片机扩展系统中都有应用。在扩展存储器 (包括 I/O口 )容量不大的情况下,选择部分译码,译码电路简单,可降低成本。
第 4章 MCS-51单片机系统功能的扩展
3.扩展存储器所需芯片数目的确定若所选存储器芯片字长与单片机字长一致,则只需扩展容量。
所需芯片数目按下式确定:
存储器芯片容量系统扩展容量芯片数目?
若所选存储器芯片字长与单片机字长不一致,则不仅需扩展容量,还需字扩展。所需芯片数目按下式确定:
存储器芯片字长系统字长存储器芯片容量系统扩展容量芯片数目
第 4章 MCS-51单片机系统功能的扩展
4.3.2 程序存储器的扩展
1,EPROM芯片图 4.10 常用 EPROM芯片的引脚图第 4章 MCS-51单片机系统功能的扩展
2.程序存储器扩展举例
1) 不用片外译码器的单片程序存储器的扩展例 1 试用 EPROM2764构成 8031的最小系统。
2764是 8K× 8位程序存储器,芯片的地址引脚线有 13条,顺次和单片机的地址线 A0~A12相接。由于不采用地址译码器,所以高 3位地址线 A13,A14,A15不接,故有 23=8个重叠的 8 KB地址空间。因只用一片 2764,其片选信号 CE可直接接地 (常有效 )。
其连接电路如图 4.11所示。
第 4章 MCS-51单片机系统功能的扩展图 4.11 2764与 8031的扩展连接图第 4章 MCS-51单片机系统功能的扩展图 4.11所示连接电路的 8个重叠的地址范围为
0000000000000000~0001111111111111,即 0000H~1FFFH;
0010000000000000~0011111111111111,即 2000H~3FFFH;
0100000000000000~0101111111111111,即 4000H~5FFFH;
0110000000000000~0111111111111111,即 6000H~7FFFH;
1000000000000000~1001111111111111,即 8000H~9FFFH;
1010000000000000~1011111111111111,即 A000H~BFFFH;
1100000000000000~1101111111111111,即 C000H~DFFFH;
1110000000000000~1111111111111111,即 E000H~FFFFH。
第 4章 MCS-51单片机系统功能的扩展
2) 采用线选法的多片程序存储器的扩展例 2 使用两片 2764扩展 16 KB的程序存储器,采用线选法选中芯片。扩展连接图如图 4.12所示。以 P2.7作为片选,当 P2.7=0
时,选中 2764(1);当 P2.7=1时,选中 2764(2)。因两根线 (A13、
A14)未用,故两个芯片各有 22=4个重叠的地址空间。它们分别为第 4章 MCS-51单片机系统功能的扩展图 4.12 用两片 2764 EPROM的扩展连接图第 4章 MCS-51单片机系统功能的扩展左片,00000000000000000~0001111111111111,即 0000H~1FFFH;
00100000000000000~0011111111111111,即 2000H~3FFFH;
01000000000000000~0101111111111111,即 4000H~5FFFH;
01100000000000000~0111111111111111,即 6000H~7FFFH;
右片,10000000000000000~1001111111111111,即 8000H~9FFFH;
10100000000000000~1011111111111111,即 A000H~BFFFH;
11000000000000000~1101111111111111,即 C000H~DFFFH;
11100000000000000~1111111111111111,即 E000H~FFFFH。
第 4章 MCS-51单片机系统功能的扩展
3) 采用地址译码器的多片程序存储器的扩展例 3 要求用 2764芯片扩展 8031的片外程序存储器,分配的地址范围为 0000H~3FFFH。
本例要求的地址空间是唯一确定的,所以要采用全译码方法。
由分配的地址范围知:扩展的容量为 3FFFH-0000H+1=4000H=4
KB,2764为 8 K× 8位,故需要两片。第 1片的地址范围应为
0000H~1FFFH;第 2片的地址范围应为 2000H~3FFFH。
由地址范围确定译码器的连接。为此画出译码关系图如下:
第 4章 MCS-51单片机系统功能的扩展图 4.13 全译码、两片 2764 EPROM的扩展连接图第 4章 MCS-51单片机系统功能的扩展
4.3.3 数据存储器的扩展
1.数据存储器芯片图 4.14 常用静态 RAM芯片的引脚图
1 18
2 17
3 16
4 15
5 14
6 13
7 12
8 11
9 10
V CC
A 7
A8
A9
I/ O1
I/
I/
I/
WE
2 1 1 4
A6
A5
A4
A3
A 0
A1
A2
CS
G N D
1 24
2 23
3 22
4 21
5 20
6 19
7 18
8 17
9 16
10 15
11 14
12 13
6 1 1 6
A7
A6
A5
A4
A3
A2
A1
A0
I / O 0
G N D
V CC
A8
A9
WE
OE
A 1 0
CE
1 28
2 27
3 26
4 25
5 24
6 23
7 22
8 21
9 2 0
10 19
11 18
12 17
13 16
14 15
62 6 4
V CC
WE
CE 2
A8
A9
A 1 1
OE
A 1 0
CE 1
NC
A 1 2
A7
A6
A5
A4
A3
A2
A1
A0
G N D
O2
O3
O4
I / O 1
I / O 2
I / O 7
I / O 5
I / O 6
I / O 4
I / O 3
I / O 0
I / O 1
I / O 2
I / O 7
I / O 5
I / O 6
I / O 4
I / O 3
第 4章 MCS-51单片机系统功能的扩展图 4.15 iRAM芯片的引脚图第 4章 MCS-51单片机系统功能的扩展
2.数据存储器的扩展举例例 4 采用 2114芯片在 8031片外扩展 1 KB数据存储器。
图 4.16 用两片 2114 EPROM的扩展连接图第 4章 MCS-51单片机系统功能的扩展
4.3.4 兼有片外程序存储器和片外数据存储器的扩展举例例 5 采用 2764和 6264芯片在 8031片外分别扩展 24 KB程序存储器和数据存储器。
扩展连接电路如图 4.17所示。从图中可以看出,各有一片
2764和一片 6264的片选端并接在一根译码输出线上。即有 2764
和 6264芯片相同的地址单元将会同时选通,这不会发生地址冲突,因为两种芯片的控制信号是不一样的。请读者自己分析两种存储器及各芯片的地址范围。
第 4章 MCS-51单片机系统功能的扩展图 4.17 兼有片外 ROM,又有片外 RAM的扩展连接图第 4章 MCS-51单片机系统功能的扩展
4.4 I/O 扩 展
4.4.1 I/O口扩展概述
1,MCS-51单片机 I/O口扩展性能单片机应用系统中的 I/O口扩展方法与单片机的 I/O口扩展性能有关。
(1) 在 MCS-51单片机应用系统中,扩展的 I/O口采取与数据存储器相同的寻址方法。所有扩展的 I/O口或通过扩展 I/O口连接的外围设备均与片外数据存储器统一编址。任何一个扩展 I/O口,
根据地址线的选择方式不同,占用一个片外 RAM地址,而与外部程序存储器无关。
第 4章 MCS-51单片机系统功能的扩展
(2) 利用串行口的移位寄存器工作方式 (方式 0),也可扩展 I/O
口,这时所扩展的 I/O口不占用片外 RAM地址。
(3) 扩展 I/O口的硬件相依性。在单片机应用系统中,I/O口的扩展不是目的,而是为外部通道及设备提供一个输入、输出通道。
因此,I/O口的扩展总是为了实现某一测控及管理功能而进行的。
例如连接键盘、显示器、驱动开关控制、开关量监测等。这样,
在 I/O口扩展时,必须考虑与之相连的外部硬件电路特性,如驱动功率、电平、干扰抑制及隔离等。
(4) 扩展 I/O口的软件相依性。根据选用不同的 I/O口扩展芯片或外部设备时,扩展 I/O口的操作方式不同,因而应用程序应有不同,如入口地址、初始化状态设置、工作方式选择等。
第 4章 MCS-51单片机系统功能的扩展
2,I/O口扩展用芯片
MCS-51单片机应用系统中 I/O口扩展用芯片主要有通用 I/O口芯片和 TTL,CMOS锁存器、缓冲器电路芯片两大类。
通用 I/O口芯片选用 Intel公司的芯片,其接口最为简捷可靠,
如 8255,8155等。
采用 TTL或 CMOS锁存器、三态门电路作为 I/O扩展芯片,也是单片机应用系统中经常采用的方法。这些 I/O口扩展用芯片具有体积小、成本低、配置灵活的特点。一般在扩展 8位输入或输出口时十分方便。可以作为 I/O扩展的 TTL芯片有 74LS373,74LS277、
74LS244,74LS273,74LS367等。在实际应用中,根据芯片特点及输入、输出量的特征,应选择合适的扩展芯片。
第 4章 MCS-51单片机系统功能的扩展
3,I/O口扩展方法根据扩展并行 I/O口时数据线的连接方式,I/O口扩展可分为总线扩展方法、串行口扩展方法和 I/O口扩展方法。
(1) 总线扩展方法。扩展的并行 I/O芯片,其并行数据输入线取自 MCS-51单片机的 P0口。这种扩展方法只分时占用 P0口,并不影响 P0口与其它扩展芯片的连接操作,不会造成单片机硬件的额外开销。因此,在 MCS-51单片机应用系统的 I/O扩展中广泛采用这种扩展方法。
第 4章 MCS-51单片机系统功能的扩展
(2) 串行口扩展方法。这是 MCS-51单片机串行口在方式 0工作状态下所提供的 I/O口扩展功能。串行口方式 0为移位寄存器工作方式,因此接上串入并出的移位寄存器可以扩展并行输出口,而接上并入串出的移位寄存器则可扩展并行输入口。这种扩展方法只占用串行口,而且通过移位寄存器的级联方法可以扩展多数量的并行 I/O口。对于不使用串行口的应用系统,可使用这种方法。但由于数据的输入输出采用串行移位的方法,传输速度较慢。
第 4章 MCS-51单片机系统功能的扩展
(3) 通过单片机片内 I/O口的扩展方法。这种扩展方法的特征是扩展芯片的输入输出数据线不通过 P0口,而是通过其它片内 I/O口。即扩展片外 I/O口的同时也占用片内 I/O口,所以使用较少,但在 MCS-51单片机扩展 8243时,为了模拟 8243的操作时序,不得不使用这种方法。
第 4章 MCS-51单片机系统功能的扩展
4.4.2 8255可编程并行 I/O口扩展
1.芯片引脚及其内部结构图 4.18 8255A芯片的引脚图第 4章 MCS-51单片机系统功能的扩展图 4.19 8255A芯片的内部结构图第 4章 MCS-51单片机系统功能的扩展表 4.3 8255芯片的引脚信号说明第 4章 MCS-51单片机系统功能的扩展续表第 4章 MCS-51单片机系统功能的扩展
(1) 数据总线缓冲器:是一个 8位的双向三态驱动器,用于与单片机的数据总线相连。
(2) 读 /写控制逻辑:根据单片机的地址信息 (A1,A0)与控制信息 (RD,WR,RESET),控制片内数据,CPU控制字、外设状态信息的传送。
(3) 控制电路:根据 CPU送来的控制字使所管 I/O口按一定方式工作。对 C口甚至可按位实现 "置位 "或 "复位 "。控制电路分为两组:
A组控制电路控制 A口及 C口的高 4位 (PC7~PC4),B组控制电路控制
B口及 C口的低 4位 (PC3~PC0)。
(4) 三个并行 I/O端口,A口可编程为 8位输入,或 8位输出,或双向传送; B口可编程为 8位输入,或 8位输出,但不能双向传送; C口分为两个 4位口,用于输入或输出,也可用作 A口,B口的状态控制信号。
第 4章 MCS-51单片机系统功能的扩展
2,8255的操作方式
1) 读 /写控制逻辑操作选择表 4.4 8255的口操作状态第 4章 MCS-51单片机系统功能的扩展
2) 8255的三种工作方式方式 0(基本输入 /输出方式 ):这种工作方式不需要任何选通信号。 A口,B口及 C口的两个 4位口中任何一个端口都可以由程序设定为输入或输出。作为输出口时,输出数据被锁存;作为输入口时,输入数据不锁存。
方式 1(选通输入 /输出方式 ):在这种工作方式下,A,B,C
三个口分为两组。 A组包括 A口和 C口的高 4位,A口可由编程设定为输入口或输出口,C口的高 4位则用来作为 A口输入 /输出操作的控制和同步信号; B组包括 B口和 C口的低 4位,B口可由编程设定为输入口或输出口,C口的低 4位则用来作为 B口输入 /输出操作的控制和同步信号。 A口和 B口的输入数据或输出数据都被锁存。方式 1下的逻辑组态关系如图 4.20所示。
第 4章 MCS-51单片机系统功能的扩展图 4.20 8255方式 1逻辑组态关系图第 4章 MCS-51单片机系统功能的扩展
P C 5
P C 4
P C 6
P C 7
P C 3
I N TE
I N TE
&
&
≥ 1
P A 0 ~ P A
7
I B F A
S T B A
AC
K
A
O B F A
I N TR A
图 4,2 1 8 2 5 5 方式 2 逻辑组态关系图第 4章 MCS-51单片机系统功能的扩展3) 8255A的编程控制字图 4.22 8255A控制字的格式与定义
(a) 方式选择控制字; (b) C口置位 /复位控制字第 4章 MCS-51单片机系统功能的扩展图 4.23 8255的扩展连接图
3,8031与 8255的接口方法第 4章 MCS-51单片机系统功能的扩展例 6 试对图 4.23中的 8255A编程,使其各口工作于方式 0,A口作输入,B口作输出,C口高 4位作输出,C口的低 4位作输入。
由方式选择控制字的格式与 定义可确定出满足要求的方式控制字应为 91H(10010001B)。对 8255A编写程序将 91H写入它的控制寄存器,初始化程序为
MOV DPTR,#FF7FH ; DPTR作地址指针,指向控制口
MOV A,91H
MOVX @DPTR,A
因为图 4.23扩展电路未使用高位地址线,所以端口地址也可使用 8位。
第 4章 MCS-51单片机系统功能的扩展例 7 试按图 4.23扩展电路,写出自 8255A的 B口输出单片机中
R7内容与自 8255的 A口输入数据到单片机 R3的程序。
使用 8位地址,8255A的 A,B,C口及控制口地址分别为
7CH,7DH,7EH,7FH。则实现所要求功能的程序为
MOV R0,#7FH ; R0作地址指针,指向控制口
MOV A,#91H
MOVX @R0,A ;方式控制字送控制寄存器
MOV R0,#7DH ; R0指向 B口
MOV A,R7 ;
MOVX @R0,A ; R7的内容输出到 B口
DEC R0 ;使 R0指向 A口
MOVX A,@R0 ;从 A口输入数据到累加器 A
MOV R3,A ;把输入数据送存到 R3中第 4章 MCS-51单片机系统功能的扩展
4.4.3 8155可编程并行 I/O口扩展
8155芯片含有 256× 8位静态 RAM,两个可编程的 8位 I/O口,
一个可编程的 6位 I/O口,一个可编程的 14位定时器 /计数器。
8155芯片具有地址锁存功能,与 MCS-51单片机接口简单,是单片机应用系统中广泛使用的芯片。
1,8155的结构与引脚
8155的逻辑结构如图 4.24(a)所示,引脚分布如图 4.24(b)所示。
第 4章 MCS-51单片机系统功能的扩展图 4.24 8155逻辑结构及引脚
(a) 8155逻辑结构; (b) 8155芯片引脚图第 4章 MCS-51单片机系统功能的扩展
2,8155的 RAM和 I/O口编址
8155在单片机应用系统中是按外部数据存储器统一编址的,
地址为 16位,其高 8位地址由片选线 --CE提供,低 8位地址为片内地址。当 IO/M=0时,对 RAM进行读 /写,RAM低 8位地址为
00H~FFH;当 IO/-M=1时,对 I/O口进行读 /写,I/O口及定时器由
AD0~AD3进行寻址。其编址如表 4.5所示。
第 4章 MCS-51单片机系统功能的扩展表 4.5 8155内部端口编址
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 端 口
× × × × × 0 0 0 命令状态寄存器 (命令 /状态口 )
× × × × × 0 0 1 PA口
× × × × × 0 1 0 PB口
× × × × × 0 1 1 PC口
× × × × × 1 0 0 定时器低 8位
× × × × × 1 0 1 定时器高 8位第 4章 MCS-51单片机系统功能的扩展
3,8155的工作方式与基本操作
8155的 A口,B口可工作于基本 I/O方式或选通方式,C口可作为输入 /输出口线,也可以作为 A口,B口选通方式工作时的状态控制信号线。工作方式选择是通过对 8155内部命令寄存器
(命令口 )设定控制字来实现的。三个口可组合工作于四种方式下。命令字的格式及定义如图 4.25所示。
第 4章 MCS-51单片机系统功能的扩展图 4.25 8155命令控制寄存器格式第 4章 MCS-51单片机系统功能的扩展图 4.26 8155选通方式信号逻辑组态
PA
P C 0
P C 1
P C 2
P C 3
P C 4
P C 5
P B
I / O ( 设备数据线 )
A 口中断请求
A 口缓冲器满标志,至外设
A 口来自外设的选通信号
B 口中断请求
B 口缓冲器满标志,至外设
B 口来自外设的选通信号
I / O ( 设备数据线 )
8
8
A I N T R
B I N T R
BBF
A B F
B S T B
A S T B
&
&
I
N
T
E
B
I
N
T
E
A
第 4章 MCS-51单片机系统功能的扩展图 4.27 8155状态寄存器格式第 4章 MCS-51单片机系统功能的扩展
4,8155内部的定时器 /计数器图 4.28 8155定时器寄存器格式第 4章 MCS-51单片机系统功能的扩展图 4.29 8155定时器方式及输出波形第 4章 MCS-51单片机系统功能的扩展
5,8155与单片机的扩展连接图 4.30 用 8155的扩展连接第 4章 MCS-51单片机系统功能的扩展在图中连接状态下,8155所占的地址为
RAM地址范围,7E00H~7EFFH
I/O端口地址:命令 /状态口 7F00H
PA口 7F01H
PB口 7F02H
PC口 7F03H
定时器低字节 7F04H
定时器高字节 7F05H
第 4章 MCS-51单片机系统功能的扩展例 8 使 8155用作 I/O口和定时器工作方式,A口定义为基本输入方式,B口为基本输出方式,定时器为方波发生器,对输入脉冲进行 24分频 (8155中定时器最高计数频率为 4 MHz),则相应的程序如下:
MOV DPTR,#7F04H ; DPTR指向定时器低字节
MOV A,#18H ;计数器常数 0018H=24
MOVX @DPTR,A ;计数常数低 8位装入计数器低字节
INC DPTR ;使 DPTR指向定时器高字节
MOV A,#40H(01000000B) ;置定时器方式为连续方波输出
MOVX @DPTR,A ;装计数器高字节值
MOVX DPTR,#7F00H ;使 DPTR指向命令 /状态口
MOV A,C2H(11000010B)
MOVX @DPTR,A ;向命令 /状态口送方式控制字,并启动定时器第 4章 MCS-51单片机系统功能的扩展
4.4.4 用 TTL芯片扩展简单的 I/O接口在 MCS-51单片机应用系统中,采用 TTL或 CMOS锁存器、三态门芯片,通过 P0口可以扩展各种类型的简单输入 /输出口。 P0口是系统的数据总线口,通过 P0口扩展 I/O口时,P0口只能分时使用,
故输出时接口应有锁存功能;输入时,视数据是常态还是暂态的不同,接口应能三态缓冲,或锁存选通。
不论是锁存器,还是三态门芯片,都只具有数据线和锁存允许及输出允许控制线,而无地址线和片选信号线。而扩展一个 I/O
口,相当于一个片外存储单元。 CPU对 I/O口的访问,要以确定的地址,用 MOVX指令来进行。
第 4章 MCS-51单片机系统功能的扩展
1.用锁存器扩展输出口图 4.31 用 74LS377扩展输出口第 4章 MCS-51单片机系统功能的扩展
74LS377是带有输出允许控制端的 8D锁存器,有 8个输入端
(1D~8D),8个输出端 (1Q~8Q),1个时钟控制端 CLK,1个锁存允许端 E。当 E=0时,CLK的上升沿将 8位 D输入端的数据打入锁存器,
这时锁存器将保持 D端输入的 8位数据。在图中 CLK与 WR相连,
作为写 (输出 )控制端; E与单片机的地址选择线 P2.7相连,作为寻址端。如此连接的输出口地址是 P2.7=0的任何 16位地址。 7FFFH
可作为该口地址。对该口的输出操作如下:
MOV DPTR,#7FFFH ;使 DPTR指向 74LS377输出口
MOV A,#data ;输出的数据要通过累加器 A传送
MOVX @DPTR,A ;向 74LS377扩展口输出数据第 4章 MCS-51单片机系统功能的扩展
2.用锁存器扩展输入口图 4.32 用 74LS373扩展输入口第 4章 MCS-51单片机系统功能的扩展中断系统初始化程序:
PINT,SETB IT0 ;外部中断 0选择为下降沿触发方式
SETB EA ;开系统中断
MOV R0,#50H ; R0作地址指针,指向数据区首址
SETB EX0 ;外部中断 0中断允许中断服务程序:
ORG 0003H
PINT0,AJMP INT0
INT0,MOV DPTR,#0BFFFH ;使 DPTR指向 74LS373扩展输入口
MOVX A,@DPTR ;从 74LS373扩展输入口输入数据
MOV @R0,A ;输入数据送数据区
INC R0
RETI

第 4章 MCS-51单片机系统功能的扩展
3.用三态门扩展输入口图 4.33 用 74LS244扩展输入口第 4章 MCS-51单片机系统功能的扩展
4.扩展多个输入、输出口举例图 4.34 扩展多个输入口和输出口的连接第 4章 MCS-51单片机系统功能的扩展
4.4.5 用串行口扩展并行 I/O口
MCS-51单片机的串行口在方式 0(移位寄存器方式 )下,使用移位寄存器芯片可以扩展一个或多个并行 I/O口。
扩展并行输入口时,可用并入串出移位寄存器芯片,如
CMOS芯片 4014和 74LS165芯片。
第 4章 MCS-51单片机系统功能的扩展图 4.35 8并行输入 /串行输出移位寄存器芯片的引脚图
(a) 4014; (b) 74LS165
第 4章 MCS-51单片机系统功能的扩展图 4.36 8串行输入 /并行输出移位寄存器芯片的引脚图
(a) 4094; (b) 74LS164
第 4章 MCS-51单片机系统功能的扩展
1.用串行口扩展并行输入口图 4.37 串行口扩展并行输入口连接第 4章 MCS-51单片机系统功能的扩展下面是从两个扩展的 8位并行口输入数据存于片内 RAM的 30H、
31H单元的应用程序。
SETB P1.7 ;置 4014于并行输入工作方式
CLR P3.1 ;串行口未启动之前,P3.1上无同步移位脉冲,为 4014
SETB P3.1 ;并行置数,软件产生一个脉冲上升沿
CLR P1.7 ;置 4014于串行移位工作方式
MOV SCON,#00010000B;置串行口为工作方式 0,同时启动串行口接收数据
NB RI,$ ;检测串行口接收数据是否完毕,未完等待
CLR RI ;接收完毕后清 RI标志
MOV R0,#30H
MOV @R0,SBUF ;将接收的 8位数据送存 30H单元
MOV SCON,#00010000B ;再启动串行口接收 4014(2)的 8位数据
JNB RI,$ ;检测串行口接收数据是否完毕,未完等待
CLR RI ;接收完毕后清 RI标志
INC R0
MOV @R0,SBUF ;将接收到 4014(2)的 8位数据送存 31H单元第 4章 MCS-51单片机系统功能的扩展
2.用串行口扩展并行输出口图 4.38 串行口扩展并行输出口连接第 4章 MCS-51单片机系统功能的扩展图示连接中,单片机串行口发送数据到 4094(1)中,第一个 8
位数据发送完毕,接着发送第二个数据时,每发送一位,4094(1)
中的一位数据自 Q8就移向 4094(2)。这样发送完两个 8位数据后,
第一个发送的数据就移入到 4094(2)中,第二个发送的数据在
4094(1)中。此时,只要置 STB端为低电平,在一个时钟上升沿的作用下,可将两个 8位数据从扩展口输出。
第 4章 MCS-51单片机系统功能的扩展下面是将片内 RAM 30H,31H单元的两个数向两个扩展口
4094输出的应用程序。
SETB P1.7 ;置 4094于串行移位工作方式
MOV SCON,#00H ;置串行口于工作方式 0
MOV R0,#31H
MOV SBUF,@R0 ;将 31H单元的数写入 SBUF,启动发送
JNB TI,$ ;检测串行口发送数据是否完毕,未完等待
CLR TI ;发送完毕后清 RI标志
DEC R0
第 4章 MCS-51单片机系统功能的扩展
MOV SBUF,@R0 ;将 30H单元的数写入 SBUF,再启动发送
JNB TI,$ ;检测串行口发送数据是否完毕,未完等待
CLR TI ;发送完毕后清 RI标志
CLR P1.7 ;置 4094于并行输出工作方式
CLR P3.1 ;串行口数据发送完毕,P3.1上已停止同步移位脉冲
SETB P3.1 ;为使 4092并行输出数据,软件产生一个脉冲上升沿