当前位置:
文档之家› 微机原理 可编程接口芯片8255A及应用
微机原理 可编程接口芯片8255A及应用
33
第七章
参考程序片断: MOV AL, 10010000B ; 控制字 OUT 0F6H, AL ; 写入控制字 LP: IN AL, 0F0H ; 从A口读入开关状态 OUT 0F2H, AL ; B口控制LED,指示开关状态 CALL DELAY1S JMP LP
思考:
若地址大于FFH,则程序应该怎么改?
dp g f e d c b a
g
d
b
c
DP
g f e d c b a 1
阴 极
0
1
1
0
1
36
1
0
第七章
十六进制数共阴极的七段显示码表
十六进制数字
0 1 2 3 4 5 6
七段显示码
3FH 06H 5BH 4FH 66H 6DH 7DH
十六进制数字
8 9 A b C d E
七段显示码
7FH 6FH 77H 7CH 39H 5EH 79H
内部逻辑 6
端口C (低4位)
B 组B 端口
PC3~PC0
(8位)
PB7~PB0
CPU接口
外设接口
第七章
8255A与系统的连接示意图
7
第七章
3、各部分功能简介
数据端口
A、B、C:可用来和外设传送信息;每
个端口8位,通过编程设定其为输入口或输出口;
工作方式 0 1 8255数据端口功能表 B口 A口 C口
教材第九章内容
第七章
可编程外围接口芯片8255A及其应用
7.1 8255A的工作原理
一、8255A的结构和功能
二、8255A的控制字及初始化编程 三、8255A工作方式和C口状态字
7.2 8255A的应用举例
1
第七章
7.1 8255A的工作原理
8255A综述
8255A是一种通用的可编程并行I/O接口芯片,一
63H, AL AL, 00001011B 63H, AL AL, 00001010B 63H, AL
OUT MOV OUT MOV OUT
14
8255
第七章
思考:例2中若要求输出方波信号,则程序片段为: AGAIN:MOV OUT CALL AL,00001011B 63H,AL DELAY ;调用延时子程序
MOV
OUT JMP ……
AL,00001010B
63H,AL
CALL DELAY
AGAIN
;调用延时子程序
15
第七章
三、8255A工作方式和C口状态字
8255A有3种工作方式:
方式0:基本的输入输出方式
方式1:选通输入输出方式 方式2:双向总线I/O方式
各端口的工作方式,是通过编程向控制口写入方
9
第七章
二、8255A的控制字及初始化编程
8255A的初始化编程,通过输出指令让CPU对8255A
控制字寄存器写数据,来设置8255A的初始状态
8255A有两类控制字
1、方式选择控制字:
选择各端口的工作方式及操作类型(输入\输出) 2、置位复位控制字: 对C端口的任一位进行置位或复位操作
10
PB7~PB0
PC1 INTE B PC2 OBFB ACKB
PC0
WR
INTRB
23
第七章
24
第七章
选通输入/输出方式可以分为3种情况
(3)选通输入/输出方式 8255A工作于方式1时,允许对A口和B口分别定义,一 个端口作输入,另一个端口作输出。
PA7~PA0 PC4
D0
RD 控制字
D7 D6 D5 D4 D3 D2 D1
2
基本输入\输出 基本输入\输出 基本输入\输出 输出锁存 输出锁存 输出锁存 输入三态 输入三态 输入三态 应答式输入\输出 应答式输入\输出 作为A口、B口的 输入输出均锁存 输入输出均锁存 控制位及状态位 作为A口、B口的 应答双向输入输出 控制位及状态位 输入输出均锁存 8 第七章
8255A的基本操作
方式2的主要功能:
①只有A口可以工作于这种方式。 ②在这种方式下,CPU与外设交换数据时,可在单一的8 位端口数据线PA7~PA0上进行,既可以通过A口把数据
传送到外设,又可以从A口接收从外设送过来的数据,
而且输入和输出数据均能锁存。 ③输入和输出过程不能同时进行。
27
第七章
控制字
D7 1 D6 1 D5 × D4 × D3 × D2 1/0 D1 1/0 D0 1/0
A
28
第七章
4、C口状态字
当8255A工作于方式0时,C口各位作输入输出用。
当8255A工作于方式1和方式2时,C口产生或接收
与外设间的联络信号。此时,读取C口的内容可使 编程人员测试或检查外设的状态,用输入指令对C 口进行读操作就可读取C口的状态,
即:IN AL,PC口
29
第七章
C口的状态字有以下几种格式: (1)方式1状态字
硬 件 电 路 设 计 图
32
பைடு நூலகம்
第七章
分析:
确定各端口地址
A口:F0H
控制字:
B口:F2H
C口:F4H
控制口:F6H
A口工作于方式0输入,B口为方式0输出,C口未
用,控制字中与C口对应的位可以被置为0,写入 控制端口F6H的控制字为:10010000B
要求功能的实现:
从A口读入的数据直接输出至B口即可满足要求
若要“开关断开,相应的LED熄灭”,程序怎么改
?
34
第七章
【小结】
(1)CPU与8255A之间数据传输以BYTE为单位;
(2)8255A的方式0使用步骤: 确定地址; 写控制字(初始化); 输入输出操作
35
第七章
例2:数码管与8255A接口举例
1、七段LED的工作原理和接口电路
DP
a f e 数字【5】
7
07H
37
F
71H
第七章
2、数码管的显示方式
(1)静态显示方式
I/O(1) I/O(2) I/O(3) I/O(4)
38
第七章
这种方式的共阴极或共阳极点连在一起,接地
或接+5V,每一个数码管与一个并行口相连。所以
在同一时间内,每个数码管可以显示不同的内容。 但每个数码管都需要一个8位的I/O口,占用I/O太 多,成本高。
18
第七章
选通输入/输出方式可以分为3种情况 (1)选通输入方式 A口、B口都工作在选通输入方式 其端口控制字、状态、联络信号如下图所示。
控制字
D7
1
方式1 A口
D5
1
D6
0
D4
1
D3
1/0
D2
×
D1
×
D0
×
PA7~PA0 INTE A 选通信号 PC4 PC5 PC3 STBA
标志位
PC6,7 1=输入 0=输出
39
第七章
(2)动态显示方式
40
第七章
这种方式数码管的数据端与一个I/O口并连,
而每个数码管的控制端(公共端)分别与另一个
I/O口的某一位相连,可通过程序控制,使得在某
一时间段内只让某个数码管显示,下一时间段内
让另一个数码管显示,这样让4个数码管轮流显示 ,只要轮流的速度快,人眼不会感到闪烁,好像 在同时显示。
中断允许信号
IBFA
缓冲器满信号 INTRA 中断请求信号 I/O
A口方式1 A口输入
RD
19
PC6,7
第七章
方式1 B口
控制字
D7 1 D6 × D5 × D4 × D3 × D2 1 D1 1 D0 ×
PB7~PB0
INTE B 选通信号 PC2 PC1
STBB
IBFB 缓冲器满信号 INTRB 中断请求信号
分析:控制口地址:93H
工作方式控制字为:1000 1010B 即8AH
初始化程序片断:
MOV AL,8AH OUT 93H,AL
13
第七章
例2:设一片8255A的端口地址为60H~63H,要求从
PC5的引脚输出一个正脉冲。
分析:先将PC5清零,再将其置1,最后再清零
MOV
PC5
AL, 00001010B
输入状态字:
D2~D0
输出状态字:
D2~D0
30
第七章
(2)方式2状态字
方式1举例
31
第七章
7.2 8255A的应用举例
例1:在某一系统中,有8个开关K7~K0,要求每隔1S检测 它们的通断状态,并随时在发光二极管LED7~LED0上显 示出来。要求:开关断开,相应的LED点亮;开关合上 ,LED熄灭
• 电源线VCC ,一般取+5V ;
• 电源地线GND。
5
第七章
2、内部结构
A 组 控 制
内部数据总线 (8位)
端口A (8位)
D7~D0
C P U
数据总线
数据 总线 缓冲器
读 /写 控制 逻辑
A 组C 端口
PA7~PA0
(高4位)
PC7~PC4
外 设
RD WR A1 A0 RESET CS
B 组 控 制
PC3 PA7~PA0 PC7 PC6
INTRA
B组方式:1=方式1 0=方式0 B口:1=输入, 0=输出 PC2~0:1=输入, 0=输出 RD WR
INTE
1
INTE
OBFA ACKA STBA
2
PC4 PC5
IBFA