
8.1 单片机的系统总线
8.1.1 三总线结构



8.1.2 地址锁存原理及实现
锁存器——74HC373 先略过
8.2 简单/可编程并行I/O口扩展
8.2.1 访问扩展端口的软件方法







简单并行I/O口扩展
这种方法的核心是使用通用的数字逻辑芯片(如锁存器、缓冲器)来增加I/O口的数量。它本身不具备“可编程”能力,功能是固定的。
1. 输出口扩展(使用锁存器)
-
典型芯片:74HC573(8D透明锁存器)
-
功能:将单片机送出的数据暂时“锁存”住,并保持稳定的输出给外部设备。
-
工作原理:
-
单片机的数据总线(如P0口)连接到74HC573的8个数据输入端(D0-D7)。
-
单片机的一个I/O引脚(如P2.0)连接到74HC573的“锁存使能”引脚(LE,或叫G)。
-
当LE为高电平时,输出端(Q0-Q7)会跟随输入端(D0-D7)的变化。
-
当数据稳定后,单片机将LE拉为低电平,此时输出端的数据就会被锁存住,保持不变,即使输入端的数据后续改变了也不受影响。
-
-
电路连接示意图:
text
单片机P0口 <---> 74HC573 D0-D7 单片机P2.0 ---> 74HC573 LE (锁存使能) 74HC573 Q0-Q7 ---> 外设(如LED、继电器等)
-
关键特点:
-
简单、便宜、速度快。
-
功能固定,只能做输出。
-
需要占用数据总线和额外的控制线。
-
2. 输入口扩展(使用缓冲器/三态门)
-
典型芯片:74HC244(八路缓冲器/线驱动器)
-
功能:将外部设备的信号“传递”给单片机,并防止外部信号干扰单片机的数据总线。
-
工作原理:
-
外部设备的8位数据连接到74HC244的输入端(A1-A8)。
-
74HC244的输出端(Y1-Y8)连接到单片机的数据总线(如P0口)。
-
单片机的一个I/O引脚连接到74HC244的“输出使能”引脚(OE)。
-
当OE为低电平时,输入端的数据被传递到输出端,单片机可以读取。
-
当OE为高电平时,输出端呈高阻态,相当于与数据总线断开,这样其他设备就可以使用总线了。
-
-
电路连接示意图:
text
外设(如按键、开关) ---> 74HC244 A1-A8 单片机P0口 <---> 74HC244 Y1-Y8 单片机P2.1 ---> 74HC244 OE (输出使能,低电平有效)
-
关键特点:
-
实现了总线的分时复用,多个输入设备可以共享同一组数据总线。
-
功能固定,只能做输入。
-
**简单并行扩展总结(考试要点):
-
核心思想:使用74HC573、74HC244等通用芯片。
-
优点:成本低、电路简单、速度最快。
-
缺点:功能单一、不可编程、扩展多路时需较多控制线(需配合地址译码器)。
可编程并行I/O口扩展
这种方法的核心是使用专用的、可编程的接口芯片。单片机可以通过软件命令来配置芯片的工作方式,功能非常灵活。
典型芯片:Intel 8255A(PPI)
这是考试中最常考到的芯片,必须重点掌握。
1. 基本结构
8255A内部有4个主要部分:
-
数据总线缓冲器:负责与单片机的数据总线(D0-D7)连接,传输数据、命令。
-
读/写控制逻辑:接收单片机的地址线(A0, A1)和控制线(RD, WR, RESET),决定芯片的操作类型。
-
A组和B组控制电路:接收来自单片机的“控制字”,并据此配置各个端口的工作方式。
-
三个8位I/O端口:
-
PA口(Port A):一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。功能较强。
-
PB口(Port B):一个8位数据输入/输出锁存器/缓冲器和一个8位数据输入缓冲器。
-
PC口(Port C):一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器。PC口可以拆分为两个4位端口,或者作为PA口和PB口的“状态/控制”信号线。
-
2. 端口寻址与操作
8255A有A0和A1两根地址线,用来选择内部不同的端口。
| A1 | A0 | 选择的端口 |
|---|---|---|
| 0 | 0 | PA口 |
| 0 | 1 | PB口 |
| 1 | 0 | PC口 |
| 1 | 1 | 控制寄存器 |
-
对PA、PB、PC口进行“写”操作 -> 输出数据到外部。
-
对PA、PB、PC口进行“读”操作 -> 从外部读入数据。
-
对“控制寄存器”进行“写”操作 -> 写入控制字,配置8255A的工作方式。
3. 工作方式与控制字
这是8255A的核心,也是考试的重点。
8255A主要有两种基本工作方式(方式0和方式1),由方式选择控制字来设定。
-
方式0:基本输入/输出方式
-
三个端口(PA, PB, PC)都可以独立设置为输入或输出。
-
输出是锁存的,输入是不锁存的(方式0下,PC口输入不锁存)。
-
适用于无条件传送或查询式传送。
-
-
方式1:选通输入/输出方式
-
PA口和PB口可以作为数据口,PC口的部分引脚被固定定义为PA和PB的“握手信号”线(如STB-选通信号,IBF-输入缓冲器满,ACK-应答信号,OBF-输出缓冲器满等)。
-
适用于中断传送或查询式传送,可以方便地连接打印机等需要握手协议的设备。
-
方式选择控制字格式(必须掌握):
这是一个8位的命令字。
text
D7 D6 D5 D4 D3 D2 D1 D0
-
D7:特征位,固定为 1。表示这是一个设置工作方式的控制字。
-
D6, D5:设置A组(PA口和PC口高4位)的工作方式。
-
00 - 方式0
-
01 - 方式1
-
1x - 方式2(双向总线方式,不常用)
-
-
D4:设置PA口(A组)的方向。1=输入,0=输出。
-
D3:设置PC口高4位(PC7-PC4)的方向。1=输入,0=输出。
-
D2:设置B组(PB口和PC口低4位)的工作方式。0=方式0,1=方式1。
-
D1:设置PB口(B组)的方向。1=输入,0=输出。
-
D0:设置PC口低4位(PC3-PC0)的方向。1=输入,0=输出。
举例(考试常考):
要求8255A工作在方式0,PA口输出,PB口输入,PC口高4位输出,PC口低4位输入。求控制字。
-
D7 = 1(特征位)
-
A组方式0:D6D5 = 0 0
-
PA口输出:D4 = 0
-
PC高4位输出:D3 = 0
-
B组方式0:D2 = 0
-
PB口输入:D1 = 1
-
PC低4位输入:D0 = 1
最终控制字二进制为:1000 0011B,即 83H。
**可编程并行扩展总结(考试要点):
-
核心思想:使用8255A等可编程芯片,通过软件写入控制字来灵活配置端口功能。
-
优点:功能强大灵活(可配输入/输出/中断)、一个芯片解决多路扩展、节省单片机I/O资源(使用系统总线)。
-
缺点:成本高、电路复杂、软件编程复杂(需初始化)。
两者对比(考试简答题/论述题必备)
| 对比项 | 简单并行扩展 | 可编程并行扩展(以8255A为例) |
|---|---|---|
| 核心芯片 | 74HC573, 74HC244等通用逻辑芯片 | 8255A等专用接口芯片 |
| 编程性 | 不可编程,功能硬件固定 | 可编程,功能由软件决定 |
| 灵活性 | 差,一旦电路做好,输入/输出功能就固定 | 强,可随时通过软件改变端口工作方式 |
| 功能 | 简单数据锁存/缓冲 | 支持基本I/O、选通I/O、中断等 |
| 成本与复杂度 | 低、简单 | 高、复杂 |
| 连接方式 | 通常直接与I/O口相连 | 与单片机的系统总线(数据、地址、控制)相连 |
| 适用场景 | 简单、固定功能的少量扩展 | 复杂、需要灵活配置的多功能扩展 |
记忆技巧:
-
简单扩展像“固定开关”,装上去是开就是开,是关就是关。
-
可编程扩展像“智能插座”,你可以用手机App随时把它设置成开关、定时器或者传感器。

被折叠的 条评论
为什么被折叠?



