本文主要是介绍【微机原理及接口技术】可编程并行接口芯片8255A,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【微机原理及接口技术】可编程并行接口芯片8255A
文章目录
- 【微机原理及接口技术】可编程并行接口芯片8255A
- 前言
- 一、8255A的内部结构和引脚
- 1.与外设接口(数据端口)
- 2.与处理器接口
- 二、8255A的工作方式
- 三、8255A的编程
- 1. 写入方式控制字:控制字格式
- 2. 读写数据端口
- 3. 读写端口C
- 四、8255A的应用
- 1.开关量的检测
- 2.LED数码管的驱动
- 3.多个LED数码管的显示
- 总结
前言
本篇文章就8255芯片展开,包括8255A的内部结构和引脚,8255A的工作方式,8255A的编程,8255A的应用等展开详细介绍。
并行数据传输方式
以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据
适合于外部设备与微机之间进行近距离、大量和快速的信息交换
例如:微机与并行接口打印机、磁盘驱动器
微机系统中最基本的信息交换方法
例如:系统板上各部件之间,接口电路板上各部件之间
8255A简介
包括四个端口——1个控制端口,3个数据端口
还包括端口的译码和控制电路、中断控制电路
包括三种输入输出工作方式
一、8255A的内部结构和引脚
1.与外设接口(数据端口)
端口A:PA0~PA7
A组,支持工作方式0、1、2
端口B:PB0~PB7
B组,支持工作方式0、1
端口C:PC0~PC7
仅支持工作方式0
A组控制高4位PC4~PC7
B组控制低4位PC0~PC3
端口A:PA0~PA7
常作数据端口,功能最强大
端口B:PB0~PB7
常作数据端口
端口C:PC0~PC7
可作数据、状态和控制端口
分两个4位,每位可独立操作
控制最灵活,最难掌握
2.与处理器接口
二、8255A的工作方式
- 方式0:基本输入输出
端口A、端口B、端口C高4位和低4位——输入口或输出口
适用于无条件传送和查询方式的接口电路 - 方式1:选通输入输出
端口A、端口B——输入口或输出口
端口C——端口A和端口B的联络信号、输入口或输出口
适用于查询和中断方式的接口电路 - 方式2:双向选通输入输出
端口A——输入口和输出口
端口C——一部分作为端口A的联络信号
适用于双向传送数据的外设
适用于查询和中断方式的接口电路
方式1输入引脚:A端口
方式1输入引脚:B端口
方式1输入联络信号
方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能
STB——选通信号,低电平有效*
由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器
IBF——输入缓冲器满信号,高电平有效
8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器
INTR——中断请求信号,高电平有效
8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据
方式1中断控制
8255A的中断由中断允许触发器INTE控制
置位允许中断,复位禁止中断
对INTE的操作通过写入端口C的对应位实现,只要对那一位置位/复位就可以控制INTE触发器
选通输入方式下
端口A的INTEA对应PC4
端口B的INTEB对应PC2
方式1输出引脚:A端口
方式1输出引脚:B端口
方式1输出联络信号
OBF——输出缓冲器满信号,低有效*
8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走
ACK——响应信号,低有效*
外设的响应信号,指示8255A的端口数据已由外设接收
INTR——中断请求信号,高有效
当输出设备已接收数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据
三、8255A的编程
初始化过程中:写入方式控制字
利用控制端口地址,A1A0=11
工作过程中:
通过数据端口来读写外设数据:
利用端口A、B和C的地址,A1A0依次等于00、01、10
通过控制端口来写入端口C的位控制字:
利用控制端口地址,A1A0=11
通过端口C来读取状态信息:
利用端口C的地址,A1A0=10
1. 写入方式控制字:控制字格式
2. 读写数据端口
初始化编程后:
当数据端口作为输入接口时,CPU执行IN指令将从输入设备得到外设数据
当数据端口作为输出接口时,CPU执行OUT指令将把CPU的数据送给输出设备
8255A具有锁存输出数据的能力
对输出方式的端口同样可以输入
不是读取外设数据
读取的是上次CPU给外设的数据
读写数据端口:示例
利用8255A的输出锁存能力,可实现按位输出控制
对输出端口B的PB7位置位的程序段:
mov DX,FFFDH ;设B端口地址为FFFDH
in AL,DX ;读出B端口原输出内容
or AL,80H ;使PB7=1
out DX,AL ;输出新的内容
3. 读写端口C
归纳1
C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出
在控制上,C端口高4位和A端口编为A组,C端口低4位和B端口编为B组
归纳2
当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用
其余引脚仍可设定工作在方式0
归纳3
对端口C的数据输出有两种办法
利用端口C的地址:
向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效——字节操作
利用控制端口地址:
向控制端口写入端口C的位控制字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器——位操作
端口C的位控制字
归纳4
读取的C端口数据有两种情况
未被A和B端口征用的引脚:
将从定义为输入的部分(上半部或下半部)读到引脚输入信息;
将从定义为输出的部分(上半部或下半部)读到输出锁存器中的信息
被A和B端口征用作为联络线的引脚:
将读到反映8255A状态的状态字
四、8255A的应用
作为通用的并行接口电路芯片,8255A具有广泛的应用
应用在IBM PC/XT微机上
应用于打印机接口电路
连接简易键盘
驱动LED数码管
……
1.开关量的检测
例:在工业控制过程中,经常需要检测某些开关的状态。例如,在某一系统中,有8个开关K7~K0,要求不断地检测它们的通断状态,并随时在发光二极管上显示。通过8255A的端口A读入开关状态信息,使端口B、端口C连接的发光二极管的状态与端口A开关状态相呼应,并重复执行。假设8255A在系统中端口A、B、C及控制口的地址分别为100H,101H,102H,103H,试设计出硬件电路图,并编写初始化程序。
(1) 硬件电路
(2) 相应的8255A程序为:
MOV DX,103H ;控制端口地址送给DX
MOV AL, 10010000B ;控制字
OUT DX,AL ;写入控制字
L1: MOV DX,100H ;端口A地址送给DX
IN AL,DX ;从端口A读入开关状态
MOV DX,101H ;端口B地址送给DX
OUT DX,AL ;从端口B输出,控制LED
XOR AL, 0FFH ;AL← AL取反
MOV DX,102H ;端口C地址送给DX
OUT DX, AL ;从端口C输出
JMP L1 ;循环
2.LED数码管的驱动
发光二极管LED是最简单的显示设备
由7段LED就可以组成的LED数码管
LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中
LED数码管可以显示内存地址和数据等
(1) LED数码管的工作原理
主要部分是7段发光管
顺时针分别称为a、b、c、d、e、f、g
有的产品还附带有一个小数点h
通过7个发光段的不同组合
主要显示0~9
也可以显示A~F(实现16进制数的显示)
还可以显示个别特殊字符,如-、P 等
LED数码管的结构
(2) 单个LED数码管的显示
3.多个LED数码管的显示
8个数码管:用2个8位输出端口控制
硬件上用公用的驱动电路来驱动各数码管
软件上用扫描方法实现数码显示
段控制端口电路
位控制端口电路
控制哪个(位)数码管显示
共阴极时,当位控制端口的控制码某位为高电平时,经反相驱动,便在相应数码管的阴极加上了低电平,这个数码管就可以显示数据
段控制端口作用
控制一个数码管显示什么数码
段控制端口送给数码管要显示字形的段码
段控制端口由所有数码管共用
通过位、段控制端口的共同作用才能确定哪个数码管显示什么数码
总结
到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!
这篇关于【微机原理及接口技术】可编程并行接口芯片8255A的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!