并行通信及其接口电路(8255A)
7.并行通信及其接口电路
1.简单并行接口电路
锁存器74LS373
- 8位D锁存器电路
- 输入端1D~8D,控制端G
- 输出端1Q~8Q,输出允许端/OE
缓冲器74LS244
- 三态输出8位缓冲器电路
- 输入输出分为两路
- 1A1~1A4,/1G控制,有效则1Y1~1Y4值变为1A1~1A4
- 2A1~2A4同
数据总线收发器74LS245
- 三态输出的8位双向总线收发器
- 16个数据段A1A8与B1B8
- /G:允许收发器的操作
- DIR:1:A->B ;0: B->A
2.可编程并行接口电路8255A的结构及工作原理
内部组成
-
数据总线缓冲器
- 双向三态8位数据缓冲器,是8255A与CPU数据总线的接口
-
端口:A、B、C
- 端口C可作为一个独立的端口使用,但通常是配合端口A和端口B的工作,为这两个端口的输入输出提供控制联络信号
-
A组控制与B组控制
- A组控制:控制端口A及端口C的高4位
- B组控制:控制端口B及端口C的低4位
-
读写控制逻辑
工作方式
-
方式选择控制字(D7=1)
- D6D5:A组方式选择0、1、2
- D4:0,端口A输出;1,端口A输入
- D3:
- D2:B组方式选择0、1
- D1:0,端口B输出;1,端口B输入
- D0:
-
方式0(基本输入/输出方式)
-
端口A和端口B可以通过方式选择控制字规定为输入口或输出口
-
端口C的高4位及低4位,也可分别由方式选择控制字规定为输入口或输出口
-
四个并行口构成2^4种使用组态
-
常用于与简单外设之间的数据传送
-
方式选择控制字(D7=1)
- D3:0,PC7~PC4输出,1,输入
- D0:0,PC3~PC0输出,1,输入
-
端口C按位置1/置0控制字(D7=0)
- D6~D4:无意义
- D3D2D1:选择PC0~PC1
- D0:0,置0;1,置1
-
-
方式1(选通的输入/输出方式)
端口A和端口B工作于方式1时,需要利用端口C接收选通信号或,这些信号由端口C的固定数位来接收或提供,即信号与数位之间存在着对应关系。
1.输入
-
/STB(Strobe):输入,选通后,8255A接收一个外设送来的8位数据
-
IBF(Input Buffer Full):输出,输入缓冲器满,/STB=1置位
-
INTE(Interrupt Enable):内部中断允许触发器状态信号,/STB=1置位
-
INTR(Interrupt Request):输出,中断请求信号,/STB=1、IBF=1、INTE=1时,置为高电平,向CPU发出中断请求信号;读信号**/RD下降沿将INTE置为低电平**,即CPU开始读时,结束中断请求信号
-
端口C
- PC7PC6:D3=0,输出,D3=1,输入
- PC5:IBFA
- PC4:/STBA
- PC3:INTRA
- PC2:/STBB
- PC1:/IBFB
- PC0:INTRB
2.输出
-
/OBF:输出,输出缓冲器满,/WR置位,/ACK复位
-
/ACK:输入,选通后,8255A输出一个外设送来的8位数据
-
INTE(Interrupt Enable):内部中断允许触发器状态信号,/ACK=1置位
-
INTR(Interrupt Request):输出,中断请求信号,/ACK=1、/OBF=1、INTE=1时,置为高电平,向CPU发出中断请求信号;写信号**/WR下降沿将INTE置为低电平**,即CPU开始写时,结束中断请求信号
-
端口C
- PC7:**/**OBFA
- PC6:/ACKA
- PC5PC4:D3=0,输出,D3=1,输入
- PC3:INTRA
- PC2:/ACKB
- PC1:/OBFB
- PC0:INTRB
3.状态字
-
-
方式2(带有选通信号的双向I/O方式)
1.
-
可以看成是A口工作在方式1输入和输出的叠加
-
INTR=1,输入/输出缓冲器满
-
/ACK:外设已将数据读走
-
端口C
- PC7:**/**OBF
- PC6:/ACK
- PC5:IBF
- PC4:/STB
- PC3:INTR
- PC2~PC0:留给端口B
2.状态字
-
3.8255A的应用
例1:8255A工作于方式0,用8255A作为以查询方式工作的打印机接口,如图7.19所示。 当主机开始打印输出时,先测试打印机忙(BUSY) 信号,如果打印机处于忙状态,则BUSY信号为1;反之,则BUSY信号为0。当检测到BUSY信号为0时,则主机可通过8255A向打印机输出一个字符。此时,还需输出一个选通信号(负脉冲) 给打印机的STB端,用此负脉冲作为字符送到打印机输入缓冲器的打入脉冲。设打印字符存放在内存2000H单元 。8255A的端口地址为: 端口A—D0H,端口B—D1H,端口C—D2H,控制口—D3H
- 不使用端口B,PC6输出,PC2输入,C端口高4位输出,低四位输入,方式字为10000001
1 |
|
例2:LED/开关接口,要求7段LED循环显示0-F十六个数,每个显示五秒,显示二十遍。
1 | SEGCOD DB 0C0H,0F9H... |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 喵喵虎冲呀!
评论