微机接口芯片(1)—— 可编程并行接口芯片8255
- 总结微机原理课学习的若干芯片
- 教材——《微机原理与接口技术》
文章目录
- 一、简介
- 二、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内部主要部件
数据端口:
A/B组控制电路:
根据设定的8255方式字来控制8255的工作方式,其中的控制寄存器接受CPU输出的方式字(就是用户写入的),然后分别决定两个组的工作方式;也可根据控制字对C口进行单独的位置位复位操作。
(2)8255引脚信号
与外设接口信号引脚
(1)A口的8个I/O引脚:PA7~PA0
(2)B口的8个I/O引脚:PB7~PB0
(3)C口的8个I/O引脚:PC7~PC0与系统总线接口信号引脚
(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)说明:
- 此方式适用于所有端口,C的上下半口可以分别配置为输入输出
- 此方式没有规定固定的用于应答的联络信号线
- 端口配置为方式0,则其作为输入时具有缓冲功能;作为输出时具有锁存功能
2. 方式1 —— 选通的输入输出
(1)说明:
- 此方式适用于端口A、B,需要C口某些为配合作为控制或通讯联络信号
- C口在配合A、B时有固定的搭配关系
- C口中当前不需要配合A、B工作的引脚,可以单独定义为I/O使用
(2)方式1下的输入组态:
- 注意下C组端口的匹配,这个是固定死的
信号含义说明
补充:in
指令(端口读指令)会使RD(上划线)
拉低时序图
操作说明:
- 采用查询方式输入:CPU先查询8255的输入缓冲是否满(IBF),若IBF=1,则CPU从8255读入数据
- 采用中断方式输入:CPU先用C口的位控制功能使能INTE,当INTR信号触发CPU外部中断时从8255读入数据
(3)方式1下的输出组态:
注意下C组端口的匹配,这个是固定死的
信号含义说明
时序图
3. 方式2 —— 双向的数据传送方式
(1)说明:
- 此方式仅适用于A端口,C组端口配合其工作
- 此方式规定了固定的用于应答的联络信号线
- 它实际是方式1输入和输出的组合,区别在于C口某些选通控制或应答信号有些区别,此外输入和输出共用一共一个选通信号
- 因为输入输出中断共用一个信号,因此INTR为高时,需要对中断类型再进行判断(通过查C口状态)
- 因为方式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)查询法打印
- 按照上面给出的原理图进行打印
//核心代码如下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
- 如果原理图如下连接,代码要进行修改
- 由于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相关推荐
- 微机原理与接口技术 学习笔记(五) 8255(可编程并行接口芯片) 与 8253(可编程定时/计数器)
文章目录 一,可编程并行接口芯片8255A 1. 8255A的结构 1.1 数据端口 1.2 端口控制逻辑 1.3 数据总线缓冲器 1.4 读/写控制逻辑 2. 方式选择 2.1 方式选择控制字 2. ...
- 可编程并行接口芯片 8255A
文章目录 7. 可编程并行接口芯片 8255A 1. 结构,由 4 部分构成: 2. 8255A 的引脚 3. 8255A 的工作方式:3种 4. 8255A 的控制字 (初始化) 7. 可编程并行接 ...
- 【微机原理与接口技术】实验5 可编程并行接口(8255)
可编程并行接口(8255) 8255并行I/O输入/输出实验 并行口键盘扫描实验 8255并行I/O输入/输出实验 P8255A EQU 288H ;P8255B EQU 0602H P8255C E ...
- 【微机原理与接口技术】学习笔记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) 存 ...
- 【Proteus仿真8086】并行接口芯片8255
这次实验内容根据B站一个老师录制的讲解视频,老师通过导入emu8086编译好的EXE文件到8086中进行仿真,实际上可以在Proteus中直接通过构建工程编译源程序.接口芯片的内容比较复杂,建议先学习 ...
- 微型计算机接口期末,微机接口技术期末复习题及其答案 (2)
微机接口技术期末复习题及其答案 微机接口技术综合练习题 一.填空题 1.接口的基本功能就是输入缓冲与输出锁存.2.数据输入/输出的三种方式就是程序控制.中断与DMA. 3.在查询输入/输出方式下,外设 ...
- 可编程并行接口8255
8255是通用的并行接口芯片,通过编程实现多种工作方式,满足不同应用需求. 8255A是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口.具有3个通道3种工作方式的可编程并行接口芯 ...
- 微机原理-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的 ...
- 微机接口实验一 :8255并行接口实验
微机接口实验一 :8255并行接口实验 8255接口芯片非常重要的,使用非常简单,在以后的实验会经常使用到 1.1 实验内容 编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关 ...
最新文章
- 仿抖音底部导航效果(二)
- Linux 开机显示:welcome to emergency mode
- python数据降维_使用python实现多维数据降维操作
- es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路
- python竖着输出编码_在Python中使用管道标准输出时设置正确的编码
- 面向对象——类设计(五)
- 电子元器件简介——场效应管篇
- 香港服务器托管单线路、双线路以及多线路如何区别
- 【转】如何评价 Apple 新推出的编程语言 Swift?
- 一人干翻专业机构,27岁华裔小伙一战成名!搞出美国新冠最准预测模型,彭博:Superstar
- Java for循环-水仙花数
- 格子玻尔兹曼机(Lattice Boltzmann Method)系列3:LBM在不可压缩流动下的边界条件算法
- python执行方式和设置_03-Python执行方式和Pycharm设置
- 山西省阳泉市谷歌高清卫星地图下载
- 点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
- 【机器学习】聚类分析与主成分分析(附例题源码)
- 洛谷 4830 Tomoya loves Nagisa
- 西邮计算机网络实验,2018ThoughtWorks西邮实验室纳新题
- MacBook苹果电脑绕过BootCamp安装Win10双系统
- Flutter开发(十二):Flutter调用硬件,插件,第三方服务和平台通知
热门文章
- 用c语言400行代码小游戏,程序员400行代码制作翻牌游戏解决无聊时间
- php网页源码物业管理系统mysql数据库web结构html布局计算机软件工程
- 数据采集实验-爬取李开复博客并保存在csv和mongodb中
- 机器学习10—多元线性回归模型
- BEGAN实现不同人脸的生成(tensorflow实现)
- ContentProvider导致App闪退问题分析
- ZROI集训D1,D2
- python创建excel表格_python使用VBA:Excel创建图表(转)
- Consul服务注册中心--Consul工作原理
- SpringBoot瘦身