标签:应用 技术 mode art 功能 产生 方式 例题 设置
8255A可编程外围设备接口(programmable perphheral interface,PPI)是一种通用的可编程并行I/O接口器件。它可以作为Intel系列微处理器或其它系列微处理器的接口器件,可以将任何与TTL兼容的I/O设备与微处理器连接。在与主频不高于8MHz的微处理器一起工作时,不需要插入等待周期。
它有24个可编程I/O引脚,分为两组,每组12个,可以以3种不同的操作方式工作。它的每个I/O引脚可以提供2.5mA的吸入电流,最大4mA。8255A常常用作键盘和打印机端口。它的价格低廉,使用方便,得到了广泛的应用。
由图可得:
(1)数据总线缓冲器
D7~D0与系统数据总线相连,负责与CPU进行数据交换。包括输入输出数据、控制字和状态字。
(2)读/写控制逻辑
接收来自CPU的地址信息和控制信息。
(3)A组控制和B组控制
这两组控制逻辑电路接收来自CPU的控制字,控制两组端口的工作方式及读/写操作。A组控制端口A和端口C的高4位,B组控制端口B和端口C的低4位。
(4)端口A、B、C
8255A有3个8位数据输入/输出端口:端口A、端口B和端口C,分别简称为A口、B口和C口。它们对外的引线分别是PA7~PA0、PB7~PB0和PC7~PC0。C口可分成两个4位的端口:C口高4位(PC7~PC4)和C口低4位(PC3~PC0)。
三个端口按组编程
端口A和端口B都有一个8位数据输入锁存器和一个8位数据输出锁存/缓冲器。端口C有一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器。
端口C可以按位操作。
双列直插,40根引脚
D7~D0:数据信号线
CS:片选信号输入引脚,低电平有效
RD:读信号输入引脚,低电平有效
WR:写信号输入引脚,低电平有效
RESET:复位信号输入引脚,高电平有效。用于将8255A控制字寄存器清“0”,并将A、B、C口置成输入状态
A1、A0:端口选择信号输入引脚
8255A可以无条件方式、查询方式和中断方式完成CPU与外设的数据交换。
以无条件方式工作时,端口A、B和C都可以作为数据输入/输出端口。
以查询或中断方式工作时,A口与B口可以作为数据输入/输出端口,C口作为握手联络信号,负责输出控制信息或输入状态信息。
8255有三种工作方式:方式0、方式1、方式2;
方式0最适用于无条件传送方式;
也能用于查询工作方式,比较勉强,这时可以把C口的高4位定义为输入口,输入外设的状态信号,而将C口的低四位定义为输出口,输出控制信息;这时可用A、B口传送数据;
方式0不能工作在中断方式;
A口、B口作为数据的输入口或输出口,但数据的输入输出要在控制信号的控制下,控制信号由C口的某些位来提供;
方式1适用于程序查询和中断控制方式,它不能工作在无条件传送方式下;
选通输出
在方式1下,A口、B口都可以选通输出数据,C口的6条线作为选通控制信号:PC3、PC6、PC7配合A口,PC0、PC1、PC2配合B口;
OBF:输出缓冲器满信号,低电平有效,当A口/B口有数据时,OBF就会变成低电平,高电平时,CPU可往A口/B口放送数据
ACK:外设收到数据的应答信号
INTE:中断允许状态
INTR:中断请求信号,高电平有效
总结:
查询方式
查询端口C的BIT7,如果是0则等待;如果不是0,则CPU发送数据。
WAIT: IN AL,PORTC # 从端口C读取数据
TEST AL,BIT7
JZ WAIT
MOV AL,[SI]
OUT PORTA,AL
中断方式
选通输入
A口、B口都可以选通输入数据,C口的6条线作为选通控制信号:PC3、PC4、PC5配合A口,PC0、PC1、PC2配合B口;
方式1:
STB:输入选通信号,外设用它将数据锁存于输入数据缓冲器中
IBF:数据输入缓冲器满,STB的应答信号,高电平有效
INTE:中断允许状态
INTR:中断请求信号,高电平有效
只有A口可以工作在这种方式下。既能发送数据,又能接收数据;它还要利用C口的5条线作为控制信号线; A口的输入输出均具有数据锁存能力,数据的输入输出均可以引起中断;
方式2适用于程序查询和中断控制方式。它不能工作在无条件传送方式下。
这时B口可以工作在方式0或方式1,C口剩余的3条线可以作为输入输出线或方式1下的控制线。
方式选择控制字
【例题】
? 设8255的端口地址为FBC0~FBC3H,A口设置方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。
控制字为:10010001B => 91H
8255初始化程序为:
# 由8255的端口地址为FBC0~FBC3H可知,控制端口为FBC3H
MOV DX, 0FBC3H # 以字母F开头,须在前面加一个0
MOV AL, 91H
OUT DX, AL
按位操作控制字
设置PC0为置位,则:00000001
设置PC4为复位,则:00001000
【例题】
? 设8255的端口地址为FBC0~FBC3H,A口设置方式0输出,B口方式0输入,C口高4位方式0输出,C口低4位方式0输入,利用C口PC5产生连续的方波信号,信号的高、低电平宽度可调用延时子程序DELAY实现。
控制字为:10000011B =>83H
8255初始化程序为:
MOV DX, 0FBC3H
MOV AL, 83H
OUT DX, AL
FB : MOV AL, 0BH #00001011B 高电平
OUT DX, AL ;PC5置位
CALL DELAY ;维持高电平
MOV AL, 0AH
OUT DX, AL ;PC5=0
CALL DELAY ;维持低电平
JMP FB ;连续输出方波信号
8255A的D7~D0分别与系统总线的D7~D0相连;
RD、WR分别与系统总线的RD、WR信号或者IOR和IOW?信号相连;
A1、A0分别与系统地址线A1、A0相连;
CS由系统地址总线A2~A15译码生成。
在PC机中,8255A的I/O端口地址为60H63H和端口378H37BH。端口60H63H用于键盘、扬声器和定时器,端口378H37BH用于并行打印机(LPT1)端口。
8255A包含A口、B口、C口三个独立的数据端口,及一个控制端口。各端口地址如下:
A1A0=00 A口
A1A0=01 B口
A1A0=10 C口
A1A0=11 控制端口
该图表示8255A有四个地址,因为这里有两根线?A1?A0,这两根线决定了8255有四个地址
8255要正常工作,必须CS为有效,而CS与Y2相连,也就是Y2必须输出有效信号
如果Y2要有效,必须让74LS138译码器有效,而要74LS138译码器有效,必须使得:G1为高电平,G2A为低电平,G2B为低电平这三个一定要满足
C B A 决定Y2是否有效 (不一定是Y2,所以C B A 的值根据下面的值变化)
C??B??A
0???0???0??Y0有效
0???0???1??Y1有效
0???1???0??Y2有效
0???1???1??Y3有效
1???0???0??Y4有效
1???0???1??Y5有效
1???1???0??Y6有效
1???1???1??Y7有效
把图中CPU的所以地址线A7~A0列出来计算得出地址值
? 8255A初始化,设定端口的工作方式和输入/输出方向,即将方式控制字写入控制端口。
初始化程序段如下:
MOV DX, PORT-Ctrl ;8255A的控制口地址送DX
MOV AL, mode ;将方式选择控制字内容送AL
OUT DX, AL ;写入控制口,完成初始化
利用8255A可以很方便地连接线性键盘和矩阵键盘。
图上每行每列比行扫描法都多了一个电阻
标签:应用 技术 mode art 功能 产生 方式 例题 设置
原文地址:https://www.cnblogs.com/Hhhighway/p/12813664.html