type
status
date
slug
summary
tags
category
icon
password

2 可编程并行接口芯片8255A

8255A是一种通用的可编程并行I/O接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MCS51、Z80CPU系统等。8255A具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,通用性强。使用灵活,可为CPU与外设之间提供并行输入/输出通道。

2.1 8255A的结构和引脚功能

(1)接口总览

notion image
  • 与CPU的接口
    • 数据总线缓冲器
    • 读/写控制逻辑
  • 内部逻辑
    • A组 控制
    • B组 控制
  • 外设接口
    • A组 A口 PA~7~ ~PA~0~
      • A组 C口上半部 PC~7~ ~PC~4~
      • B组 C口下半部 PC~3~ ~PC~0~
    • B组 B口 PB~7~ ~PB~0~

(2)引脚总览

notion image
8255A是双列直插式,40(24+8+2+6)个引脚
  1. 24根端口数据线——接外设(A口、B口、C口)
  1. 8根系统数据线——接CPU数据总线D~7~~D~0~
  1. 电源线:+5V,地线
  1. 6根输入控制线
  • RESET:复位信号,RESET=1时,8255内部复位,所有内部寄存器清零,A、B、C三个端口自动为基本型(方式0)输入口
    • CS‾CS:片选信号,CS=0时,该芯片被选中
    • RD‾RD:来自CPU的I/O命令
    • WR‾WR:来自CPU的I/O命令
    • A1、A0:接CPU的地址线A1、A0

(3)端口总览

  1. 端口:接口电路中能和CPU直接交换信息的寄存器 8255A有4个端口寄存器
  1. 与非门前要都是1才能输入0,片选选中 如果系统产生片选信号的译码电路如图,则:(00 0110 00A1A2)
  • A数据口地址=60H
  • B数据口地址=61H
  • C数据口地址=62H
  • 控制口地址=63H
notion image
A1
A0
WR(上划线)
RD(上划线)
CS(上划线)
对应完成功能
0
0
0
1
0
CPU数据→A口数据寄存器
0
1
0
1
0
CPU数据→B口数据寄存器
1
0
0
1
0
CPU数据→C口数据寄存器
1
1
0
1
0
CPU送来的命令字→控制寄存器
0
0
1
0
0
读A口数据→CPU
0
1
1
0
0
读B口数据→CPU
1
0
1
0
0
读C口数据→CPU
  • CS为低电平有效,即0.
  • WR,RD均为低电平有效,W为读信号,R为写信号
  • A1A0为片内寄存器选择信号,00为A,01为B,10为C,11为控制信号
 

2.2 8255A的工作方式

方式
说明
适用端口
方式0
基本的输入输出
A、B、C上半口、C下半口
方式1
选通的输入输出
A、B(C配合)
方式2
双向传输
A(C配合)
(非基本控制方式)
单独控制每个位的输出电平
C

(1)方式0——基本输入输出

1.此方式适用于所有端口,C的上下半口可以分别配置为输入输出
2.此方式没有规定固定的用于应答的联络信号线
3.端口配置为方式0,则其作为输入时具有缓冲功能;作为输出时具有锁存功能

(2)方式1——选通输入输出(应答式输入输出)

1.此方式适用于端口A、B,需要C口某些为配合作为控制或通讯联络信号
2.C口在配合A、B时有固定的搭配关系
3.C口中当前不需要配合A、B工作的引脚,可以单独定义为I/O使用
notion image
notion image
notion image
notion image

(3)方式2——双向输入输出

1.此方式仅适用于A端口,C组端口配合其工作
2.此方式规定了固定的用于应答的联络信号线
3.它实际是方式1输入和输出的组合,区别在于C口某些选通控制或应答信号有些区别,此外输入和输出共用一共一个选通信号
4.因为输入输出中断共用一个信号,因此INTR为高时,需要对中断类型再进行判断(通过查C口状态)
5.因为方式2是方式1两种状态的组合,其工作原理是显而易见的

2.3 8255A的初始化

(1)方式选择控制字(D7=1)

实现对8255A的各个端口的选择,用于确定各端口的工作方式及数据传输方向
notion image
 

(2)C口按位置/复位控制字(D7=0)

实现对端口C的每一位进行控制
notion image

(3)8255A的初始化编程

例:在8086系统中,设8255A的A口输出,B口输入,PC1置位,PC2复位。已知:8255端口地址为60H~63H,试编程对8255A进行初始化。
8255工作方式控制字为:
notion image
编写对8255的初始化程序片段,要求:使A口为方式0输入,B口为方式0输出,C口作为8位的输出口使用。8255控制端口的地址为12BH。如果要读8255 A口数据,程序如何?
 

2.4 8255A的应用举例

例1:设8255A的A口和B口工作在方式0,A口作为输入端口,接有2个开关;B口为输出端口,接有8个发光二极管。系统硬件电路如图所示,不断扫描开关Ki,当开关K0闭合时,点亮LED0、LED2、LED4、LED6,其它LED暗;当开关K1闭合时,点亮LED1、LED3、LED5、LED7,其它LED暗;当开关K0和K1同时闭合时退出。设8255A端口A、端口B、端口C及控制端口的地址分别为200H~203H。试编写程序
notion image
解:8255A的控制字为:
notion image
 

3 可编程串行接口芯片8251

3.1 串行通信概述

(1)并行通信和串行通信
串行通信和并行通信都是一种通信传输方式,都适用于计算机与计算机、计算机与外设之间的数据通信,在传输中存在相互转换的关系。
  • 并行数据通信是以字节(8bit)或字为单位的数据传输方式,需要多根数据线和控制线,在工业通信中很少使用。
  • 串行数据通信是以二进制的位(bit)为单位的数据传输方式,每次只传送一位。串行通信最少只需要两根线就可以连接多台设备,组成控制网络,可用于距离较远的场合。工业控制设备与计算机之间的通信几乎都采用串行通信方式
两者主要区别如下:
  • 一次传输的传输量不同
    • 并行通信传送八路信号,一次并行传送传送完整的一个字节信息。串行通信在一个方向上只能传送一路信号,一次只能传送一个二进制位,传送一个字节信息时,只能一位一位地依次传送。
notion image
notion image
  • 传输速度不同
    • 串行的传输速度慢,但是对线路的要求低一些。 并行的对线路的要求高,但是速度快。
  • 传输距离不同
    • 串行线路仅使用一对信号线,线路成本低并且抗干扰能力强,因此可以用在长距离通讯上;而并行线路使用多对信号线(还不包括额外的控制线路),线路成本高并且抗干扰能力差,因此对通讯距离有非常严格的限制。
(2)同步通信与异步通信
(3)串行通信的传送方向
notion image
单工--半双工--全双工
  • 单工:数据只在一个方向上传输,不能实现双方通信。
    • 例如:电视、广播。
  • 半双工:允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,其实际上是切换的单工。
    • 例如:对讲机。
  • 全双工:允许数据在两个方向上同时传输
    • 例如:手机通话。
(4)信号的调制与解调
(5)异步通信规程
 

3.2 串行接口原理

 
 
 

3.3 可编程通信8251A USART

概述

基本功能:
  • 数据格式的自动生成
  • 串并转换
  • 传输速率控制
  • 错误检测
  • 电平转换

结构

notion image
  • 面向CPU的连接信号
    • D0-D7三态双向数据线
    • ~RD & ~WR读写信号线
    • ~CS片选
    • RESET芯片复位,需要宽度大于6个时钟周期的高电平
    • C/~D地址线。高电平访问控制寄存器,低电平访问数据寄存器
  • 状态信号
    • TxRDY(out)发送器准备好。可以作为中断请求信号
    • RxRDY(out)接收器准备好。可以作为中断请求信号
    • TxE(out)发送器空
  • 时钟信号
    • ~TxC(in)发送时钟,异步方式下为x1/x16/x64倍波特率。下降沿移出数据
    • ~RxC(in)接受时钟,同上
    • CLK(in)工作始终

编程

  • 方式命令字 - 设定通信方式和数据格式
  • 工作命令字 - 指定芯片完成某种操作(如发送、接收、内部复位、检测同步字符等
  • 状态字 - 报告芯片状态
异步方式命令字:
notion image
同步方式命令字:
notion image
工作命令字:
notion image
间断符(中止符) - 大于连续10个0,通知对方停止发送
状态字:
notion image
错误标志:
  • 奇偶错误PE(Parity Error) - 奇偶校验失败
  • 帧错误FE(Frame Error) - 收到的字符格式不符合规定(如缺少停止位
  • 重叠错误OE(Overrun Error) - 接收寄存器还没有把数据送出时就受到新的数据
8251A初始化流程:
notion image
 
 
 

📎 参考文章——第11章

  • 一些引用
  • 引用文章
 
💡
有关问题,欢迎您在底部评论区留言,一起交流~
通知接口:可编程定时器/计数器
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏