Transcript Document

第6章
MCS-51单片机系统扩展
6.1 MCS-51单片机的最小系统
6.2 存储器扩展
6.3 输入/输出口扩展
MCS-51单片机系统扩展包括:
1、程序存储器扩展;
2、数据存储器扩展;
3、I/O口扩展;
4、定时/计数器扩展;
5、中断系统扩展;
6、串行口扩展。
在本章中只介绍应用较多的程序存储
器扩展、数据存储器扩展和I/O口扩展。
6.1 MCS-51单片机的最小系统
所谓最小系统,是指一个真正可用的单
片机最小配置系统。对于单片机内部资源已
能满足系统需要的,可直接采用最小系统。
MCS-51单片机根据片内有无程序存储器最
小系统分两种情况。
6.1.1 8051/8751的最小系统
8051/8751片内分别有4KB的ROM/EPROM,因此,只需
要外接晶体振荡器和复位电路就可构成最小系统。
P0
8
P1
8
P2
8
GNDP3
8
XTAL1
8751
8051
XTAL2
RESET
EA
+5V
+5V
该最小系统的特点如下:
(1)由于片外没有扩展存储器和
外设,P0、P1、P2、P3都可以作
为用户I/O口使用。
(2)片内数据存储器有128字节,
地址空间00H~7FH,没有片外数
据存储器。
(3)内部有4KB程序存储器,地
址空间0000H~0FFFH,没有片外
程序存储器,EA应接高电平。
(4)可以使用两个定时/计数器T0
和T1,一个全双工的串行通信接
口,5个中断源。
6.1.1 8031最小应用系统
8031片内无程序存储器片,
因此,在构成最小应用系统不仅
要外接晶体振荡器和复位电路,
还应外扩展程序存储器。
高8位地址线
A15-8
P2
ALE
G
74LS
373
8031
A7-0
CE
2764
P0
EA PSEN
D7-0
OE
该最小系统特点如下:
(1)由于P0、P2在扩展程序存储
器时作为地址线和数据线,不能作
为I/O线,因此,只有P1、P3作为
用户I/O口使用。
(2)片内数据存储器同样有128
字节,地址空间00H~7FH,没有
片外数据存储器。
(3)内部有无程序存储器,但片
外扩展了程序存储器,其地址空间
随芯片容量不同而不一样。左图中
使用的是2764芯片,容量为8K字
节,地址空间为0000H~1FFFH。
由于片内没有程序存储器,只能使
用片外程序存储器,EA只能接低
电平。
(4)同样可以使用两个定时/计数
器T0和T1,一个全双工的串行通
信接口,5个中断源。
6.2 存储器扩展
6.2.1 存储器扩展概述
一、MCS-51单片机的存储器扩展能力
MCS-51单片机地址总线宽度为16位,片
外可扩展的存储器最大容量为64KB,地址为
0000H~FFFFH。因为程序存储器和数据存储
器是通过不同的控制信号和指令进行访问,允
许两者的地址空间重叠,所以片外可扩展的程
序存储器与数据存储器分别都为64KB。
存储器扩展:
1、扩充存储器字长:
2、扩充存储器容量:
二、存储器扩展的一般方法
不论何种存储器芯片,其引脚都呈三总线结构,与单片机
连接都是三总线对接。另外,电源线接电源线,地线接地线。
1、控制线:对于程序存储器,一般来说,具有输出允许控制
线 /OE,它与单片机的/PSEN信号线相连。对于数据存储器,
一般都有输出允许控制线/OE和写控制线 /WE,它们分别与
单片机的读信号线/RD和写信号线/WR相连。
2、数据线:存储器芯片的数据线的数目由芯片的字长决定。
连接时,存储器芯片的数据线与单片机的数据总线
(P0.0~P0.7)按由低位到高位的顺序顺次相接。
3、地址线:存储器芯片的地址线的数目由芯片的容量决定。
容量(Q)与地址线数目(N)满足关系式:Q=2N。存储器芯片的
地址线与单片机的地址总线(A0~A15)按由低位到高位的顺序
顺次相接。一般来说,存储器芯片的地址线数目总是少于单
片机地址总线的数目,因此连接后,单片机的高位地址线总
有剩余。剩余地址线一般作为译码线,译码输出与存储器芯
片的片选信号线/CS相接。片选信号线与单片机系统的译码
输出相接后,就决定了存储器芯片的地址范围。
总线扩展驱动:
当单片机外接芯片较多,超出总线负载能力,
必须加总线驱动器。
•单向驱动器
74LS244、
74LS245用于
地址总线驱动;
•双向驱动器
74LS255用于
数据总线驱动。
存储器编址分两个层次:
1、存储芯片的选择(译码);
2、芯片内部存储单元的选择(地址线)。
译码有两种方法:部分译码法和全译码法。
部分译码:所谓部分译码就是存储器芯片的地址线
与单片机系统的地址线顺次相接后,剩余的高位地址线
仅用一部分参加译码。部分译码使存储器芯片的地址空
间有重叠,造成系统存储器空间的浪费。
部分译码法的一个特例是线译码。所谓线译码就
是直接用一根剩余的高位地址线与一块存储器芯片的片
选信号/CS相连。
全译码:所谓全译码就是存储器芯片的地址线与单
片机系统的地址线顺次相接后,剩余的高位地址线全部
参加译码。这种译码方法存储器芯片的地址空间是唯一
确定的,但译码电路相对复杂。
如下图,存储器芯片容量为2KB,地址线为11根,
与地址总线的低11位A0~A10相连,用于选中芯片内的单
元。地址总线的A11、A12、A13、A14四根地址线参加
译码的选中芯片,设这四根地址总线的状态为0100时选
中该芯片。地址总线A15不参加译码,当地址总线A15为
0、1两种状态都可以选中该存储器芯片。
地址译码线
与存储器芯片连接的地址线
A15 A14 A13 A12 A11 A10 A9

0
0
1
0


A8
A7
A6
A5
A4
A3
A2
A1
A0









当A15=0时,芯片占用的地址是
0001000000000000~0001011111111111,
即1000H~17FFH。
当A15=1时,芯片占用的地址是
1001000000000000~1001011111111111,
即9000H~97FFH。
例:用2K×1位存储芯片组成2K×8位存储系统。
当地址、片选和读写信号有效,可并行存取8位信息;共用片选。
例:用2K×8位存储器芯片组成2K×16位存储器系统。
D0~7
D8~15
D0~7
R/W
CE
A0~10
共用片选
R/W
CE
A0~10
D0~7
R/W
CE
A0~10
地址、片选和读写引线并联后引出,数据线并列引出。
例:用1K×4位存储器芯片组成4K×8位存储器系统。
例:三片8KB的存储器芯片组成 24KB 容量的存储器。
D0~7
设CE1、CE2、CE3
分别连接微型机
R/W
的高位地址总线 CE1 (AB13)
A0~12
AB13、AB14、AB15。
确定各存储器芯
片的地址空间:
ABi:15141312 11109 8 7 6 5 4
CE2
(AB14)
D0~7
R/W Ⅰ
CE
A0~12
D0~7
R/W
Ⅱ
CE
A0~12
D0~7
R/W
CE Ⅲ
A0~12
CE3
(AB15)
3 2 1 0~15141312 11109 8
7 6 5 4 3 2 1 0
Ⅰ:1100 0000 0000 0000~1101 1111 1111 1111=C000H~DFFFH
Ⅱ:1010 0000 0000 0000~1011 1111 1111 1111=A000H~BFFFH
Ⅲ:0110 0000 0000 0000~0111 1111 1111 1111=6000H~7FFFH
3.扩展存储器所需芯片数目的确定
存储器扩展:
一、扩充存储器字长;
二、扩充存储器容量。
若所选存储器芯片字长与单片机字长一致,则只需
扩展容量。所需芯片数目按下式确定:
芯片数目 =
系统扩展容量
存储器芯片容量
若所选存储器芯片字长与单片机字长不一致,则不仅
需扩展容量,还需字扩展。所需芯片数目按下式确定:
芯片数目 =
系统扩展容量
存储器芯片容量
×
系统字长
存储器芯片字长
6.2.2 程序存储器扩展
工作时,ROM中的信息只能读出,要用特殊方式写入(固化信息),
失电后可保持信息不丢失。
1.掩膜ROM:不可改写ROM
由生产芯片的厂家固化信息。在最后一道工序用掩膜工艺写入信息,
用户只可读(如80C51)。
2.PROM:可编程ROM
用户可进行一次编程。存储单元电路由熔丝相连,当加入写脉冲,
某些存储单元熔丝熔断,信息永久写入,不可再次改写。
3.EPROM:可擦除PROM
用户可以多次编程。编程加写脉冲后,某些存储单元的PN结表面形
成浮动栅,阻挡通路,实现信息写入。用紫外线照射可驱散浮动栅,
原有信息全部擦除,便可再次改写(如87C51)。
4.EEPROM:可电擦除PROM
既可全片擦除也可字节擦除,可在线擦除信息,又能失电保存信息,
具备RAM、ROM的优点。但写入时间较长(如8951)。
扩展程序存储器电路常用EPROM芯片:
常用EPROM芯片:
Intel 2716 (2KB=2K×8位)、
2732 (4KB)、
2764 (8KB)、
27128(16KB)、
27256(32KB)、
27512(64KB)。
一.单片程
序存储器的
扩展
+5V Vcc
8031
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
ALE
EA
Vss
PSEN
其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。
8D
7D
6D
5D 74LS
4D
3D 373
2D
1D
G OE
8Q
7Q
6Q
5Q
4Q
3Q
2Q
1Q
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
OE
Vff
Vcc
2764
CE
GND
+5V
单片机程序存储器扩展连接图
最低地址:8000H;
最高地址:87FFH。
地址范围:8000H~87FFH。
二.多片程序存储器的扩展
P2.7
P2.6
P2.5
P2.4~P2.0
ALE
5
8
8031
74LS
373
OE
EA
P0
G
8
8
5
A0~A7 A8~A12 CE
2764(1)
D0~D7
OE
8
8
5
A0~A7 A8~A12 CE
2764(2)
D0~D7
OE
8
PSEN
上图是通过线选法实现的两片2764扩展成16KB程序存储器。两片2764
的地址线A0~A12与地址总线的A0~A12对应相连,2764的数据线D0~D7与
数据总线A0~A7对应相连,两片2764的输出允许控制线连在一起与8031的
/PSEN相连。第一片2764的片选线/CS与8031地址总线的P2.7直接相连,
第二片2764的片选线/CS与8031地址总线的P2.7取反后相连。
其两片的地址空间分别为:
第一片:00000000000000000~0001111111111111,即0000H~1FFFH;
2764(1): 00100000000000000~0011111111111111,即2000H~3FFFH;
01000000000000000~0101111111111111,即4000H~5FFFH;
01100000000000000~0111111111111111,即6000H~7FFFH;
第二片:10000000000000000~1001111111111111,即8000H~9FFFH;
2764(2): 10100000000000000~1011111111111111,即A000H~BFFFH;
11000000000000000~1101111111111111,即C000H~DFFFH;
11100000000000000~1111111111111111,即E000H~FFFFH。
Vcc
G1 G
74LS138
G2A
G2B Y3
Y2
C Y1
B
A Y0
P2.7
P2.6
P2.5
P2.4~P2.0
ALE
G74LS
373
8
OE
8031
EA
P0
PSEN
8
5
8
A0~A7
CE
A8~A12
2764(1)
D0~D7
OE
8
8
8
5
8
5
5
A0~A7
A0~A7
CE
CE A0~A7
A8~A12CE
A8~A12
A8~A12
2764(4)
2764(2)
2764(3)
OE D0~D7
OE
D0~D7
OE D0~D7
8
8
8
上图为采用全译码法实现的4片2764扩展成32KB程序存储器。
8031剩余的高3位地址总线P2.7、P2.6、P2.5通过74LS138译码器形
成4个2764的片选信号。
由于采用全译码,每片2764的地址空间都是唯一的。它们分别是:
2764(1): 00000000000000000~0001111111111111,即0000H~1FFFH;
2764(2): 00100000000000000~0011111111111111,即2000H~3FFFH;
2764(3): 01000000000000000~0101111111111111,即4000H~5FFFH;
2764(4): 01100000000000000~0111111111111111,即6000H~7FFFH。
6.2.3 数据存储器扩展
数据存储器扩展与程序存储器扩展
基本相同,只是数据存储器控制信号一
般有输出允许信号/OE和写控制信号/WE,
分别与单片机的片外数据存储器的读控
制信号/RD和写控制信号/WR相连,其
它信号线的连接与程序存储器完全相同。
扩展数据存储器电路常用RAM芯片:
常用RAM芯片:
Intel 6116(2KB)、
6264(8KB)、
62256(32KB)等。
8031(8051)扩展单片2KB RAM Intel 6116
扩展单片6116数据存储器
下图是两片数据存储器芯片6264与8051单片机的连接。6264是
8K8的静态数据存储器芯片,有13根地址线,数据线8根,一根输出
允许信号/OE和一根写控制信号/WE ,两根片选信号/CE1和/CE2 ,
使用时都应为低电平。
P2.7
P2.6
P2.5
P2.4~P2.0
ALE
5
8
OE
8051
EA
G 74LS
373
P0
RD
WR
8
8
5
A0~A7 A8~A12CE1
6264(1) CE2
D0~D7 WE
OE
8
8
5
A0~A7 A8~A12 CE1
6264(2) CE2
D0~D7 WE
OE
8
P2.7为低电平0,两片6264芯片的地址空间为:
第一片:01000000000000000~0101111111111111,即4000H~5FFFH;
第二片:00100000000000000~0011111111111111,即2000H~3FFFH;
P2.7为高电平1,两片6264芯片的地址空间为:
第一片:11000000000000000~1101111111111111,即C000H~DFFFH;
第二片:10100000000000000~1011111111111111,即A000H~BFFFH;
存储器综合扩展:
数据存储器和程序存储器的综合扩展。
1、同时扩展数据存储器和程序存储器:
程序存储器的读操作有PSEN信号控制,
数据存储器的读和写分别由RD和WR信号控制。
不会造成操作上的混乱。
2、通过扩展可读写存储器:
(1)利用EEPROM芯片扩展;(速度较慢)
如:可扩展2816或2817等。
(2)改造RAM存储芯片。
如:可改造6116等。
同时扩展程序存储器和数据存储器
单片机连接 8KB EPROM 2764 和 8KB RAM 6264 各一片。
同时扩展两种存储器
扩展既可读又可写的程序存储器
EEPROM 既能作为程序存储器又能作数据存储器。
将程序存储器与数据存储器的空间合二为一。
片外存储器读信号= PSEN · RD
与门
MCS-51存储器结构和地址空间
60KB
128B
128B
64KB
4KB
4KB
128B
存储空间的区分:
内 部
外 部
数据
存储器
MOV指令
MOVX指令
RD、WR选通
程序
存储器
MOVC指令
EA=1
MOVC指令
PSEN选通
EA=0
内外程序存储器的衔接:
8051(4KB)
8031
60KB(1000H-FFFFH)
6.3 输入/输出口扩展
需要编址的子系统:存储器和接口电路。
一、存储器地址方式:统一编址
I/O接口共用存储器的地址空间,每个I/O端口视为一个存
储单元。
二、专用I/O地址方式:独立编址
有专用I/O控制信号和I/O指令。I/O接口独立编址,不占用
存储器的地址空间。如:Z80。
MCS-51、96为存储器地址方式(统一编址)。
MCS-51单片机有片内I/O接口和扩展I/O接口。
片内I/O接口寄存器在SFR中,使用片内数据存储器空间;
扩展I/O接口使用片外数据存储器地址空间:
输出指令:
输入指令:
片内寻址:MOV P1,A
MOV A,P1
片外寻址:MOVX @DPTR,A
MOVX A,@DPTR
MOVX @R0,A
MOVX A,@R0
I/O控制方式:
一、无条件传送(同步程序传送)方式
已知I/O设备准备就绪,可直接进行数据传送。
适用:1、具有常驻的或变化缓慢的数据信号
的设备。
如:指示灯、数码管等;
2、工作速度快,足以和单片机同步工作
的设备。
如:DAC等。
二、查询方式
(有条件传送方式)
DB
D6
AB
先查询I/O设备当前状态,
若准备就绪,则交换数据,
否则循环查询状态。
微型机
1.硬件查询电路
AB
设置状态锁存和数据锁存电路。
数据
端口
外部
设备
状态
端口
I/O接口
2.软件查询程序
先输入状态,决定是否进行数据传送。
INPUT:MOV
WAIT:MOVX
JB
MOV
MOVX
DPTR,#SATUS
A,@DPTR
ACC.6,WAIT
DPTR,#DATA
A,@DPTR
;状态口地址
查询状态
准备就绪?
;数据口地址
查询方式只适用:
单道作业、规模比较小的单片机系统。
Y
输入/ 输出数据
N
三、中断方式(程序中断方式)
大多数时间计算机与外设并行工作,计算机不
必因等待而浪费资源。当外设准备就绪,向CPU
发出中断请求信号。CPU暂停当前程序,执行I/O
操作。当I/O操作结束,CPU仍继续被中断的工作。
四、直接存储器访问方式
(DMA—Direct Memory Access)
用于计算机与高速外设进行大批量数据交换,
由DMA控制器接管总线控制权,RAM与外设之间
直接数据传输,不需CPU的介入。
6.3.1 简单I/O口扩展
通常通过数据缓冲器、锁存器来扩展简单I/O接口。例
如:74LS373、74LS244、74LS273、74LS245等芯片都
可以作简单I/O扩展。实际上,只要具有输入三态、输出锁
存的电路,就可以用作I/O口扩展。
下图是利用74LS373和74LS244扩展的简单I/O口,其
中74LS373扩展并行输出口,74LS244扩展并行输入口。
74LS373是一个带输出三态门的8位锁存器,8个输入端
D0~D7,8个输出端Q0~Q7,G为数据锁存控制端,G为高
电平,则把输入端的数据锁存于内部的锁存器,/OE为输出
允许端,低电平时把锁存器中的内容通过输出端输出。
74LS244是单向数据缓冲器,带两个控制端1G和2G ,当
它们为低电平时,输入端D0~D7的数据输出到Q0~Q7。
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
锁存器 OE
D0
D1
D2 74LS
D3
D4 373
D5
D6
D7
G
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
L0
L1
L2
L3
L4
L5
L6
L7
8051
+
WR
P2.0
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
RD
+
1G
2G
74LS
244
D0
D1
D2
D3
D4
D5
D6
D7
缓冲器
K0
K1
K2
K3
K4
K5
K6
K7
+5V
图中,扩展的输入口接了K0~K7 8个开关,扩
展的输出口接了L0~L7 8个发光二极管,如果要实
现K0~K7开关的状态通过L0~L7发光二极管显示,
则相应的汇编程序为:
LOOP:MOV DPTR,#0FEFFH
MOVX A,@DPTR
MOVX @DPTR,A
SJMP LOOP
如果用C语言编程,相应程序段为:
#include <absacc.h>
//定义绝对地址访问
#define uchar unsigned char
……
uchar i;
i=XBYTE[0xfeff];
XBYTE[0xfeff]=i;
……
6.3.2 可编程I/O扩展(8255A)
一、8255A(可编程通用并行接口芯片)的结构与功能
二、结构:
1、 3个8位并行I/O接口PA、PB和PC:
包含I/O数据锁存器,控制寄存器和状态寄存器。
2、 2组控制:A组:PA和PC0~3;
B组:PB和PC4~7:
三、工作方式:
1、方式0(基本I/O方式):
A口、B口、C口均为数据I/O。输出锁存,输入三态,
不用联络信号。
适用于无条件或查询方式的数据传送。
2、方式1(选通I/O方式):
A口和B口用于数据I/O,输入/输出均锁存, C口用于传
送联络信号,读C口可了解外设当前状态。
适用于查询或中断方式的数据I/O。
3、方式2(双向数据传送方式):
A口为数据I/O,B口只能为方式0,C口用作A口双向传
送的联络信号线。
适用于查询或中断方式的数据I/O。
/CS
A1
A0
/RD
/WR
I/O操作
0
0
0
0
1
读A口寄存器内容到数据总线
0
0
1
0
1
读B口寄存器内容到数据总线
0
1
0
0
1
读C口寄存器内容到数据总线
0
0
0
1
0
数据总线上内容写到A口寄存器
0
0
1
1
0
数据总线上内容写到B口寄存器
0
1
0
1
0
数据总线上内容写到C口寄存器
0
1
1
1
0
数据总线上内容写到控制口寄存器
四、8255A的引脚信号
1.数据线:
D0~7:传送计算机与8255之间的数据、控制字和状态字。
PA0~7 PB 0~7 PC0~7:传送8255与外设之间的数据和联络
信息,PC0~7可用作数据线或联络线。
2.地址线:
CS:片选线
A1、A0:口选线,寻址 PA、
PB、PC数据口和控制口。
3.读写控制线:
RD、WR控制计算机与8255之
间的信息传送和流向。
4.复位线:
RESET高电平复位,使内部寄
存器全部清零。
40脚
例题:
例:求8255的口地址:
解:A口 (7F00H);
B口 (7F01H);
C口 (7F02H);
控制口(7F03H)。
ABi:
15
A口:
0
B口:
0
C口:
0
控制口:0
14
1
1
1
1
13
1
1
1
1
12
1
1
1
1
11
1
1
1
1
P0
37
3
P2.7
Q1
A0
A1
CS
8255
80C51
10 9 8 7 6 5 4 3 2
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
Q0
10
00
01
10
11
7F00H
7F01H
7F02H
7F03H
五、8255A的控制字
8255A有两个控制字:工作方式控制字和C口按位置位/复位控制字。
方式选择控制字:D7=1
C口置位/复位控制字:D7=0
控制字
方式
置/复位
D7
1
0
D6 D5
A 组方式
D4
PA
D3
D2
PC4~7 方式
位选择
1、C口按位置位/复位控制字
0
D6
D5
D4
D3
D2
D1
特征位0
这三位不用
位选择位
000:C口0位
001:C口1位
……
111:C口7位
D0
0:复位
1:置位
D7位为特征位。D7=0表示为C口按位置位/复位控制字。
D6、D5、D4这三位不用
D3、D2、D1这三位用于选择C口当中的某一位。
D0用于置位/复位设置,D0=0则复位,D0=1则置位。
D1
PB
D0
PC0~3
1/0
2、方式选择控制字:
8255A方式选择注意:
有三种基本工作方式:
方式0——基本的输入输出方式
方式1——选通的输入输出方式
方式2——双向传输方式
只有端口A能工作在方式2;
同一组的两端口可分别工作在输入和输出方式。
六、8255A的工作方式
1.方式0
方式0是一种基本的输入/输出方式。在这种方式下,三个端口都可
以由程序设置为输入或输出,没有固定的应答信号。方式0特点如下:
(1)具有两个8位端口(A、B)和两个4位端口(C口的高4位和C口
的低4位)。
(2)任何一个端口都可以设定为输入或者输出。
(3)每一个端口输出时是锁存的,输入是不锁存的。
+5V
K0
系统总线
8051
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
8255A
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
L0
L7
K7
+5V
方式0输入/输出
时没有专门的应答
信号,通常用于无
条件传送。例如:
左图是8255A工作
于方式0的例子,其
中A口输入,B口输
出。
2.方式1
方式1是一种选通输入/输出方式。在这种工作方式下,端口A
和B作为数据输入/输出口,端口C用作输入/输出的应答信号。A口
和B口既可以作输入,也可作输出,输入和输出都具有锁存能力。
方式1输入:
无论是A口输入还是B口输入,都用C口的三位作应答信号,一
位作中断允许控制位。
8
INTE
INTE
&
8
PA0~PA7
PB0~PB7
PC4
STBA
PC2
STBB
PC5
IBFA
PC1
IBFB
PC3
INTRA
PC6、PC7
A口输入
2
&
PC0
INTRB
I/O
B口输入
各应答信号含义如下:
/STB:外设送给8255A的“输入选通”信号,低电平有效。
IBF:8255A送给外设的“输入缓冲器满”信号,高电平有效。
INTR:8255A送给CPU的“中断请求”信号,高电平有效。
INTE:8255A内部为控制中断而设置的“中断允许”信号。INTE由
软件通过对PC4(A口)和PC2(B口)的置位/复位来允许或禁止。
方式1输出:
无论是A口输出还是B口输出,也都用C口的三位作应答信号,一
位作中断允许控制位。
8
INTE
INTE
&
8
PA0~PA7
PC7
OBFA
PC6
ACKA
PC3
INTRA
PC4、PC5
2
A口输出
&
PB0~PB7
PC2
ACKB
PC1
OBFB
PC0
INTRB
I/O
B口输出
应答信号含义如下:
/OBF:8255A送给外设的“输出缓冲器满”信号,低电平有效。
/ACK:外设送给8255A的“应答”信号,低电平有效。
INTR:8255A送给CPU的“中断请求”信号,高电平有效。
INTE:8255A内部为控制中断而设置的“中断允许”信号,含
义与输入相同,只是对应C口的位数与输入不同,它是通过对
PC7(A口)和PC2(B口)的置位/复位来允许或禁止。
3.方式2
方式2是一种双向选通输入/输出方式。只适合于
端口A。这种方式能实现外设与8255A的A口双向数
据传送,并且输入和输出都是锁存的。它使用C口的
5位作应答信号,两位作中断允许控制位。
PA0~PA7
PC5
INTE1
PC4
&
INTE2
STBA
PC6
ACKA
PC7
OBFA
&
1
IBFA
PC3
INTRA
七、8255A与MCS-51单片机的接口
1.硬件接口: 8255A与MCS-51单片机的连接包含数据线、地址线、控制线的连接。
WR
WR
RD
RD
P2.0
CS
P0.7
D7
Q7
P0.6
D6
Q6
PA7-PA0
P0.5
D5 74LS Q5
P0.4
D4
Q4
P0.3
D3 373 Q3
P0.2
D2
Q2
A1 PB7-PB0
P0.1
D1
Q1
P0.0
DO G OE Q0
A0
D7
D6
D5 PC7-PC0
D4
8051
D3
D2
D1
D0
ALE
EA
GND
8255
GND
图中,8255A的数据线与8051单片机的数据总线相连,读、写信号线
对应相连,地址线A0、A1与单片机的地址总线的A0和A1相连,片选信号
/CS与8051的P2.0相连。则8255A的A口、B口、C口和控制口的地址分别是:
FEFCH,FEFDH,FEFEH,FEFFH。
2.软件编程
如果设定8255A的A口为方式0输入,B口为
方式0输出,则初始化程序为:
汇编程序段:
MOV A,#90H
MOV DPTR,#0FEFFH
MOVX @DPTR,A
C语言程序段:
#include <reg51.h>
#include <absacc.h>
……
XBYTE[0xfeff]=0x90;
……
//定义绝对地址访问
Take a Rest