http://www.wenyuan.com.cn/webnew/
第 7章 并行扩展技术
(课时,10学时)
http://www.wenyuan.com.cn/webnew/
教学目的
了解数据总线、地址总线和控制总线的构成。
掌握片外扩展程序存储器和数据存储器的方法。
掌握扩展 I/O的方法和可编程芯片 8255及 8155的应用。
学习重点和难点
控制总线的构成方法和扩展存储单元地址的分析方法。
8255A与 8155的应用。
http://www.wenyuan.com.cn/webnew/
第 7章 并行扩展技术
7.1 并行扩展概述
7.2 程序存储器扩展
7.3 数据存储器扩展
7.4 简单并行 I/O接口扩展
7.5 8255可编程并行接口扩展
7.6 8155可编程并行接口扩展
本章小结
习题
http://www.wenyuan.com.cn/webnew/
7.1 并行扩展概述
7.1.1 总线
7.1.2 扩展总线的实现
http://www.wenyuan.com.cn/webnew/
7.1.1 总线
总线 是单片机应用系统中,各部件之间传输信息的通路,为 CPU和其他部件之间提供数据、地址以及控制信息。
按总线所在位置可分,内部总线 和 外部总线,前者是指 CPU系统内部各部件之间的通路,后者指 CPU
系统和其外围单元之间的通路,通常所说总线是指外部总线。
按通路上传输的信息可分,数据总线 (DB,Data
Bus),地址总线 (AB,Address Bus)和 控制总线 (CB,
Control Bus)。
http://www.wenyuan.com.cn/webnew/
7.1.1 总线
1,数据总线
数据总线 (DB)用于单片机与存储器之间或单片机与 I/O端口之间传输数据。
数据总线的位数 与单片机处理数据的字长一致,如 8051单片机是 8位字长,数据总线的位数也是 8位。
从结构上来说 数据总线是双向的,即数据既可以从单片机送到 I/O端口,也可以从 I/O端口送到单片机。
http://www.wenyuan.com.cn/webnew/
7.1.1 总线
2,地址总线
地址总线 AB用于传送单片机送出的地址信号,以便进行存储单元和 I/O端口的选择。
地址总线的位数 决定了单片机可扩展存储容量的大小。如
8051单片机地址总线为 16位,其最大可扩展存储容量为
216=64K字节。
地址总线是单向的,因地址信息总是由 CPU发出的。
3,控制总线
控制总线用来传输控制信号,其中包括 CPU送往外围单元的控制信号,如 读信号,写信号 和 中断响应信号 等;还包括外围单元发给送给 CPU的信号,如 时钟信号,中断请求信号 以及 准备就绪信号 等。
http://www.wenyuan.com.cn/webnew/
7.1.1 总线
P 2,0 ~ P 2,7
A L E
P 0,0 ~ P 0,7
8051
P S E N
RD
WR
地址锁存器数据总线地址 总线控制 总线
A 8~A 15
A 0~A 7
D 0~D 7
单片机的三总线结构
http://www.wenyuan.com.cn/webnew/
7.1.2 扩展总线的实现
1,并行扩展总线组成
80C51系列总线型单片机中,由 P0口做地址 /数据复用口;
P2口做地址线的高八位; P3口的 RD,WR加上控制线 EA、
ALE,PSEN等组成控制总线。
(1) 地址总线 A0~ A15
地址总线的 高 8位是由 P2口提供 的,低 8位是由 P0口提供 的。
在访问外部存储器时,由地址锁存信号 ALE的下降沿把 P0
口的低 8位以及 P2口的高 8位锁存至地址锁存器中,从而构成系统的 16位地址总线。
实际应用系统中,高位地址线并不固定为 8位,需要用几位就从 P2口中引出几条口线。
http://www.wenyuan.com.cn/webnew/
7.1.2 扩展总线的实现
(2) 数据总线 D0~ D7
数据总线是由 P0口提供的,因为 P0口线既用作地址线,又用作数据线 (分时使用 ),因此,需要加一个 8位锁存器。
在实际应用时,先把低 8位地址送锁存器暂存,然后再由地址锁存器给系统提供低 8位地址,而把 P0口线作为数据线使用。
在读信号 RD与写信号 WR有效时,P0口上出现的为数据信息。
http://www.wenyuan.com.cn/webnew/
7.1.2 扩展总线的实现
(3) 控制总线系统控制总线共 12根,既 P3口的第二功能再加上 RESET、
EA,ALE和 PSEN。实际应用中的常用控制信号如下。
使用 ALE作为 地址锁存的选通信号,以实现低 8位地址的锁存。
以 PSEN信号作为扩展 程序存储器的读选通信号 。
以 EA信号作为内、外 程序存储器的选择信号 。
以 RD和 WR作为扩展 数据存储器和 I/O端口的读、写选通信号 。执行 MOVX指令时,这两个信号分别自动有效。
http://www.wenyuan.com.cn/webnew/
7.1.2 扩展总线的实现
2,总线扩展的特性
(1) 三态输出总线在无数据传送时呈高阻态,可同时扩展多个并行接口器件,因此存在寻址问题。单片机通过控制信号来选通芯片,然后实现一对一的通信。
(2) 时序交互单片机并行扩展总线有严格的时序要求,该时序由单片机的时钟系统控制,严格按照 CPU的时序进行数据传输。
(3) 总线协议的 CPU控制通过并行总线接口的数据传输,不需要握手信号,双方都严格按照 CPU的时序协议进行,也不需要指令的协调管理。
http://www.wenyuan.com.cn/webnew/
7.1.2 扩展总线的实现
并行总线扩展的主要问题是总线连接电路设计、器件的选择以及器件内部的寻址等。
并行总线扩展时,其所有的外围扩展设备的并行总线引脚都连到相同的数据总线 (DB)、地址总线 (AB)以及公共的控制总线 RD,WR上。其中 数据总线为三态口,在不传送数据时为高阻态 。总线分时对不同的外设进行数据传送。
总线连接方式的重点在于外围设备片选信号的产生。该信号主要由以下两种方法产生。
线选法,用所需的低位地址线进行片外存储单元 I/O端口寻址,余下的高位地址线输出各芯片的片选信号,当芯片对应的片选地址线输出有效电平时,该芯片选通操作。
译码法,该方法需要用到译码器。采用译码法时,仍由低位地址线作片外寻址,而高位地址线用于译码器的输入,
译码器的输出信号作各芯片的选通信号。
http://www.wenyuan.com.cn/webnew/
7.2 程序存储器扩展
7.2.1 常用程序存储器芯片
7.2.2 程序存储器扩展实例
http://www.wenyuan.com.cn/webnew/
7.2.1 常用程序存储器芯片
单片机外部扩展常用程序存储器芯片为 EPROM,其掉电后信息不会丢失,且只有在紫外线的照射下,存储器的单元信息才可擦除。
用作扩展的 EPROM主要是 27系列,如 2716,2732,2764、
27128,27256等,其中高位数字 27表示该芯片是 EPROM,
低位数字表明存储容量,如 2716表示 16K个存储位,亦即字节容量为 2K的 EPROM。
常用的还有 EEPROM,即 28系列,如 2816/2817,2864等,
型号含义同上。
http://www.wenyuan.com.cn/webnew/
7.2.1 常用程序存储器芯片
常用 EPROM芯片管脚和封装如下图所示。 EPROM除 2716外均为 28线双列直插式封装,各引脚定义如下。
A0~ Ai:地址输入线,i=12~ 15。
D0~ Di:三态数据总线,读或编程校验时为数据输出线,
编程时为数据输入线。其余时间呈高阻状态。
PGM:编程脉冲输入线。
OE:读出选通线,低电平有效。
CE:片选线,低电平有效。
VPP:编程电源线,其值因芯片及制作厂商而异。
VCC:电源线,接 +5V电源。
GND:接地。
http://www.wenyuan.com.cn/webnew/
7.2.1 常用程序存储器芯片
EPROM的操作方式主要有以下几种。
编程方式,把程序代码 (目标文件 )固化到 EPROM中。
编程校验方式,读出 EPROM中的内容,校验编程操作的正确性。
读出方式,CPU从 EPROM中读出代码。
维持方式,数据端呈高阻态。
编程禁止方式,用于多片 EPROM并行编程。
http://www.wenyuan.com.cn/webnew/
2764和 27128的操作方式
27256的操作方式
http://www.wenyuan.com.cn/webnew/
注,X 代表任意状态。
* 代表 VPP的大小与型号和编程方式有关。
* * 代表 VCC的大小与型号和编程方式有关。
27512 的操作方式
http://www.wenyuan.com.cn/webnew/
7.2.2 程序存储器扩展实例
【 例 1】 8051扩展一片 2764 EPROM(8KB)。
解,P2口的 P2.0~ P2.4与 EPROM的高 5位地址线及片选 CE连接;
P0口经地址锁存器输出的地址线与 EPROM的低 8位地址线相连,同时 P0口又与 EPROM的数据线相连;单片机 ALE连接锁存器的锁存控制端; PSEN接 EPROM的输出允许 OE; 8051的内、外存储器选择端 EA接地。
扩展单片 EPROM,其片选 CE直接接地即可。只要系统执行读外部程序存储器的指令,该 EPROM就处于选通操作。 P2
口的 P2.5~ P2.7未用,所以它们的状态与 2764的寻址无关;
P2.5~ P2.7有八种状态,2764的寻址范围对应有八个映像区。
http://www.wenyuan.com.cn/webnew/
7.2.2 程序存储器扩展实例
A L E
P 0,0 ~ P 0,7
8051
P 2,0 ~ P 2,4
EA
P S E N
CE
A0 ~ A7
2764
D0 ~ D7
A8 ~ A1 2
OE
G
74 L S37 3
P 2,7 P 2,6 P 2,5 地址范围
0 0 0 00 00 H ~1 FF FH
0 0 1 20 00 H ~3 FF FH
0 1 0 40 00 H ~5 FF FH
0 1 1 60 00 H ~7 FF FH
1 0 0 80 00 H ~9 FF FH
1 0 1 A 00 0H ~B FF FH
1 1 0 C 00 0H ~D FF FH
1 1 1 E00 0H ~FFFF H
单片机与外部 ROM的连接
http://www.wenyuan.com.cn/webnew/
7.3 数据存储器扩展
7.3.1 常用数据存储器芯片
7.3.2 数据存储器扩展实例
http://www.wenyuan.com.cn/webnew/
7.3.1 常用数据存储器芯片
数据存储器用于存储现场采集的原始数据、运算结果等。
外部数据存储器应能随机读 /写,通常由半导体静态随机读 /
写存储器 RAM组成。 EEPROM芯片有时也会用作外部数据存储器。
静态 RAM主要有 读出,写入,维持 三种工作方式。
常用的静态 RAM(SRAM)电路有 61系列 的 6116以及 62系列的
6264,62128,62256等。
http://www.wenyuan.com.cn/webnew/
7.3.1 常用数据存储器芯片各引脚定义如下,
A0~ Ai:地址输入线,i=10(6116),12(6264),
13(62128),14(62256)。
D0~ Di:双向三态数据线 (6116为 I/O0~ I/O7)。
CE:片选信号输入端,低电平有效。 6264的 26脚 (CS1)为高电平,且 CE为低电平时才选中该片。
OE:读选通信号输入端,低电平有效。
WE:写允许信号输入端,低电平有效。
VCC:工作电源,接 +5V电压。
GND:接地。
http://www.wenyuan.com.cn/webnew/
6116的引脚与封装
http://www.wenyuan.com.cn/webnew/
62系列 SRAM引脚与封装
OE OE OE
WE WE WE
http://www.wenyuan.com.cn/webnew/
7.3.1 常用数据存储器芯片注,X代表任意状态。
*代表对于 CMOS静态 RAM电路,CE为高电平时,电路处于降耗状态。此时 VCC可降至 3V左右,内部所存数据也不会丢失。
6116/6264/62128/62258的操作方式
http://www.wenyuan.com.cn/webnew/
7.3.2 数据存储器扩展实例
【 例 3】 8051扩展三片 6116静态 RAM(6KB)。
解:扩展静态 RAM与扩展 ROM相似,只是控制信号有所不同,
如下图所示为 8051用线选法扩展 2KB静态 RAM6116的连线图。
单片机的 RD接 EPROM的输出允许 OE; WR接 EPROM的写允许 WE。
P2口的 P2.3,P2.4未用,所以它们的状态与 2764的寻址无关;假设无关位 P2.3和 P2.4为 0,则 1号片的地址为
C000H~ C7FFH,2号片的地址为 A000H~ A7FFH,3号片的地址为 6000H~ 67FFH。
http://www.wenyuan.com.cn/webnew/
8051扩展 6KB RAM
P 2,7
P 2,6
P 2,5
A L E
P 0,0 ~ P 0,7
8051
P 2,0 ~ P 2,2
RD
WR
CE
A0 ~ A7
6 1 1 6
1#
D0 ~ D7
A8 ~ A1 0
OE WE
G
7 4 L S3 7 3
CE
A0 ~ A7
6 1 1 6
2#
D0 ~ D7
A8 ~ A1 0
OE WE
CE
A0 ~ A7
6 1 1 6
3#
D0 ~ D7
A8 ~ A1 0
OE WE
http://www.wenyuan.com.cn/webnew/
7.3.2 数据存储器扩展实例
【 例 4】 8051同时扩展一片 62256 RAM和一片 27256 ROM。
解:用线选法同时扩展一片 62256 RAM和一片 27256 ROM,逻辑电路图如下图所示。
32KB EPROM的地址为 0000H~ 7FFFH,
32KB RAM的地址也为 0000H~ 7FFFH;
虽然片选信号同为 P2.7,两者的地址相同,但不会发生地址冲突;因为外部 RAM的读写控制信号为 RD和 WR,它们由
MOVX指令产生,而外部 ROM的读控制信号在 CPU向外部
ROM取指令时才产生,也就是说外部 RAM的读写控制信号与外部 ROM的读控制信号不会同时产生。
http://www.wenyuan.com.cn/webnew/
8051扩展 ROM与 RAM的逻辑电路图
P 2,7
A L E
P 0,0 ~ P 0,7
8051
P 2,0 ~ P 2,6
WR
RD
P S E N
CE
A0 ~ A7
62256
D0 ~ D7
A8 ~ A1 4
WE OE
G
7 4 L S3 7 3
CE
A0 ~ A7
27256
D0 ~ D7
A8 ~ A1 4
OE
http://www.wenyuan.com.cn/webnew/
7.4 简单并行 I/O接口扩展
7.4.1 简单 I/O接口扩展常用芯片
7.4.2 简单并行 I/O接口扩展实例
http://www.wenyuan.com.cn/webnew/
7.4.1 简单 I/O接口扩展常用芯片
简单 I/O接口扩展所用芯片为 74系列的 TTL电路,CMOS电路 也可作为 MCS-51的扩展 I/O接口。这些芯片结构简单,
配置灵活方便,比较容易扩展,使系统降低了成本、缩小了体积,因此在单片机应用系统中经常被采用。
常用芯片有 74LS244(八缓冲器 /线驱动器 /线接收器 )、
74LS245(八双向总线收发器 ),74LS273(八 D触发器 )、
74LS373(八 D锁存器 ),74LS377(带使能的八 D触发器 )等。
74LS244是八缓冲器 /线驱动器 /线接收器,内部有 两组 4位三态缓冲器,具有数据缓冲隔离和驱动作用,其输入阻抗较高,输出阻抗低,常用于单向三态缓冲输出。
http://www.wenyuan.com.cn/webnew/
7.4.1 简单 I/O接口扩展常用芯片
74LS244各引脚定义如下:
1A1~ 1A4:第 1组 4条输入线
1Y1~ 1Y4:第 1组 4条输出线
2A1~ 2A4:第 2组 4条输入线
2Y1~ 2Y4:第 2组 4条输出线
1G:第 1组三态门使能端,
低电平有效
2G:第 2组三态门使能端,
低电平有效
VCC:工作电源,接 +5V电压
GND:接地
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
7 4 L S 2 4 4
V
CC
2G
1Y
1
2A
4
1Y
2
2A
3
1Y
3
2A
3
1Y
4
2A
1
1 G
1A
1
2Y
4
1A
2
2Y
3
1A
3
2Y
2
1A
4
2Y
1
G ND
http://www.wenyuan.com.cn/webnew/
7.4.1 简单 I/O接口扩展常用芯片
74LS273各引脚定义如下:
D0~ D7:输入线。
Q0~ Q7:输出线。
CLR:清除控制端,
低电平有效。
CLK:时钟输入端,
上升沿有效。
VCC:工作电源,
接 +5V电压。
GND:接地。
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
7 4 L S 2 7 3
V
CC
Q
7
D
7
D
6
Q
6
Q
5
D
5
D
4
Q
4
CL K
CL R
Q
0
D
0
D
1
Q
1
Q
2
D
2
D
3
Q
3
G ND
http://www.wenyuan.com.cn/webnew/
7.4.1 简单 I/O接口扩展常用芯片
74LS273的工作方式
74LS244的工作方式
http://www.wenyuan.com.cn/webnew/
7.4.2 简单并行 I/O接口扩展实例
【 例 5】 用 74LS244作为扩展输入,74LS273作为扩展输出。
解,P0口作为双向数据总线,用 74LS244扩展 8位输入,输入八只控制开关的控制信号;用 74LS273扩展 8位输出,输出信号控制八只发光二极管。编写控制程序,可使八只发光二极管分别受各自对应的控制开关的控制。
只要 P2.7为 0,就选中 74LS244或 74LS273,其他位均为无关位,所以 74LS244和 74LS273的地址均为 7FFFH。
http://www.wenyuan.com.cn/webnew/
简单 I/O口扩展电路
http://www.wenyuan.com.cn/webnew/
ORG 0000H
0000H 01 50 AJMP MAIN
ORG 0050H
0050H 90 80 00 MAIN,MOV DPTR,#8000 ;置输入口地址
0053H E0 MOVX A,@DPTR ;读输入口数据
0054H 90 90 00 MOV DPTR,#9000H ;置输出口地址
0057H F0 MOVX @DPTR,A ;写输出口数据
0058H 80 F6 SJMP MAIN
END
参考程序:
http://www.wenyuan.com.cn/webnew/
7.5 8255可编程并行接口扩展
7.5.1 8255A的结构
7.5.2 8255A的工作方式
7.5.3 8255A可编程并行接口扩展应用实例
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A是一个 可编程并行接口芯片,它主要作为外围设备与微型计算机总线之间的 I/O接口。
8255A可以 通过软件来设置芯片的工作方式,因此用 8255A
连接外部设备时,通常不需要再附加外部电路,给使用带来很大的方便。
8255A有三个 8位可编程并行 I/O端口,从编程上可分成 2组,
每组 12个,有 3种工作模式。
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A各引脚定义如下:
D7~ D0:双向数据线,用于传送数据和控制字。
PA7~ PA0,PB7~ PB0,PC7~ PC0:输入 /输出信号线,用于传送数据。
CS:片选信号,低电平有效。只有该引脚为低电平时,
8255A才与 CPU建立通信。
RD:芯片读出信号,低电平有效。当引脚为低电平时,CPU
可以从 8255A中读取输入数据。
WR:芯片写入信号,低电平有效。当引脚为低电平时,CPU
可以往 8255A中写入数据或控制字。
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A各引脚定义如下:
A0,A1:端口选择信号,这两个引脚的输入和 RD,WR两个引脚的输入,一起控制 8255A内部三个数据端口及一个控制端口的选择。它们一般和地址总线的两个最低位 (A0,A1)相连。选择如下:
A1A0为 00时选中端口 A;为 01时选中端口 B;为 10时选中端口 C;为 11时选中命令字口。
RESET:复位,当该输入信号为高电平时,控制寄存器被清除,所有的端口 (A,B,C)都被设为输入状态。复位引脚上的高电平,使各个端口都置为输入模式 (也就是 24个引脚都被置为高阻态 )。
http://www.wenyuan.com.cn/webnew/
8255A的引脚与封装
1 40
2 39
3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
1 1 30
12 29
1 3 28
14 27
15 26
16 25
17 24
18 23
19 22
20 21
8255A
PA
3
PA
2
PA
1
PA
0
RD
CS
V s s
A
1
A
0
PC
7
PC
6
PC
5
PC
4
PC
0
PC
1
PC
2
PC
3
PB
0
PB
1
PB
2
PA
4
PA
5
PA
6
PA
7
WR
R ES ET
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
V
CC
PB
7
PB
6
PB
5
PB
4
PB
3
PB
2
D
0
~D
7
数据线
R ES ET 复位输入
CS
芯片使能
RD

WR

A
0
,A
1
端口地址
PA
7
~P A
0
端口 A
PB
7
~P B
0
端口 B
PC
7
~P C
0
端口 C
V
CC
电源
G N D 地
http://www.wenyuan.com.cn/webnew/
8255A的内部结构
A 组端口 A
B 组端口 B
A 组端口 C
高 4 位
B 组端口 C
低 4 位
B 组控制
A
A 组控制
A
数据总线缓冲器读写控制逻辑电路
I/O
PB
7
~ P B
0
I/O
PC
3
~ P C
0
I/O
PC
7
~ P C
4
I/O
PA
7
~ P A
0
D
7
~D
0
CS
RD
WR
A
1
A
0
RESE T
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A可编程接口的组成
数据总线缓冲器这是一个 双向三态的 8位数据缓冲器,8255A正是通过它和系统数据总线相连。该缓冲器根据 CPU的输入或输出指示来传递或接收数据。 CPU发给 8255A的控制字和状态字也是通过这个缓冲器传递的。
读 /写控制逻辑电路这部分电路 管理所有数据、控制信息、状态信息的内部及外部的传递 。它接收来自 CPU地址总线和控制总线的信号,
据此向控制部件提出请求。
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A可编程接口组成
A组控制和 B组控制每个端口的 功能配置都是由系统软件来实现 的。实质上也就是 CPU给 8255A一个控制字。控制字中含有,工作方式,,
,按位置位,,,按位复位,等一些信息,依此来初始化
8255A的功能配置。每个控制块 (A组控制和 B组控制 )一方面接收来自读 /写控制逻辑电路的,请求,信号,一方面接收来自内部数据总线的,控制字,,并据此决定相连端口的合适工作方式。但 控制字寄存器 只能写,不能读。控制字可分为两类,一类为各端口的 方式选择控制字 ;一类为端口 C按 位置位 /复位的控制字 。
A组控制:控制端口 A和端口 C的高位 (PC7~ PC4)
B组控制:控制端口 B和端口 C的低位 (PC3~ PC0)
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A可编程接口组成
端口 A,B,C
8255A有三个 8位数据端口 (A,B,C)。设计人员可以用软件使它们分别作为输入端口或输出端口。不过,这 3个端口有着各自的特点以增强 8255A的能动性和弹性。
端口 A:对应一个 8位数据输出的锁存器 /缓冲器和一个 8位数据输入的锁存器。
端口 B:对应一个 8位数据输入 \输出的锁存器 /缓冲器和一个 8位数据输入的缓冲器。
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A可编程接口组成
端口 A,B,C
端口 C:对应一个 8位数据的输出锁存器 /缓存器和一个 8位数据的输入缓存 (对于输入没有锁存 )。该端口可以在 8255A
的不同工作方式下被分成 2个 4位端口,每个 4位端口都包括一个 4位的锁存,并为端口 A和端口 B提供控制信号输出和状态信号输入。
http://www.wenyuan.com.cn/webnew/
7.5.1 8255A的结构
8255A可编程接口主要由以下几部分组成:
端口 A,B,C
端口 A,B的工作方式 可以分别定义,而 端口 C要依据 A,B
的工作方式来分成两部分 。所有的输出寄存器,包括状态锁存器 (Status Flip-Flops),在任何模式转换时都会被复位。
各个工作方式可以相结合,因此对于所有的 I/O结构来说,
它们的功能都可以被裁剪。
例如,端口 B可以设置为方式 0,监视简单的开关结束,或者显示计算的结果,而端口 A可以在方式 1下工作,检测键盘的输入,或者检测一个靠基本中断工作的磁带播放机的播放。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
8255A在三种基本的方式下工作:
方式 0:基本输入 /输出。
方式 1:选通的输入 /输出。
方式 2:双向传输。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
1,方式 0(基本输入 /输出 )
这种工作方式是指三个数据端口提供简单的输入和输出功能。不需要,握手,信号,数据仅是简单地写进特定的端口,或从该端口读出。
方式 0的基本工作特点如下:
两个八位的端口和两个 4位的端口。
任何端口都可以输入或者输出。
输出被锁存。
输入不被锁存。
在该方式下,各端口的输入 /输出有 16种不同的组合。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
2,方式 1(选通的输入 /输出 )
这种工作方式要依据选通信号或者,握手,信号来进行数据的传递。在该方式下,端口 A,B要利用端口 C来产生或接收
,握手,信号。
方式 1的基本工作特点如下:
端口 A,B都可单独在方式 1下作输入端口或输出端口,以支持各种选通的 I/O应用程序。
每组包括一个 8位的数据端口和一个 4位的控制 /数据端口。
4位的端口要为 8位的数据端口提供控制和状态信息。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
2,方式 1(选通的输入 /输出 )
输入的控制信号功能如下:
STB(选通信号输入端 ):该引脚为低电平时,数据被送入输入锁存器。
IBF(输入缓冲器满信号 ),8255A的输出状态信号,高电平有效,表明输入缓冲器已满,即已有一个新数据写入缓存器。 IBF信号是由 STB信号使其置位的,而由读信号 RD的上升沿复位。
INTR(中断请求 ):当某个输入装置需要服务时,该信号为高电平,向
CPU提出中断请求。当 STB,IBF以及 INTE(中断允许标志 )均为高电平时,
INTR将被置为高电平;由读信号 RD的下降沿使其复位。这个程序使得输入设备仅通过选通信号就可向 CPU提出中断,要求其给予服务。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
2,方式 1(选通的输入 /输出 )
输出控制信号功能如下:
OBF(输出缓存满信号 ):低电平有效,由 8255A送给外设。有效时表明
CPU已经向指定的端口输出了数据。由输入信号 WR的上升沿使 OBF置位,
由输入信号 ACK的有效信号使其复位。
ACK(外设响应输入 ):该输入信号的低电平通知 8255A端口 A或端口 B的数据已被接收,从本质上来说该信号是来自外围设备的响应信号,表明外围设备已经接收来自 CPU的数据。
INTR(中断请求 ):当一输出设备已接收来自 CPU的数据时,该信号为高电平,用来向 CPU提出中断请求。当 ACK,OBF以及 INTE均为高电平时,
该信号被置为高电平;写信号 WR的下降沿使其复位。
INTE A(A口中断允许标志 )由按位置位 /复位的 PC6控制; INTE B(B口中断允许标志 )由 PC2控制。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
3,方式 2(选通的双向总线输入 /输出 )
这种工作方式方便了 8255A和外围设备或外围系统之间在一个 8位总线上的通信 (双向输入 \输出总线 )。,握手,信号用来维持适当的总线流动规则,使该方式与方式 1有相似的风格。中断产生机制和允许 /不允许机制也适用于方式。
方式 2的基本工作特点如下:
只适用于端口 A。
一个 8位的双向总线端口 (端口 A)和一个 5位的控制端口 (端口 C)。
输入和输出数据都被锁存。
端口 C的 5个数位为 8位的双向总线端口 A提供控制和状态信息。
双向输入 /输出总线的控制信号 ——INTR(中断请求 ),这是一个高电平有效的输出信号,是 8255A发给 CPU要求其写入或接收数据的中断请求。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
3,方式 2(选通的双向总线输入 /输出 )
输出的控制信号功能如下:
OBF(输出缓冲满 ):该输出信号低电平有效,表明 CPU已往端口写入数据。
ACK(响应信号 ):该输入信号低电平有效,有效时使得端口
A的三态输出缓冲器输出数据,反之,输出缓冲器将处于高阻态。
INTE1(和 OBF相连的双稳态多谐振荡器的 INTE信号 ):由按位置位 /复位的 PC6控制。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
3,方式 2(选通的双向总线输入 /输出 )
输入的控制信号功能如下:
STB(选通输入 ):该输入信号低电平有效,有效时将外设传来的数据输入锁存器。
IBF(输入缓存满 ):该输出信号高电平有效,表明数据已被输入锁存器。
INTE2(和 IBF相连的双稳态多谐振荡器的 INTE信号 ):由按位置位 /复位的 PC4控制。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
4,端口 C按位置位 /复位的特点
端口 C的任一位都可由一个输出指令置位或者复位 。这个特点也减少了基于控制的应用软件中的软件请求。当端口 C用来为端口 A,B提供状态 /控制信号时,C的每一位都可由按位置位 /复位操作来置位或复位,看起来就像是数据输出端口。
8255A工作在方式 1或方式 2下时,控制信号也就是 8255A发给 CPU的中断请求。中断请求信号一般是由端口 C发出的,
由相连的 INTE(中断允许 ) 双稳态多谐振荡器用端口 C的按位置位 /复位功能来禁止或允许。这种方式允许编程人员控制特定的 I/O设备向 CPU发出的中断信号,同时不会影响中断体系中的其他设备。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
5,方式控制字方式选择控制字的格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
D7,1。
D6D5:端口 A工作方式选择。 00代表方式 0; 01代表方式 1;
1x代表方式 2。
D4:端口 A的输入 /输出选择。 1代表输入; 0代表输出。
D3,PC7~ PC4的输入 /输出选择。 1代表输入; 0代表输出。
D2:端口 B工作方式选择。 0代表方式 0; 1代表方式 1。
D1:端口 B的输入 /输出选择。 1代表输入; 0代表输出。
D0,PC3~ PC0的输入 /输出选择。 1代表输入; 0代表输出。
http://www.wenyuan.com.cn/webnew/
7.5.2 8255A的工作方式
5,方式控制字端口 C按位置位 /复位的控制字的格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
D7,0。
D6D5D4:无关。
D3D2D1:端口 C的位选择:
000代表 PC0; 001代表 PC1; 010代表 PC2; 011代表 PC3。
100代表 PC4; 101代表 PC5; 110代表 PC6; 111代表 PC7。
D0,1代表置 1; 0代表置 0。
http://www.wenyuan.com.cn/webnew/
7.5.3 8255A可编程并行接口扩展应用实例
【 例 6】 用 8255的 PA,PB,PC口分别作为输入口接八只控制开关,或作为输出口接八只发光二极管,编写控制程序,
使八只发光二极管分别受各自对应的控制开关的控制。
解:假设:端口 A地址为 FF28H,端口 B地址为 FF29H,端口 C地址为 FF2AH,控制端口地址为 FF2BH。 PA口作为输入口接八只控制开关,PB口作为输出口接八只发光二极管。
http://www.wenyuan.com.cn/webnew/
7.5.3 8255A可编程并行接口扩展应用实例地址 机器码 程序 注释
ORG 0000H
0000H 41 50 AJMP MAIN
ORG 0250H
0250H 90 FF 2B MAIN,MOV DPTR,#0FF2BH
0253H 74 90 MOV A,#90H ;A口输入,B口输出
0255H F0 MOVX @DPTR,A ;写控制字数据
0256H 90 FF 28 LOOP,MOV DPTR,#0FF28H
0259H EO MOVX A,@DPTR ;读输入口数据
025AH 90 FF 29 MOV DPTR,#0FF29H
025DH F0 MOVX @DPTR,A ;写输出口数据
025EH 80 F6 SJMP LOOP
END ;程序结束参考程序:
http://www.wenyuan.com.cn/webnew/
7.5.3 8255A可编程并行接口扩展应用实例
【 例 7】 用 8255控制打印机,打印机与 8051采用查询方式交换数据。
解:下图是 8255A作为打印机接口与 8051相连的电路图。其工作方式为 0,片选信号为 P0.7,端口 A作数据输出通道,端口 B不用,PC7与打印机的状态信号 BUSY相连,PC0与打印机的选通信号 STB。打印机与 8051采用查询方式交换数据。当
BUSY为 0,在 STB负跳变时,数据被输入。
按照接口电路可知 (无关的位全设为 1),端口 A地址为 7CH,
端口 B地址为 7DH,端口 C地址为 7EH,控制端口地址为 7FH。
方式选择字 (无关的位全设为 0)为 88H。要打印的数据开始地址为 30H;要打印的数据个数设为 50。
http://www.wenyuan.com.cn/webnew/
8051通过 8255A与打印机电路图
RD
WR
R E S E T
8051
A L E
P 0,7 ~ P 0,0
EA
RD
WR PA
7
~ PA
0
R E S E T
8255A
CS
PC
7
A
1
A
0
PC
0
D
7
~ D
0
74L S 373
G
Q
7
D
7
Q
1
D
0
Q
0
E
DB
7
~ DB
0
微型打印机
B U S Y
S T B


http://www.wenyuan.com.cn/webnew/
START,MOV R5,#32H ; 要打印的数据个数放在 R5中
MOV R6,#30H ; R6指向数据开始地址
MOV R0,#7FH ; 方式选择控制字地址
MOV A,#88H ; 使端口 A工作于方式 0,且为输出 C的高位为输入,低位为输出
MOVX @ R0,A
MOV R0,#7FH
MOV A,#71H ; 用按位置位 /复位的方法,使 PC0为 1,即使 STB为高电平
MOVX @ R0,A
LP,MOV R0,#7EH ; 读端口 C的值
MOVX A,@R0
ANL A,#80H ; 求与,查看 PC7,即状态信号 BUSY的值
JNZ LP ; 若不为 0,说明打印机现在处于忙状态,跳转继续读端口 C
的值
MOVX A,@R6 ; 若不忙,将要打印的字符送往端口 A
MOV R0,#7CH
MOVX @R0,A
MOV R0,#7FH
MOV A,#70H ; 同上,使 STB变为低电平
MOVX @ R0,A
INC R6 ; 指向下一个要打印的数据
MOV R0,#7FH ; 再使 STB为 1
MOV A,#71H
MOVX @ R0,A
DJNZ R5,LP ; 将要打印的个数减 1,并判断是否打印完,否则跳转
END
参考程序:
http://www.wenyuan.com.cn/webnew/
7.6 8155可编程并行接口扩展
7.6.1 8155的结构
7.6.2 8155的工作方式
7.6.3 8155可编程并行接口扩展应用实例
http://www.wenyuan.com.cn/webnew/
7.6.1 8155的结构
8155是一种 多功能可编程外围扩展接口芯片,它也有三个可编程 I/O端口 (端口 A,B,C)。
与 8255A的区别 在于 PC口是 6位,同时还有一个可编程 14位定时器 /计数器和 256字节的 RAM,能方便地进行 I/O扩展和
RAM扩展。
http://www.wenyuan.com.cn/webnew/
7.6.1 8155的结构
8155各引脚定义如下:
AD0~ AD7,三态地址 /数据复用线。因 8155片内有地址锁存器,该组引脚直接与单片机的 P0口相连。
PA0~ PA7,PB0~ PB7:端口 A和端口 B用于传送数据。
PC0~ PC5:端口 C既可用于传送数据,也可用作端口 A和端口 B的控制信号线。
RESET:复位输入信号,高电平有效。
CE:片选信号,低电平有效。
RD:读选通信号,低电平有效。
WR:写选通信号,低电平有效。
IO/M,RAM及 I/O选择。在片选信号有效的情况下,该信号为高电平,
表明单片机选择的是 8155的 I/O读写;为低电平,表明单片机选择的是
8155的 RAM读写。
ALE:地址锁存信号。 8155片内有地址锁存器,该信号的下降沿将
AD0~ AD7上的地址信息以及 CE,IO/M的状态锁存在 8155的内部寄存器内。
TIMERIN:定时 /计数器的输入端
TIMEROUT:定时 /计数器的输出端
http://www.wenyuan.com.cn/webnew/
7.6.1 8155的结构
1 4 0
2 3 9
3 3 8
4 3 7
5 3 6
6 3 5
7 3 4
8 3 3
9 3 2
1 0 3 1
1 1 3 0
1 2 2 9
1 3 2 8
1 4 2 7
1 5 2 6
1 6 2 5
1 7 2 4
1 8 2 3
1 9 2 2
2 0 2 1
8155
PC
3
PC
4
T IMER IN
RESE T
PC
5
T IMER OU T
IO /M
CE
RD
WR
A L E
AD
0
AD
1
AD
2
AD
3
AD
4
AD
5
AD
6
AD
7
V
SS
PC
0
V
CC
PC
2
PC
1
PC
0
PB
7
PB
6
PB
5
PB
4
PB
3
PB
2
PB
1
PB
0
PA
7
PA
6
PA
5
PA
4
PA
3
PA
2
PA
1
PA
0
8155的引脚与封装 8155内部结构
http://www.wenyuan.com.cn/webnew/
7.6.1 8155的结构
8155内部的 I/O口,RAM、定时器和命令 /状态寄存器的地址分配
A7 A6 A5 A4 A3 A2 A1 A0 选中寄存器
× × × × × 0 0 0 命令 /状态寄存器
× × × × × 0 0 1 PA口
× × × × × 0 1 0 PB口
× × × × × 0 1 1 PC口
× × × × × 1 0 0 定时器高 8位
× × × × × 1 0 1 定时器低 8位
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
1,8155作片外 RAM(256B)
在片选信号 CE有效的情况下,IO/M信号为高电平,8155作片外 RAM使用。
地址的高 8位由片选信号确定,地址的低 8位为 00H~ FFH。
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
2,8155作 I/O口
8155有两种工作方式:基本 I/O和选通 I/O。
当 8155的 PA口,PB口,PC口工作在 基本 I/O方式 下,可用于无条件 I/O
操作。基本输入时执行,MOVX A,@ DPTR”类指令,基本输出时执行
,MOVX @ DPTR,A”类指令。
当 8155的 PA口工作在 选通 I/O方式 下时,PC口低三位作 PA口联络线,其余位作 I/O线,PB口定义为基本 I/O; PA口和 PB口也可同时定义为选通
I/O,此时 PC作 PA口,PB口联络线。
在 8155操作前,须由 CPU向 命令寄存器 送命令字,设定其工作方式,命令字只能写入不能读出 。
8155内部还有一个 状态寄存器,可以锁存 8155 I/O口和定时器的当前状态,供 CPU查询,状态寄存器和命令寄存器 共用一个地址,只能读出不能写入 。因此可以认为 8155的 00H口是命令 /状态口,CPU往 00H
写入的是命令字,而从中读出的是状态字。
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
2,8155作 I/O口
8155命令寄存器格式如下表所示。
各位功能说明如下:
TM2 TM1:
00 代表空操作。
01 代表停止计时。
10 代表时间到则停止计时。
11 代表置入定时器方式控制字和计数初值后,立即启动计时。若正在计时,溢出后按新的定时器方式和计数初值计时。
D7 D6 D5 D4 D3 D2 D1 D0
TM2 TM1 IEB IEA PC2 PC1 PB PA
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
2,8155作 I/O口
IEB,0代表禁止 PB口中断; 1代表允许 PB口中断。
IEA,0代表禁止 PA口中断; 1代表允许 PA口中断。
PC2 PC1:
00 代表 PA,PB均为基本 I/O方式,PA和 PB输入 /输出由 D1D0确定,PC口输入。
01 代表 PA,PB均为基本 I/O方式,PA和 PB输入 /输出由 D1D0确定,PC口输出。
10 代表 PA选通 I/O,PB为基本 I/O方式,输入 \输出由 D1D0确定; PC0~
PC2为 PA口联络线,PC3~ PC5输出。
11 代表 PA,PB均为选通方式,输入 \输出由 D1D0确定,PC0~ PC2为 PA
口联络线,PC3~ PC5为 PB口联络线。
PB,0代表输入; 1代表输出
PA,0代表输入; 1代表输出
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
2,8155作 I/O口
8155状态 寄存器格式如下表所示。
D7 D6 D5 D4 D3 D2 D1 D0
× TIMER INTEB BEF INTRB INTEA ABF INTRA
未用 定时中断
1:计数器溢出标志
0:读出状态或复位
B口中断允许位
1:允许
0:禁止
B口缓冲器满标志
0:空
1:满
B口中断请求标志
0:空
1:无
A口中断允许位
0:禁止
1:允许
A口缓冲器满标志
0:空
1:满
A口中断请求标志
0:无
1:有
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
3,8155作定时器
8155的可编程 14位定时器 /计数器是一个减法计数器,定时或计数的脉冲来自外部,它由两个 8位寄存器组成。
8155定时器 /计数器格式如下表所示。
各位功能说明如下:
M2M1:输出方式。 8155定时器的输出方式与输出波形如下表所示。
T13~ T0,14位计数初值
D7 D6 D5 D4 D3 D2 D1 D0
高 8位 M2 M1 T13 T12 T11 T10 T9 T8
低 8位 T7 T6 T5 T4 T3 T2 T1 T0
http://www.wenyuan.com.cn/webnew/
7.6.2 8155的工作方式
3,8155作定时器
8155定时器的输出方式与输出波形如下表所示。
M2 M1 方 式 输出波形
0 0 单次方波
0 1 连续方波
1 0 单脉冲
1 1 连续脉冲
http://www.wenyuan.com.cn/webnew/
7.6.3 8155可编程并行接口扩展应用实例
【 例 8】 用 8155控制 TPup打印机。
解,TPup打印机的接口和通用打印机相同。
下图是 8051通过 8155控制 TPup打印机的电路图。打印机与
8051采用中断方式联络。
由电路图可知:命令口地址为 7FF0H,端口 A地址为 7FF1H,
端口 C地址为 7FF3H,初始化命令字为 0FH(端口 A、端口 C均输出 )。
假设数据存储开始地址为 20H,要打印的个数为 50(32H)。
http://www.wenyuan.com.cn/webnew/
8051扩展 8155与打印机的接口电路
P 0,7 ~ P 0,0
A L E
RD
WR
RESET
8051
P 2,7
V
SS
V
CC
I N T 1
AD
7
~ AD
0
A L E
RD
WR
PA
7
~ PA
0
RESET
8 1 55
PC
0
IO /M
V
SS
V
CC
CE
DB
7
~ DB
0
微型打印机
S T B
BU SY
http://www.wenyuan.com.cn/webnew/
ORG 1000H
START,…
SETB EA ; 开所有中断
SETB EX1 ; 允许 INT1上中断
SETB PX1 ; 令 INT1为高级中断
SETB IT1 ; 令 INT1为负边沿触发中断
SETB P2.7 ; 令 IO/M=1
MOV R6,20H ; 要打印的开始地址放在 R6中
MOV R5,#32H ; R5中存要打印的数据个数,亦即中断次数
MOV A,#0FH ; 方式控制字送累加器
MOV DPTR,7FF0H
MOVX @DPTR,A ; 方式控制字送 8155的命令端口
MOV A,@R6 ; 第一个数据送端口 A
MOV DPTR,7FF1H
MOVX @DPTR,A
MOV DPTR,7FF0H
MOV A,#01H
MOV @DPTR,A ; PC0=1控制字送命令口
MOV A,#00H
MOV @DPTR,A ; PC0=0控制字送命令口
LOOP,SJMP $ ; 等待中断参考程序:
http://www.wenyuan.com.cn/webnew/
ORG 0003H
LJMP PINT0
ORG 2000H
PINT0,MOV DPTR,7FF1H
INC R6 ; 指向下一个数据
MOV A,@R6
MOVX @DPTR,A
MOV DPTR,7FF3H ; 产生负选通脉冲
MOV A,#01H
MOVX @DPTR,A
MOV A,#00H
MOVX @DPTR,A
DJNZ R5,NEXT ; 若未打完,则跳转到 NEXT
CLR EX1 ; 若打完,关中断 SJMP DONE
NEXT,SETB EX1 ; 开中断
DONE,RETI ; 中断返回
END
参考程序:
http://www.wenyuan.com.cn/webnew/
本章小结
并行扩展方式 一般采用总线并行扩展,即数据传送由数据总线完成,地址总线负责外围设备的寻址,而控制总线来完成传输过程中的传输控制。
在并行总线扩展中,主要介绍了两种寻址方式,线选法 与译码法 。该方式的扩展实例是数据存储器与程序存储器的扩展。单片机常采用数据存储与程序存储相互独立的哈佛结构体系,故存储器的扩展要分别考虑。通过本章的学习要学会画总线扩展电路图,对常用的程序存储器以及数据存储器的型号和特性要熟练掌握。
在 I/O口并行扩展中,概略讲了 简单 I/O口并行扩展 所用 TTL
芯片;重点讲述了 I/O口扩展时所用的 Intel公司的可编程芯片,8255A和 8155。
http://www.wenyuan.com.cn/webnew/
本章小结
8255A是一个用在 Intel公司的微型计算机系统中的可编程外围接口设备 (PPI),与 Intel的所有微处理器都兼容。它主要是作为外围设备和微型计算机总线间的 I/O组成中的接口。由于 8255A可以通过软件来设置芯片的工作方式,
因此用 8255A连接外部设备时,通常不需要再附加外部电路,给使用带来很大的方便。
8155是 Intel的另一种多功能可编程外围扩展接口芯片,
它也有三个可编程 I/O端口 (端口 A,B,C),与 8255A的区别在于 PC口是 6位,一个可编程 14位定时 /计数器和 256字节的 RAM,能方便地进行 I/O扩展和 RAM扩展,芯片采用 40
针双列直插式封装。对于这部分内容,要掌握芯片的引脚特性、内部结构以及工作方式的特点等。
http://www.wenyuan.com.cn/webnew/
习 题
1,简述什么是最小系统,什么是并行外围扩展以及并行扩展的优点?
2,并行扩展包括哪几种方式,简单介绍各方式及其本质区别。
3,描述总线扩展的两种寻址方式,并指出两者的区别。
4,8255和 8155分别有几种工作方式,其特点是什么?
5,8051通过 8255A与 Centronic360字符打印机相连,8255A工作于方式 1,且 8051与打印机采用中断联络,画出电路图,
并写出源程序。
6,请编出把 8155定时器用作 400分频器的初始化程序。
http://www.wenyuan.com.cn/webnew/
Q & A?
Thanks!