• 总结微机原理课学习的若干芯片
  • 教材——《微机原理与接口技术》

文章目录

  • 一、简介
  • 二、8255的内部结构及引脚信号
    • (1)8255内部主要部件
    • (2)8255引脚信号
  • 三、8255的工作方式
    • 1. 方式0 —— 基本的输入输出控制
      • (1)说明:
    • 2. 方式1 —— 选通的输入输出
      • (1)说明:
      • (2)方式1下的输入组态:
      • (3)方式1下的输出组态:
    • 3. 方式2 —— 双向的数据传送方式
      • (1)说明:
      • (2)组态逻辑
  • 四、8255编程应用
    • 1. 8255方式选择控制字
      • (1)说明
      • (2)示例
    • 2. 端口C置复位控制字
      • (1)说明
      • (2)示例
  • 五、8255作为打印机接口示例
    • (1)查询法打印
    • (2)中断法打印

一、简介

  • 并行接口是传输并行数据的接口,输入/输出都是并行格式的信号。8255是常用的8位可编程并行接口芯片

二、8255的内部结构及引脚信号

  • 下图是8255的内部结构,它由数据总线缓冲器读写控制逻辑部件A/B两组控制电路数据端口A/B//C组成

  • 数据总线缓冲器、读写控制逻辑部件是所有接口芯片共有的部分,下面说明其他8255特有的部分

(1)8255内部主要部件

  1. 数据端口:

  2. A/B组控制电路:

    根据设定的8255方式字来控制8255的工作方式,其中的控制寄存器接受CPU输出的方式字(就是用户写入的),然后分别决定两个组的工作方式;也可根据控制字对C口进行单独的位置位复位操作。

(2)8255引脚信号

  1. 与外设接口信号引脚
    (1)A口的8个I/O引脚:PA7~PA0
    (2)B口的8个I/O引脚:PB7~PB0
    (3)C口的8个I/O引脚:PC7~PC0

  2. 与系统总线接口信号引脚
    (1)数据线:D7~D0
    (2)控制信号:

    信号 功能 有效电平 说明
    RD(上划线) 读控制 从数据口读数据
    WR(上划线) 写控制 向数据口写数据
    CS(上划线) 使能芯片 芯片使能
    RESET 复位芯片 清除所有内部寄存器,同时把3个数据口设为输入
    A1/A0 选中端口 A1/A0=00、01、10、11分别选中A、B、C、控制口

三、8255的工作方式

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

1. 方式0 —— 基本的输入输出控制

(1)说明:

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

2. 方式1 —— 选通的输入输出

(1)说明:

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

(2)方式1下的输入组态:

  1. 注意下C组端口的匹配,这个是固定死

  1. 信号含义说明

    补充:in指令(端口读指令)会使RD(上划线)拉低

  2. 时序图

  3. 操作说明:

    1. 采用查询方式输入:CPU先查询8255的输入缓冲是否满(IBF),若IBF=1,则CPU从8255读入数据
    2. 采用中断方式输入:CPU先用C口的位控制功能使能INTE,当INTR信号触发CPU外部中断时从8255读入数据

(3)方式1下的输出组态:

  1. 注意下C组端口的匹配,这个是固定死

  2. 信号含义说明

  3. 时序图

3. 方式2 —— 双向的数据传送方式

(1)说明:

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

(2)组态逻辑

四、8255编程应用

  • 8255控制的关键是写入控制字
  • 8255的控制字主要有两个:方式选择控制字端口C置复位标志字

1. 8255方式选择控制字

(1)说明

  • 方式选择控制字是用来选择上述三种工作方式的控制字
  • 写入的地址是8255控制口的地址(A1A0=11)

(2)示例

  • 编写对8255的初始化程序片段,要求:使A口为方式0输入,B口为方式0输出,C口作为8位的输出口使用。8255控制端口的地址为12BH。如果要读8255 A口数据,程序如何?
//对照方式选择控制字格式可得到控制字为:1001 0000B = 90H
MOV AL,90H  ;方式选择控制字
MOV DX,12BH ;由于端口号>256,用DX间接寻址
OUT DX, AL  ;写入控制寄存器//因为控制口12BH = 0001 0010 1011,最后连续的两个11必是A1A0,所以A口地址为128H
MOV DX,128H
IN AL, DX   ;读A口数据

2. 端口C置复位控制字

(1)说明

  • 端口C置复位控制字可以单独对8255的C组端口的8个位进行操作
  • 注意: 端口C置复位控制字也要写入控制寄存器

(2)示例

  • 使A口为方式1输入,且采用中断传送,B口采用方式0输出,其余C口的位作为输出。假设控制端口地址为63H。则程序段为:
MOV AL,10110000B     ;A口方式1输入,B口方式0输出,其余C口位输出
OUT 63H, AL         ;方式选择控制字写入控制寄存器
MOV AL,00001001B    ;置位/复位控制字,使PC4=1,即使INTE=1允许内部中断
OUT 63H, AL         ;置位/复位控制字写入控制寄存器

五、8255作为打印机接口示例

  • 在早期PC机中,常用8255作为打印机数据通信接口,原理图如下:
  • 经译码电路,得到的8255端口地址为3000H~300CH
  • 打印机时序要求如下
  • 方式按以上原理图连接8255,由A口方式1输出特性可知:在A口输出数据时会自动产生STB脉冲,符合打印机时序要求。因此只要打印前检查打印机BUSY状态,当BUSY=0时,CPU送数据到8255A口输出,8255自动给打印机STB脚送一个负脉冲选通信号,数据即可进入8255缓冲。打印结束后8255回复一个ACK信号,这样就可以继续打印下一个数据

(1)查询法打印

  1. 按照上面给出的原理图进行打印
//核心代码如下MOV AL,10101000B     ;方式选择字(C上半口输入PC4)MOV DX,PROTCtrl            ;300CH控制端口OUT DX,AL             ;方式选择控制字写入控制口MOV CX,Counter         ;打印字符个数Counter装入计数器MOV BX,OFFSET Pstrings   ;代打印内容是字符串Pstrings,一次传一个字符
LP1:  MOV DX,PORTC          ;3008H向C端口IN AL,DX               ;读取C口状态AND AL,00010000B         ;屏蔽无关位, 取BUSY对应的PC4JNZ LP1                  ;BUSY=1等待,直到不忙
LP2:  MOV  AL,[BX]      MOV DX,PORTA            ;3000HOUT DX,AL             ;送一个字符到8255的A口INC BXLOOP LP1
  1. 如果原理图如下连接,代码要进行修改

  • 由于B口方式0打印时不会自动产生选通信号给STB,所有这里手动控制PC7输出选通信号
 MOV  AL,81H         ;8255方式选择控制字10000001B(B下输出C半口输入PC0)MOV DX,CTRLP     ;控制端口OUT DX,AL          ;方式选择控制字写入控制口MOV CX,Counter     ;打印字符个数装入计数器MOV BX,OFFSET PstringsMOV AL,000001111B  OUT DX,  AL         ;PC7=1(C端口置复位命令字),/STB=1
LP1:    IN AL,DX            ;读取C口状态(准备检查BUSY状态)AND AL,00000001B     ;屏蔽无关位, 取BUSY对应的PC0JNZ LP1              ;等待接收新数据,BUSY=1等待,直到不忙
LP2:    MOV AL,[BX]         MOV DX,PORTBOUT DX,AL           ;送一个字符到8255的B口MOV DX,CTRLPMOV AL,000001110B  ;OUT DX,  AL         ;PC7=0(C端口置复位命令字),/STB=0NOP              ;延时NOPMOV AL,000001111B  ;OUT DX,  AL         ;PC7=1(C端口置复位命令字),/STB=1MOV DX,PORTCINC BXLOOP LP1

(2)中断法打印

暂略

微机接口芯片(1)—— 可编程并行接口芯片8255相关推荐

  1. 微机原理与接口技术 学习笔记(五) 8255(可编程并行接口芯片) 与 8253(可编程定时/计数器)

    文章目录 一,可编程并行接口芯片8255A 1. 8255A的结构 1.1 数据端口 1.2 端口控制逻辑 1.3 数据总线缓冲器 1.4 读/写控制逻辑 2. 方式选择 2.1 方式选择控制字 2. ...

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

    文章目录 7. 可编程并行接口芯片 8255A 1. 结构,由 4 部分构成: 2. 8255A 的引脚 3. 8255A 的工作方式:3种 4. 8255A 的控制字 (初始化) 7. 可编程并行接 ...

  3. 【微机原理与接口技术】实验5 可编程并行接口(8255)

    可编程并行接口(8255) 8255并行I/O输入/输出实验 并行口键盘扫描实验 8255并行I/O输入/输出实验 P8255A EQU 288H ;P8255B EQU 0602H P8255C E ...

  4. 【微机原理与接口技术】学习笔记5 I/O接口和并行接口芯片8255A

    文章目录 6.1 I/O接口 6.1.1 I/O接口的功能 1. 采用I/O接口的必要性 2. 接口的功能 6.1.2 I/O端口及其寻址方式 1. I/O端口 2. I/O端口的寻址方法 (1) 存 ...

  5. 【Proteus仿真8086】并行接口芯片8255

    这次实验内容根据B站一个老师录制的讲解视频,老师通过导入emu8086编译好的EXE文件到8086中进行仿真,实际上可以在Proteus中直接通过构建工程编译源程序.接口芯片的内容比较复杂,建议先学习 ...

  6. 微型计算机接口期末,微机接口技术期末复习题及其答案 (2)

    微机接口技术期末复习题及其答案 微机接口技术综合练习题 一.填空题 1.接口的基本功能就是输入缓冲与输出锁存.2.数据输入/输出的三种方式就是程序控制.中断与DMA. 3.在查询输入/输出方式下,外设 ...

  7. 可编程并行接口8255

    8255是通用的并行接口芯片,通过编程实现多种工作方式,满足不同应用需求. 8255A是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口.具有3个通道3种工作方式的可编程并行接口芯 ...

  8. 微机原理-I/O并行接口和并行接口芯片8255A

    文章目录 一.I/O接口 1-1 I/O接口的功能 1-2 I/O端口及其寻址方式 1-3 CPU与外设间的数据传送方式 1-4 PC机的I/O地址分配 二.8255A的工作原理 2-1 8255A的 ...

  9. 微机接口实验一 :8255并行接口实验

    微机接口实验一 :8255并行接口实验 8255接口芯片非常重要的,使用非常简单,在以后的实验会经常使用到 1.1 实验内容 编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关 ...

最新文章

  1. 仿抖音底部导航效果(二)
  2. Linux 开机显示:welcome to emergency mode
  3. python数据降维_使用python实现多维数据降维操作
  4. es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路
  5. python竖着输出编码_在Python中使用管道标准输出时设置正确的编码
  6. 面向对象——类设计(五)
  7. 电子元器件简介——场效应管篇
  8. 香港服务器托管单线路、双线路以及多线路如何区别
  9. 【转】如何评价 Apple 新推出的编程语言 Swift?
  10. 一人干翻专业机构,27岁华裔小伙一战成名!搞出美国新冠最准预测模型,彭博:Superstar
  11. Java for循环-水仙花数
  12. 格子玻尔兹曼机(Lattice Boltzmann Method)系列3:LBM在不可压缩流动下的边界条件算法
  13. python执行方式和设置_03-Python执行方式和Pycharm设置
  14. 山西省阳泉市谷歌高清卫星地图下载
  15. 点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
  16. 【机器学习】聚类分析与主成分分析(附例题源码)
  17. 洛谷 4830 Tomoya loves Nagisa
  18. 西邮计算机网络实验,2018ThoughtWorks西邮实验室纳新题
  19. MacBook苹果电脑绕过BootCamp安装Win10双系统
  20. Flutter开发(十二):Flutter调用硬件,插件,第三方服务和平台通知

热门文章

  1. 用c语言400行代码小游戏,程序员400行代码制作翻牌游戏解决无聊时间
  2. php网页源码物业管理系统mysql数据库web结构html布局计算机软件工程
  3. 数据采集实验-爬取李开复博客并保存在csv和mongodb中
  4. 机器学习10—多元线性回归模型
  5. BEGAN实现不同人脸的生成(tensorflow实现)
  6. ContentProvider导致App闪退问题分析
  7. ZROI集训D1,D2
  8. python创建excel表格_python使用VBA:Excel创建图表(转)
  9. Consul服务注册中心--Consul工作原理
  10. SpringBoot瘦身