当前位置:
文档之家› 单片机-第8章 单片机的并行接口
单片机-第8章 单片机的并行接口
1.8155的内部结构
图8-1 8155的内部结构
8155芯片各组成部分的作用:
双向数据总线缓冲器:用于缓冲存储单 片机与8155的RAM之间的读/写数据。 地址锁存器:用于锁存单片机送给8155 的端口地址或RAM单元地址。 地址译码器:用于对地址锁存器送来的 低3位地址进行译码,根据译码输出,选择 命令/状态寄存器、定时器/计数器或A、B 和C 3个I/O寄存器中的某一个工作。
命令寄存器和状态寄存器:命令寄存器存放 单片机送来的命令字,只能写入;状态寄存器 存放8155的状态字,只能读出。 定时器/计数器:是一个二进制14位的减法 计数器。计数器初值由单片机送入,由TIMER IN引脚上输入的脉冲实现减1计数控制,并根据 不同的计数输出方式从TIMER OUT引脚输出相 应的波形。作为定时器使用时,TIMER IN引脚 应输入频率恒定的周期脉冲。
读写控制器:根据和线上的信号,控制 单片机与8155之间所传信息的 读写。
RAM存储器:容量为256字节,用于存 放实时数据。存储器存储单元地址由地址 锁存器指定。
I/O寄存器:A、B和C 3个端口各有一 个I/O寄存器。其中A、B端口的I/O寄存器 为8位,用于存放外设的输入/输出数据;C 口的I/O寄存器为6位,用于存放输入/输出 数据或命令/状态信息。8155在某一时刻只 能选中某个I/O寄存器工作,这由单片机送 给8155的命令字决定。
PC1、PC2:C口工作方式设置位,设 置方法如表8-2所示。
P3口 的第二功能
P3口引脚 P3.0 名称 RXD 功 能 串行口输入
P3.1 P3.2 P3.3 P3.4 P3.5 P3.6
P3.7
TXD
INT0
INT1
T0 T1
WR
串行口输出 外部中断0输入 外部中断1输入 定时器/计数器0外部计数输入 定时器/计数器1外部计数输入 片外RAM写选通输出
2.8155的外部引脚
3.8155的端口地址
8155内部RAM的地址为00H~FFH,当 IO/=0时被选中。
8155内部的其他端口,在IO/=1时,由 低3位地址进行选择,具体的端口地址分配 如表8-1所示。
表8-1
CEIO/
0 1
8155端口地址分配
A2 0 A1 0 A R2
P1, 30H
; P1 ← (R2)
; P1 ← (30H)
2.读端口数据方式
CPU读入的数据并非端口引脚线上输入的数 据。因此,CPU只要用一条传送指令就可把 端口锁存器中数据读入累加器A或内部RAM 中,例如,如下指令可以从P1口输入数据。
MOV
MOV MOV MOV
A , P1
1, 其余位不变
MOV A, P1 ; 读P1口低4位引脚
8.2 并行接口的扩展
8.2.1 并行接口芯片8155 8.2.2 利用8155扩展并行接口
8.2.1 并行接口芯片8155
8155芯片是一块通用I/O接口芯片,是 单片机应用系统中广泛使用的芯片之一, 其内部包含两个8位并行口和一个6位并行 口,以及256字节的RAM存储器和一个14 位定时器/计数器。 8155芯片具有地址锁存功能,与单片 机接口非常简单,因此,其被广泛应用于 MCS-51单片机系统中。
R2, P1 30H, P1 @R1,P1
; A ←(P1)
; R2 ←(P1) ; 30H ←(P1) ; (R1)←(P1)
3.读引脚方式
读引脚方式可以从端口引脚线上读 入信息。在这种方式下,必须先向欲读 端口引脚所对应的锁存器写入1,目的 是使接在该引脚内部的场效应驱动管截 止,使引脚处于悬浮状态,成为高阻抗 输入。然后再用传送指令把引脚线上的 数据读入累加器A或内部RAM中。
4.8155的命令字
8155的命令字用于选择8155的工作方式 ,由单片机写入8155的命令寄存器中,从而 起控制作用。 8155命令字的格式如图8-3所示。
图8-3 8155命令字的格式
8115命令字各位的定义:
PA:A口数据传送方向设置位。为0时 表示输入;为1时表示输出。
PB:B口数据传送方向设置位。为0时 表示输入;为1时表示输出。
片外RAM读选通输出
RD
1.输出数据方式
在输出数据方式下,CPU通过一条字节操作指 令就可以把输出数据写入P0~P3的端口锁存器,然 后通过输出驱动器送到端口引脚。 例如,如下指令均可在P1口输出数据: MOV ANL P1, A P1, #data ; P1 ← (A) ; P1 ← data
ORL
8.1.1 并行接口的结构
MCS-51单片机共有4个并行I/O口P0~P3,每 个均由8位锁存器和8位输出驱动器组成。 4个8位数据锁存器和端口号P0、P1、P2和P3 同名,均为特殊功能寄存器,通过对锁存器的读 写,就可以实现数据的输入/输出操作。
P0口: 在单片机没有扩展外部存储器时,P0口可 作为通用I/O口使用;当单片机接有外部存储器时 ,P0口则作为地址/数据口使用,以分时操作方式 工作,即先输出外部存储器的低8位地址,然后再 切换为传输外部存储器读/写数据方式。 P1口:仅作为通用I/O口,用于输入/输出数据。 P2口:在单片机没有扩展外部存储器时,作为通 用I/O口使用;当单片机接有外部存储器时,用于 输出外部存储器的高8位地址。
M A15~A3
1
1 1 1 1
0
0 0 0 0
Ø
Ø Ø Ø Ø
0
0 0 1 1
0
1 1 0 0
1
0 1 0 1
A口
B口 C口 定时器/计数器低字节 定时器/计数器高字节
0
0
Ø
Ø
Ø
Ø
RAM单元
表中的“Ø”表示0或1,当高13位地址A15~A3不作为 、IO/控制线时,可以为任意值,否则,应为具体值。
读引脚指令:
如下两条指令可以将P1口的8条引脚上的数 据读入累加器A中。
MOV P1, #0FFH ; 向P1口写入1, 为 读引脚作好准备
MOV
A, P1
; 读P1口所有引脚
的数据
读引脚指令:
如下两条指令可以将P1口低4位4条引脚上的数 据读入累加器A的低4位中。 ORL P1, #0FH ; 向P1口低4位写入