微机原理
DESCRIPTION
在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定” 重新设置徽标大小 单击徽标内任意位置。徽标外部出现的方框是“调整控点” 使用这些重新设置对象大小 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。. 微机原理. 制作者: 张幸. 第九章 可编程接口芯片8255 A. 第一节 8255 A 的工作原理 第二节 8255 A 的应用举例. 第一节 8255 A 的工作原理. 一、功能 1.8255 有3个8位并行口. A 口:方式0,方式1,方式2 B 口:方式0,方式1 - PowerPoint PPT PresentationTRANSCRIPT
第一节 8255A 的工作原理一、功能
1.8255 有 3 个 8 位并行口A 口:方式 0 ,方式 1 ,方式2
B 口:方式 0 ,方式 1
C 口:方式 0
2. 方式 0 :基本 I/O 方式 1 :选通 I/O 方式 2 :双向 I/O
8255
AB
CB
DB
RD WR D7~D0 A0 A1 CS
PB PAPC
8 8I/O I/O4 4
PB7 ~PB0 PA7 ~PA0PC3 ~PC0 PC7 ~PC4
I/O I/O
8 8 I/OI/O
PB7 ~PB0 PA7 ~PA0
PB PAPC
控制或I/O
控制或I/O
8 8 I/OI/O
PB7 ~PB0 PA7 ~PA0
PB PAPC
I/O控制
方式 0 :基本 I/O
方式 1 :选通 I/O
方式 2 :双向 I/O
数据总线缓冲器
读 / 写 控制 电路
RD WR A0 A1
CS
RESET
A 组控制逻辑
B 组控制逻辑
A 组端口 A
B 组端口 B
A 组端口C高 4位B 组端口C低 4位
PA7~PA0
PC7~PC4
PC3~PC0
PB7~PB0
D0~D7
二、结构和引脚
1. 数据端口 A、 B和 C 端口 A 包含一个 8 位的数据输出锁存器 / 缓冲器,一
个 8 位的数据输入锁存器。 端口 B 包含一个 8 位的数据输入 / 输出锁存器 / 缓冲
器,一个 8 位的数据输入缓冲器。 端口 C 包含一个 8 位的数据输出锁存器 / 缓冲器,一
个 8 位的数据输入缓冲器,无输入缓冲功能。
2.A 组和 B 组控制逻
辑 A 组控制逻辑控制 A 口,
C 口上半部分( PC7~PC4)
B 组控制逻辑控制 B 口,C 口下半部分( PC3~PC0)
A 组控制
B 组控制
内部总线
A 口
上 C 口
下 C 口
B 口
4. 读 / 写控制逻辑 接受 CPU 送来的地址信号和控制信号 信号: RESET 复位信号 高电平有效, 8255 复位状态为清控 制寄存器内容,使所有口呈输入状态 CS 片选信号 低电平有效,表示该芯片被选中 RD 读信号 低电平有效,表示 CPU 可从 8255 读数据或状态 WR 写信号 低电平有效,表示 CPU 向 8255 写数据或控制字 A1A0 端口选择信号 用于选择 8255 的 3 个数据口或控制字寄 存器
A1 A0 RD WR CS 功能
0 0 0 1 0 端口 A 数据总线
0 1 0 1 0 端口 B 数据总线
1 0 0 1 0 端口 C 数据总线
0 0 1 0 0 数据总线 端口 A
0 1 1 0 0 数据总线 端口 B
1 0 1 0 0 数据总线 端口 C
1 1 1 0 0 数据总线 控制字寄存器
8255A 端口选择表
1. 方式选择控制字 D7 D6 D5 D4 D3 D2 D1 D0
下 C 口 I/O
1= 输入0= 输出
B口 I/O 1= 输入0= 输出
B 口方式
0= 方式0 1= 方式 1
上 C口I/O
1= 输入0= 输出
特征位 D7=1 A 口方式 :
00= 方式 0 01=方式 1 1x= 方式2
A口I/O
1= 输入0= 输出
例:在一个 8086/8088 系统中,有一片 8255A 芯片,其各个端口的地址分别为 0F8H~0FBH ,现要求各个端口的工作方式为:端口 A 方式 0 输入端口 B 方式 1 输出端口 C (上半部) PC7 ~PC4 输出端口 C (下半部) PC3 输入要求:进行初始化编程
1 0 0 1 10 0 1
分析:根据 8255A 工作模式可确定方式控制字
95H
初始化编程:
MOV AL, 95H
OUT 0FBH, AL
2. 置位 / 复位控制字端口 C 常用作控制或应答信号,通过对 8255A 的控制口写入
置位 / 复位控制字,可使 C 口的任一个引脚的输出单独置 1 或置 0 。
D7 D6 D5 D4 D3 D2 D1 D0
1 置位 0 复位无关位
特征位 D7 = 0
000 选中PC0 001 选中 PC1
111 选中PC7
位选
择
例:要使端口 C的 bit3 置位的控制字为: 00000111B ; MOV AL, 00000111B OUT 0FBH, AL 而使端口 C的 bit3 复位的控制字为: 00000110B ; MOV AL, 00000110B OUT 0FBH, AL
四、 8255 的工作方式和 C 口状态字1. 方式 0 基本输入输出方式(不需要应答) A 口, B 口, C 口都可工作在方式 0 ,既可输入
也可输出,数据输出有锁存,输入不能锁存。适用于不需要握手信号的简单 I/O 场合。
2. 方式 1 选通输入输出 A 口, B 口可工作在方式 1 ,既可输入也可输出。 当 A 口, B 口工作在选通方式, C 口相应口工作在联络信号。 选通方式为握手方式,适用于查询方式和中断方式。
方式 1 的输入输出选通信号不同
选通输入方式
INTEA
PC4
PC5
PC3
8PA7~PA0
STBA
IBFA
INTRA
I/OPC6,7
1 0 1 1 1/0 X X X
D7D6D5D4D3D2D1D0
INTEB
PC2
PC1
PC0
8PB7~PB0
STBB
IBFB
INTRB
1 X X X X 1 1 X
D7D6D5D4D3D2D1D0
IBF 输入缓冲器满 高电平有效表示数据已送到 8255 口 , 指示 8255不能再接受数据INTE 中断允许信号控制 8255 能否向 CPU 发中断请求信号 A 口 (PC4) B 口 (PC2)
INTR 中断请求信号 高电平有效当 STB、 IBF、 INTE 三者为高电平时, INTR 置成高电平,向CPU提出中断申请
STB 选通信号 低电平有效表示外部设备把数据送入 8255的 A 口或 B 口
选通输出方式
INTEB
PC1
PC2
PC0
8PB7~PB0
OBFB
ACKB
INTRB
1 X X X X 1 0 X
D7D6D5D4D3D2D1D0
INTEA
PC7
PC6
PC3
8PA7~PA0
OBFA
ACKA
INTRA
I/OPC4,5
1 0 1 0 1/0 X X X
D7D6D5D4D3D2D1D0
OBF 输出缓冲满信号 低电平有效表示 CPU 将数据写入 8255的 A口或B 口
INTE 中断允许信号控制 8255 能否向 CPU 发中断请求信号 A 口 (PC6) B 口 (PC2)INTR 中断请求信号 高电平有效当 ACK、 OBF、 INTE 三者为高电平时, INTR 置成高电平,向CPU提出中断申请
ACK 外设回答信号 低电平有效表示 CPU 送到 8255 口的被外设
3. 方式 2 双向方式仅 A 口具有方式 2 ,即同
时可输入输出,当 A 口工作
在方式 2 时, C 口相应口作
联络信号方式 2 在功能上为方式 1 输
入和输出的结合,且在输入和输出时分别可以中断。
≥ 1 PC3
PC7 PC6
PC4 PC5
&
&
INTE
INTE
PA0~7
INTRA
OBF
STBAIBFA
ACK
WRRD PC0~
2I/O
4. C 口状态字
8255A 工作在方式 0 时, C 口各位作输入输出用。当工作在方式 1 和方式 2 时, C 口产生与外设的联络信号。此时。读取 C 口的内容可检查或测试外设的状态。 C 口的状态字如下:( 1 )方式 1
I/O I/O IBFA输入 INTEA INTRA INTEB IBFB INTRB
D7 D6 D5 D4 D3 D2 D1 D0
I/O I/O输出 INTEA INTRA INTEB OBFB INTRB
D7 D6 D5 D4 D3 D2 D1 D0
OBFA
( 2 )方式 2
*INTE1 INTRAINTE2IBFA
D7 D6 D5 D4 D3 D2 D1 D0
OBFA * *
第二节 8255A 的应用举例一、基本输入输出应用举例
G1 G2A G2B
C B A
Y4
D7~D0 RD WR RESET M/IO
D7~D0 RD WR RESET
A7
A6
A5
A4A3A0
A2
A1
A1
A0
CS PB7
PB6
PB0
LED
74LS138
8255CPU8086
…K7
K0
PA0
PA7
…
PA 口: 11110000 0FOH PB 口: 11110010 0F2H
PC 口: 11110100 0F4H 控制口: 11110110 0F6H
MOV DX, 0F6H
MOV AL, 10010000B OUT DX, ALTEST-IT : MOV DX, 0F0H IN AL, DX MOV DX, 0F2H OUT DX, AL JMP TEST-IT
二、键盘接口常用的键盘有机械式、薄膜式、电容式、霍尔效应式键盘分独立式和行列式
…K7
K0
独立式键盘
0 1 2 3
4 5 6 7
8 9 A B
C D E F
+ Vcc10K
10K
行列式键盘在行与列的交叉点位置安装按键。当
按键闭合,相应的行和列连接。
串键:多键同时按下或一键没按下又有新键按下
解决方法: 双键锁定 、 N键巡回①双键锁定:当检测到有两个或两个以上的键被按下时,只把最后释放的键当作有效键,并产生相应键码。②N键轮回:当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。
按键识别:行扫描法、线反转法①行扫描法:由程序对键盘进行逐行扫描,通过检测到的列输出状态来确定闭合键。为此,需要设置输入口、输出口各一个。
键码产生
②线反转法:该方法的基本思想是通过行列颠倒两次扫描来识别闭合键。为此,需要提供两个可编程的双向输入/输出端口。
例如,假定有一个 4×4 的矩阵键盘通过并行接口芯片 8255A 与微机相连。 8255A的 A 口定义为
输出口,与键盘行线相连; B 口定义为输入口,与键盘列线相连。 设 8255A 口地址为 40H, B 口地址为 41H ,控
制寄存器地址为 43H 。
MOV AL,82H ROL AL OUT 43H,AL MOV AH,AL BEGIN:MOV AL,0 IN AL,41H OUT 40H,AL AND AL,CLWAIT: IN AL,41H CMP AL,CL AND AL,0FH JNZ L2 CMP AL,0FH ADD CH,BH JZ WAIT MOV AL,AH MOV CX,7FFH DEC BL LO: LOOP LO JNZ L1 ST: MOV BL,04H JMP BEGIN MOV BH,04H L2: INC CH MOV AL,0FEH RCR AL MOV CL,0FH JC L2 MOV CH,0FFH MOV AL,CHL1: OUT 40H,AL JMP LEYTABLE
+5V
8255
PA3
PA2
PA1
PA0
PB4 PB5 PB6 PB7 PB0 PB1 PB2 PB3
0 1 2 34 5 6 78 9 A B
C D E F
线反转法 键 0的编码 =11101110
键 1的编码=11101101
线反转键盘接口
1. 各个 LED 可按共阳极或共阴极连接, 它们应分
别用不同的段码 , 经不同的驱动电路来驱动。
ABCD
abcdefg
段码输入
译码 /驱动器74LS247
共阳显示
ABCD
abcdefg
段码输入
共阴显示
译码 /驱动器 74LS249
其段驱动电路的输出为低电平时,该段的 LED导通并点亮 , 段驱动电路应能吸收额定的段导通电流
其段驱动电路的输出为高电平时,该段的 LED导通并点亮 , 段驱动电路应能供给额定的段导通电流。
+5v +5v
PB0PB1PB2PB3 PB4 PB5PB6 PB7
静态接口的设计
PA0PA1PA2PA3 PA4 PA5PA6 PA7
a b c d e f g
A B C D
DB0——DB7 DB0——DB7
5V
a b c d e f g
A B C D
a b c d e f g
A B C D
a b c d e f g
A B C D
3.段码的转换:
g f e d c b a
D6 D5 D4 D3 D2 D1 D0
0 1 0 0 0 0 0 0 40H
1 1 1 1 1 0 0 1 79H
2 0 1 0 0 1 0 0 24H
3 0 1 1 0 0 0 0 30H
4 0 0 1 1 0 0 1 19H
E 0 0 0 0 1 1 0 06H
F 0 0 0 1 1 1 0 0EH
… … … … … … … …
a
d
b
c
f
e
g
DP
专用接口芯片软件译码
软件译码把 0~9的十进制数转换成七段码TABLE DB 40H, 79H, 24H, 30H, 19H DB 12H, 02H, 78H, 00H, 18H
MOV AL, 5 MOV BX, OFFSET TABLE XLAT TABLE
1.打印机接口信号*数据信号接受 CPU 送来的数据信息 DATA1~DATA8 *控制信号 由 CPU 送出,控制打印机的动作 STB*状态信号 由打印机送给 CPU ,说明打印机的状态 ACK 应答信号 用于中断方式 BUSY忙信号 用于查询方式
四、并行打印机接口
3.打印机接口电路
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC4 PC5
PA0
PA1
PA2
PA3
PC0
PC2
IR2 去 8259
8255
打印机插座
INTRACK
ERRORPESLCTBUSY
DATA1 DATA2 DATA3DATA4 DATA5 DATA6 DATA7 DATA8
ACK
STBINIT
以查询方式打印“ THIS IS THE TEST ”! MOV DX, PORT-CTL MOV AL, 10010000B OUT DX, AL MOV CX,MESS-LEN MOV BX, OFFSET MESS-1XX1 : MOV DX, PORT-AXX : IN AL, DX TEST AL, 00001000B JNZ XX MOV AL, [BX] MOV DX, PORT-B OUT DX, AL MOV DX, PORT-CTL MOV AL, 00001000B OUT DX, AL MOV AL, 00001001B OUT DX, AL INC BX LOOP XX1