微机原理与接口技术(第二版)
清华大学出版社
方式 1 的基本定义如下:分成 2 组(A 组和 B 组 )。每组包含一个 8 位的数据口和 1 个 4 位的控制 /数据口。8 位的数据口既可以作为输入也可以作输出, 输入和输出都可以被锁存。 4 位的控制 /数据口用于传送 8 位数据口的控制和状态信
息。
③方式 2:带选通的双向传输方式
这种双向的传输方式, 8255A 可以向外设发送数据,同时
CPU 通过这 8 位
数据线又接收外设的数据。因此称为双向的传输方式。
方式 2 的基本定义如下:只能适用于 A 口。一个 8 位的双向口 (A 口)和 1 个 5 位的控制口 (C 口)。A 口的输入和输出都可以被锁存。 5 位的控制口用于传送 8
位双向口的控制和状态信息。
当 A 口工作在方式 2 时,由 PA7~PA0 作 8 位数据线,因为要由 C 口对 A 口
进行控制,所以称为带选通的双向传输方式。 C 口对 A 口的控制信号如图 8.20 所示,工作时序如图 8.20 所示。在这种方式下, C 口中有 5 位 PC7 一 PC3 作为控制信号和状态信息使用, 剩下的 3 位 PC2~PC0 可作为简单的输入 /输出线使用。当控制字的 D0 位为 1 时 PC2~PC0 作输入;当控制字的 D0 位为 0 时 PC2~ PC0 作输出。
3. 可编程接口芯片 8255 的控制字有哪两个?其控制字及每位的含义是什么?
控制字分为 2 种:分别称为方式选择控制字和端口 C 置 1/置 0 控制字。根据
控制寄存器的 D7 位的状态决定是哪一种控制字。
D7 D6 D 5
D4
D 3
D2
D 1
D 0
①方式选择控制字
方式选择控制字用来决定
字识别位,为 1
图所示。它由一个
8255A 三个数据端口各自的工作方式, 它的格式如
00:方式 0 01:方式 1
81x位:的方式寄存2器组0成:输。出
PC7~ 4 口
1:输入 1:输入
0:输出
PC
B 组方式 B 口 0:方式 0 1:输入
1:方式 1
0:输出
1:输入
PC3~
0
0:输出
PC
选中
A 组控制 B 组控制
②口 C置1/置0控制字
D7 C 口置位 为0有效
8255A 在和 CPU 传输数据的过程中,经常将
D 6
D5 任意值
C 口的某几位作为控制位或状
D 4
D 3
D 2 C 口位选择
D 1 D0
选中位置 1置 0选择
0:置 0 1:置 1
态位来使用,从而配合
A 口或 B 口的工作。为了方便用户,在
000: PC0 001: PC1 010: PC2 011:PC3
100 :PC4 101 :PC5 110: PC6 111:PC7
8255A 芯片初始
化时,识别位C 口置 1/置 0 控制字可以单独设置到 C 口的某一位为 0 或某一位为
1,具
体的格式如图所示。
37
微机原理与接口技术(第二版)
清华大学出版社
4. 假定 8255 的端口地址分别为 0060H---0063H ,编写出下列各情况的初始化程
序:
(1) 将 A 口, B 口设置方式 0,端口 A 和 C 作为输入口, B 作为输出口
(2) 将 A 口设置成方式 1,输入口, PC6, PC7 作为输出端, B 口设置成
方式 1,输入口
答:(1)MOV AL, 99H
MOV DX, 0063H
OUT DX, AL
(2) MOV AL, 0B6H
MOV DX, 0063H OUT DX, AL
5. 设 8253 计数器 0~2 和控制字 I/O 地址依次 F8H~FBH ,说明如下程序的作用。
MOV AL, 33H OUT 0FBH, AL
MOV AL, 80H
OUT 0F8H, AL MOV
AL, 50H
OUT 0F8H, AL
答:计数器 0,方式 1,写两个字节
控制字节送到控制字寄存器
计数值的低位
写低位
计数初值的高位
写高位
6. 定时 /计数器芯片 Intel 8253 占用几个端口地址?各个端口分别对应什么?
答: 8253 占用 4 个端口地址,低地址分别为计数器 0,计数器 1,计数器 2,最
高地址端口对应控制字寄存器。
7. 试按如下要求分别编写 8253 的初始化程序,已知 8253 的计数器 0~2 和控制
38
微机原理与接口技术(第二版)
清华大学出版社
字 I/O 地址依次为 04H~07H
(1)计数器 1 工作在方式 0,仅用 8 位二进制计数器,计数初值为
128
(2)计数器 0 工作在方式 1,按 BCD 码计算,计数值为
3000
(3)计数器工作在方式 2,计数值为 02F0H
答: (1) MOV AL, 50H
OUT 07H, AL
MOV AL, 128
OUT 05H, AL
(2) MOV AL, 33H
OUT 07H, AL MOV AX, 3000
OUT 04H, AL MOV AL, AH
OUT 04H,A;
(3) MOV AL, 0B4H
OUT 07H, AL
MOV AL, 0F0H OUT 06H,AL
MOV AL, 02H
OUT 06H, AL
8. 设一个 8253 的端口为 0140H—0143H,时钟输入是由 8284 时钟发生器发出
的 2.3864MHZ 经二分频得到。现在要求使计数器
0 产生 20ms 的定时信号,
试对它进行初始化编程。
答:根据题意,控制格式字为
00110100B
计数次数为 23864
程序段如下:
MOV AL ,
34H 0143H AL 23864
MOV DX,
OUT
DX, AX,
MOV
39
微机原理与接口技术(第二版)
清华大学出版社
MOV
DX , 0140H OUT
DX, AL MOV
AL, AH OUT
DX,
AL
9.让 8253 的计数器 3 工作在单稳态方式,让它产生
15ms的脉冲宽度。假设输入频率为 2MHz , 8253 的端口地址为 20H— 23H,二进制计数方式。 答:方式字为 B2H
计数器初值: 30000
程序如下: MOV AL ,
B2H
OUT
23H, AL MOV
AX, 30000 OUT
20H, AL MOV
AL, AH OUT
20H,
AL
10.请把一个 8253 与 8086CPU 相连,地址为 2FF0~2FF3H 。
40