1.16k likes | 1.32k Views
第八章 单片机小系统及片外扩展. 8.1 并行扩展三总线的产生 8.2 扩展程序存储器 8.3 扩展数据存储器 8.4 扩展 8255A 可编程外围并行接口芯片 8.5 扩展 8155 可编程外围并行接口芯片 8.6 串行扩展总线接口技术. 单片机芯片内集成了计算机的基本功能部件,已经具备很强的功能,有的芯片就是一个完整的最小微机系统。但由于受到芯片面积的限制,片内 ROM 、 RAM 的数量,并行、串行 I/O 口 , 定时器及中断源等内部资源都很有限,一般都需要扩展。另外,由于外部设备类型繁多,结构各异,在运行速度上,数据传送的方式上,时.
E N D
第八章 单片机小系统及片外扩展 8.1 并行扩展三总线的产生 8.2 扩展程序存储器 8.3 扩展数据存储器 8.4 扩展8255A可编程外围并行接口芯片 8.5 扩展8155可编程外围并行接口芯片 8.6 串行扩展总线接口技术
单片机芯片内集成了计算机的基本功能部件,已经具备很强的功能,有的芯片就是一个完整的最小微机系统。但由于受到芯片面积的限制,片内ROM、RAM的数量,并行、串行I/O口,定时器及中断源等内部资源都很有限,一般都需要扩展。另外,由于外部设备类型繁多,结构各异,在运行速度上,数据传送的方式上,时单片机芯片内集成了计算机的基本功能部件,已经具备很强的功能,有的芯片就是一个完整的最小微机系统。但由于受到芯片面积的限制,片内ROM、RAM的数量,并行、串行I/O口,定时器及中断源等内部资源都很有限,一般都需要扩展。另外,由于外部设备类型繁多,结构各异,在运行速度上,数据传送的方式上,时
序上与单片机存在很大差异,要把单片机与外部设备有机地联系起来,就需在单片机与外部设备间加入I/O接口。序上与单片机存在很大差异,要把单片机与外部设备有机地联系起来,就需在单片机与外部设备间加入I/O接口。 扩展有两种方案 1. 串行扩展方案 通过各种串行接口和总线扩展外设( E2 PROM、A/D、O/A、显示器等),可较少的占用MCU的I/O口线,编程方便。
2. 并行扩展方案 利用外扩三总路线(地址总线、数据总线、控制总线)来扩展外设,从数据传送的速率上显然优于串行扩展方案,但会使得系统的边线较为复杂。 89C51的系统扩展及接口结构如图8-1所示:
89C51 数据存储器 程序存储器 I/O接口 I/O接口 I/O设备 I/O设备 地址总线 数据总线 控制总线 图8-1 89C51的系统扩展及接口结构
P2 ALE P0 89C51 PSEN WR RD A8~A15 DO~D7 地址总线 地址 寄存器 A0~A7 数据总线 控制总线 8.1 并行扩展三总线的产生 8.1.1 片外三总线结构 图8-2 89C51扩展三总线
总线:连接系统中各个扩展部件的一组公共信 号线。按其功能,将其系统总线分为三 组:地址总线,数据总线和控制总线。 1、地址总线(AB)用于传送单片机送出的地址信号,对存储 单元和I/O端口进行选择。地址总线是单向 的,只能由单片机向外发送。地址总线的数 目决定了可直接访问的存储单元的数目。
2、数据总线(DB) 用于单片机与存储器之间,单片机与I/O端口之间的数据传送。数据总线是双向传送的。数据总线的位数与单片机处理数据的字长一致。 3、控制总线(CB) 用于传送单片机发出的以控制片外ROM、RAM和I/O端口的控制命令的一组控制线。
8.1.2 系统扩展的实现 P2口全部8位口线,作为地址总线的高8位地址线A8~A15。P0口做为地址/数据总线,提供地址总线的低8位地址线A0~A7。因为P0口线既做地址线,又做数据线,因此需加一个8位锁存器,锁存地址信息。如图8-3所示: 1. 地址总线
图8-3 89C51地址总线扩展电路 30 +5v ALE P0.7 P0.6 89C51 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 11 20 1 G Vcc 8D 8Q7D 7Q6D 6Q5D 5Q4D 4Q3D 3Q2D 2Q1D 1Q OE GND 32 18 19 A7 33 17 16 A6 34 14 15 A5 35 13 12 A4 36 8 9 A3 74LS373 37 7 6 A2 38 4 5 A1 39 3 2 A0 10
用74LS373做地址锁存器。把89C51P0口8条口线与74LS373的输入端相连,输出端作为地址总线的低8位地址线A0~A7;G与ALE相连,利用ALE的负跳变将输入端上的8位有效地址信号锁存到地址锁存器中;OE接地,保证地址信息一旦锁入锁存器,立即可出现在输出端口上。用74LS373做地址锁存器。把89C51P0口8条口线与74LS373的输入端相连,输出端作为地址总线的低8位地址线A0~A7;G与ALE相连,利用ALE的负跳变将输入端上的8位有效地址信号锁存到地址锁存器中;OE接地,保证地址信息一旦锁入锁存器,立即可出现在输出端口上。 由P0、P2口形成16位地址总线。在实际应用系统中,高位地址线并不固定为8位,需要几位就从P2口中引出几条口线。
2、数据总线: 由P0口8位口线形成D0~D7。 3. 控制总线: 由单片机自身产生。有的是引脚的第一功能信号,有的是第二功能信号。其中包括:PSEN、ALE、EA、WR、RD。 通过系统总线,按要求形成不同类型的单片机系统。
8.2 扩展程序存储器 8.2.1 访问外部程序存储器的操作时序 一. 扩展外部程序存储器所用到的引线: 1. 地址线:P0口(低8位地址);P2口(高8位地 址),根据扩展数量适当选用。 2. 数据线:P0口 3. 控制线:EA,PSEN,ALE
ALE PSEN RD P2 PCH输入 PCH输入 PCH输入 PCH输入 PCH输入 PCH输入 指令 输入 pcl 输出 指令 输入 pcl 输出 指令 输入 pcl 输出 指令 输入 pcl 输出 指令 输入 pcl 输出 P0 PCL输出有效 PCL输出有效 (a) 二、外部程序存储器的操作时序:1. 应用系统中无片外RAM: 第一个机器周期 第二个机器周期 S1 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S2
第一个机器周期 第二个机器周期 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 ALE PSEN RD P2 PCH输入 PCH输入 DPH或P2输入 PCH输入 PCH输入 指令 输入 pcl 输出 指令 输入 地址 输出 数据输出 数据 输入 pcl 输出 指令 输入 pcl 输出 P0 (b) 图8-4 89C51访问片外ROM操作时序图 2. 应用系统中接有片外RAM
8.2.2 常用程序存储器的扩展芯片 一、2764芯片: 2764A是一种8K×8位的紫外线擦除可编 程只读存储器(EPROM)。它为28脚双列直插式封装,其管脚配置如图8-5所示,工作方式如表8-1所示。
A0~A12 地址线 D0~D7 数据输出线 CE 片选线 OE 数据输出选通线 PGM 编程脉冲输入 Vpp 编程电源 图8-5 2764A 管脚配置 Vpp Vcc 1 28 A12 2 27 PGM A7 3 26 NC A6 4 25 A8 A5 5 24 A9 A4 6 23 A11 A3 7 22 OE A2 8 21 A10 A1 9 20 CE A0 10 19 D7 D0 11 18 D6 D1 12 17 D5 D2 13 16 D4 GND 14 15 D3
CE (20) OE (21) PGM (27) Vpp/V (1) Vcc/V (28) 输出(11~13,(15~19) 引脚 方式 读 VIL VIL VIH 5 5 DOUT VIH 任意 任意 5 5 维持 高阻 VIL VIH VIL 12.5 5 DIN 编程 VIL VIL VIH 12.5 5 DOUT 编程检验 VIH 12.5 5 编程禁止 任意 任意 高阻 表8-1 2764工作方式选择
E 1 20 Vcc Q0 2 19 Q7 D0 3 18 D7 D1 4 17 D6 Q1 5 74LS373 16 Q6 Q2 6 15 Q5 Q3 7 14 Q5 D2 8 13 D4 D3 9 12 Q4 GND 10 11 G 二、74LS373芯片 74LS373是带三态门的8D锁存器,为20脚双列直插式封装,其管脚安排如图8-6所示: Q0~Q7 输出端 D0~D7 输入端 G 时钟(选通)信号输入端 E 输出允许信号端 图8-6 74LS373芯片引脚图
8.2.3 程序存储器(EPROM)扩展 一、扩展8KB EPROM 看图8-7 扩展8KB(16KB )EPROM连接图。 二、扩展16KB EPROM
+5v 40 20 Vcc Vss 19 +5v 1 20 +5v XTAL1 P1.0 14 28 1 2 10 20 3 GND VccVpp Vcc GND CE 4 XTAL2 2 3 18 5 D0 Q0 A7 A13 26 6 5 4 D1 Q1 2 A6 A12 7 89C51 6 5 23 +5v D2 Q2 A5 A11 8 RST P1.7 9 6 D3 Q3 21 A4 A10 74LS373 12 7 D4 Q4 24 A3 A9 15 8 D5 Q5 25 31 A2 A8 21 16 9 EA P2.0 D6 Q6 A1 D7 Q7 19 10 A0 G OE 10 2764 / 27128 P3.0(RXD) 28 11 P2.7 11 P3.1(TXD) 12 P3.2(INT0) 13 O0 39 11 P3.3(INT1) P0.0 12 O1 14 P3.4(T0) 13 O2 15 P3.5(T1) 15 O3 16 16 O4 P3.6(WR) 17 17 O5 18 P3.7(RD) 19 O6 P0.7 32 O7 OE ALE PSEN 30 29
8.3 扩展数据存储器8.3.1 外部数据存储器的操作时序 一. 扩展外部数据存储器所用的引线: 1. 地址线:P0口(低8位地址),P2口(高8 位地址)。 2. 数据线:P0口 3. 控制线:ALE,RD,WR。
二、外部数据存储器的操作时序 1. 读片外RAM操作时序 2. 写片外RAM操作时序
S1 S2 S3 S4 S5 S6 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 2 1 ALEPSENRDP2 P0 5 7 3 地址A15~A8 6 8 3 4 指令输入浮空 A7~A0浮空 数据输入 悬空 地址或浮空 (a)片外数据存储器读时序
S1 S2 S3 S4 S5 S6 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 1 ALEPSENWRP2 P0 6 5 2 地址A15~A8 2 3 4 指令输入浮空 A7~A0 数据输出 地址浮空 (b)片外数据存储器写时序 图8-8 89C51访问片外RAM操作时序
VccA8A9WEOEA10CEO7O6O5O4O3 1 24 A7A6A5A4A3A2A1A0O0O1O2 6116 GND 12 13 图8-9 6116芯片引脚图 8.3.2 常用数据存储器的扩展芯片 一、6116 6116是2K×8位的读写存储器芯片,它为24脚双列直插式封装,其管脚配置如图8-9所示,工作方式如表8-2所示。
表8-2 6116,6264,62256的操作控制 信号 方式 CE OE WE O0~O7 读 VIL VIL VIH 数据输出 写 VIL VIH VIL 数据输入 维持* VIH 任意 任意 高阻态 *对于CMOS的静态RAM电路,CE为高电平时,电路处于降耗状态。此时,Vcc电压可降至3V左右,内部所存储的数据也不会丢失。
二、E2PRM E2 PROM是电擦除可编程只读存储器,其突出的优点是能够在线擦除和改写。其次,在芯片引脚的设计上,与同容量的EPROM、静态RAM兼容。因此E2PROM既具有ROM的非易失性的优点,又能象RAM一样随机读写,每个单元可重复进 行1万次改写,保留信息时间长达20年。 E2PROM在单片机系统中,既可以扩展为片外EPROM,也可扩展为片外的RAM。
以2864A为例进行介绍。 2864A为8K×8位的E2PROM,引脚如图 8-10所示。 1. 引脚功能:图8-10 2. 工作方式 :表8-3
RDY/BUSY 1 28 Vcc A12 2 27 WE A7 3 26 NC A6 4 25 A8 A5 5 24 A9 A4 6 23 A11 A3 7 22 OE A2 8 21 A10 A1 9 20 CE A0 10 19 I/O7 I/O0 11 18 I/O6 I/O1 12 17 I/O5 I/O2 13 16 I/O4 GND 14 15 I/O3 图8-10 E PROM 2864A引脚图 2
表8-3 2864A工作方式选择 引脚工作方式 CE OE WE RDY/ BUSY I/O0~I/O7 待机 VIH X X 高阻态 读 VIL VIL VIH DOUT 写 VIL VIH 负脉冲 DIN DATA查询 VIL VIL VIH DOUT
三、8282 芯片 是一种带三态输出缓冲器的8位双向锁存器。为20脚双列直插式封装。引脚安排如图8-11所示。
12345678910 20191817161514131211 VccDO0DO1DO2DO3DO4DO5DO6DO7STB DI0DI1DI2DI3DI4DI5DI6DI7OE 8282 GND DI0~DI7 数据输入端 DO0~DO7 数据输出端 STB 选通输入端 OE 输出允许信号 图8-11 8282芯片引脚图
8.3.3 数据存储器的扩展 一、89C51扩展2KB RAM 看图8-12 89C51扩展2KBRAM。
+5v 40 20 Vcc Vss 19 +5v 1 +5v XTAL1 P1.0 18 10 24 12 2 20 3 Vcc GND VccVss XTAL2 4 CE 19 19 1 18 D0 Q0 A7 A10 5 18 2 22 D1 Q1 6 A6 A9 89C51 17 3 7 D2 Q2 A5 A8 23 + 9 +5v 8 D3 Q3 16 4 RST P1.7 A4 8282 15 5 D4 Q4 A3 D5 Q5 14 6 A2 31 P2.0 21 D6 Q6 13 7 A1 EA 22 D7 Q7 12 8 23 A0 24 OE 25 STB 10 26 P3.0(RXD) 6116 9 27 11 11 P2.7 28 P3.1(TXD) 12 P3.2(INT0) 13 9 P3.3(INT1) 39 P0.0 I/O0 14 38 10 P3.4(T0) 37 11 15 36 13 P3.5(T1) 16 35 14 P3.6(WR) 34 15 17 33 16 P3.7(RD) 32 17 I/O7 P0.7 OE WE ALE PSEN 20 30 20 21 29 图 8-12
二、89C51 扩展8KB E2PROM 1. 扩展线路 : 看图8-13 89C51外扩2864A系统。
ADBUS U274LS373 U32864A U189C51 ABUS 12345678 3938373635343332 AD0AD1AD2AD3AD4AD5AD6AD7 347813141718111 256912151619 MA0MA1MA2MA3MA4MA5MA6MA7 109876543 1112131516171819 AD0AD1AD2AD3AD4AD5AD6AD7 P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7 P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7 D0D1D2D3D4D5D6D7OEG Q0Q1Q2Q3Q4Q5Q6Q7 A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEWE D0D1D2D3D4D5D6D7 C130pF 252421232202227 MA8MA9MA10MA11MA12MA15 C230pF XTAL 13121514 212223242526272810113029 MA8MA9MA10MA11MA12MA13MA14MA15 P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7 INT1INT0T1T0EA/VppXTAL1XTAL2RESTRDWR Vcc 1918 RXDTXDALEPSEN SW1 91716 U4:A74LS08 R2 1KΩ 12 3 图8-13
2. 程序:写16字节E2 PROM 2864A的子程 序: 入口参数:R1 = 写入的字节数(10H) R0 = E2 PROM的地址(低位) P2 = E2 PROM的地址(高位) DPTR = 源数据区首址
WR1:MOVX A,@DPTR ; 取数据 MOV R4, A ; 暂存,备查询 MOVX @R0, A ; 写入2864A INC DPTR INC R0 CJNE R0, #00, NEXT ; 低地址指针未满,转移 INC P2 ; 否则,高位指针加1
NEXT: DJNZ R1, WR1 ;字节数未满,转移 DEC R0 CHECK: MOVX A, @R0 XRL A, R4 JB Acc.7, CHECK ; 最高位不同,再查 RET ; 最高位相同,一页写完
8.4 扩展8255A可编程外围并行 接口芯片 8.4.1 8255A芯片结构
PA3 1 40 PA4 PA2 2 39 PA5 PA1 3 38 PA6 PA0 4 37 PA7 RD 5 36 WR CS 6 35 RESET GND 7 34 D0 A1 8 33 D1 A0 9 32 D2 8255A PC7 10 31 D3 PC6 11 30 D4 PC5 12 29 D5 PC4 13 28 D6 PC0 14 27 D7 PC1 15 26 VCC PC2 16 25 PB7 PC3 17 24 PB6 PB0 18 23 PB5 PB1 19 22 PB4 PB2 20 21 PB3 图8-14 8255A的引脚
PA7~PA0 A口 A组 控制 C口上 PC7~PC4 D0~D7 总线 缓冲 C口下 PC3~PC0 B组 控制 RD WR A1 A0 RESET CS 读写 控制 PB7~PB0 B口 图8-15 8255A的内部结构
8255有四个逻辑结构组成: 1. 数据总线缓冲器: 是双向的三态缓冲器,和单片机总线相连,实现单片机与8255A的数据传送。 2. 并行I/O端口 A口:具有一个8位数据输出锁存/缓冲器和一 个8位数据输入锁存器。可编程为8位输 入输出或双向寄存器。
B口:具有一个8位数据输出锁存/缓冲器和一 个8位数据输入缓冲器。可编程作为8位输 入或输出寄存器。 C口:具有一个8位数据输出锁存/缓冲器和一 个8位数据输入缓冲器。在方式控制下, 该口可分为两个四位口使用。
3. A组,B组控制块: A组控制块控制A口和C口的高四位;B组控制块控制B口和C口的低四位。 4. 读/写控制逻辑: 用与所有的数据、控制字或状态字的传送,它接收单片机的地址线和控制信号来控制各个口的工作状态。 控制信号的组合实现对8255A的4个口的寻址和工作状态看表8-4.
功能 A1 A0 RD WR CS 输入操作(读) 端口A数据总线 端口B数据总线 端口C数据总线 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 • 0 0 • 1 0 0 • 0 0 • 1 0 0 输出操作(写) 数据总线端口A 数据总线端口B 数据总线端口C 数据总线控制寄存器 断开功能 数据总线为三态(高阻) 非法状态 数据总线为三态 X X 1 1 X X X X 1 0 1 0 1 1 0 表8-4 8255A的工作状态选择
8.4.2 8255A的控制字 一、方式选择控制字: 格式如下: 见图8-16,8255A的方式选择控制字:
D7 D6 D5 D4 D3 D2 D1 D0 端口 C 1= 输入 (低四位 ) 0= 输出 端口 B 1= 输入 0= 输出 置 方 式 标 志 1 有 效 B组方式选择 0= 方式0 1= 方式1 端口 C 1= 输入 (高四位 ) 0= 输出 端口 A 1= 输入 0= 输出 A组方式选择 0 0= 方式0 0 1= 方式1 1 0= 方式2 图8-16 8255A方式控制字
二、控制字 C口具有位操作功能,用置位/复位控制字 能将C口的指定位置1或清0。 格式如下: 图8-17 8255A的置位复位控制字: