已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章并行通信与并行接口8255A 8255A引脚功能及内部结构端口寻址控制字和命令字初始化及编程工作方式应用举例 主要内容 并行通信和并行接口 并行接口的特点 在多根数据线上以字节或字为单位传递信息 一般在接口与外设之间还要设置两根握手信号线 并行接口与外设交换数据时 即使只用到一位 也要一次输入 输出8位或16位 不象串行通信有严格的格式 按传送方式分类 只作为输入接口 单向 如卡片读入机接口只作为输出接口 单向 如并行打印机接口作为输入 输出接口 双向两个单向通道 一入 一出 一个双向通道 入 出不能同时 按电路结构分类 硬件连接接口 工作方式及功能用硬件连接设定可编程接口 工作方式及功能用软件编程方法设定 并行接口分类 不可编程的并行接口芯片 74LS244 单向缓冲 74LS245 双向缓冲 74LS373 单向缓冲锁存 74LS374 双向缓冲锁存 可编程的并行接口芯片 8255A可编程并行口除有缓冲 锁存功能外 还增加了状态寄存器 控制方式 中断 端口译码等功能 常用并行接口芯片 6 1Intel8255A芯片引脚及内部结构 1234567891011121314151617181920 4039383736353433323130292827262524232221 PA3PA2PA1PA0GNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2 8255A PA4PA5PA6PA7RESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3 和CPU一边相连的D7 D0RESETA1 A0 引脚信号可分为两组 和外设一边相连的PA7 PA0PB7 PB0PC7 PC0 端口A 端口B A组控制 B组控制 端口C 上半部分 端口C 下半部分 PB7 PB0 PC3 PC0 PA7 PA0 PC7 PC4 数据总线 数据总线缓冲器 读 写控制逻辑 RD WR A0A1 RESET CS 8255A的内部结构框图 D7 D0 数据总线缓冲器 双向三态8位数据缓冲器 与系统数据总线相连 其作用是通过它与CPU进行数据交换 及向8255A发送控制字及命令 读 写控制逻辑 负责管理8255A的数据传输过程 它接收来自CPU地址总线及控制总线的输入信号 然后向A组和B组的控制部件发送控制命令 片选 CPU从8255A读取数据或状态信号 允许CPU把数据或控制命令写入8255A A1 A0 端口选择信号 RESET 复位信号 有效时所有内部寄存器都被清除 三个数据端口均被置成输入方式 8255A的各组成部分及引脚功能 8255A的寻址 A1A0访问的端口00端口A01端口B10端口C11控制字寄存器 8255A的控制信号组合功能 CSRDWRA1A0传输说明00100数据从端口A送数据总线00101数据从端口B送数据总线00110数据从端口C送数据总线01000数据从数据总线送端口A01001数据从数据总线送端口B01010数据从数据总线送端口C01011如D7为1 则往控制寄存器写入控制字 如D7为0 对C端口的置位 复位命令 8255A端口地址确定 A9A8A7A6M IOA5A4A3 G1Y0 AY7 G2A G2BCB A2A1A0 0 CS A1A0 D0 7 D0 7 PA7 PA0 PB7 PB0 PC7 PC0 外设 8255A 74LS138 A口308HB口30AHC口30CH控制端口30EH 与8086连接时 Y1 A组和B组控制 A组和B组中的每个控制部件都从读写控制逻辑接收 命令 从内部数据总线接收 控制字 以此决定两组端口的工作方式 A组控制部件 端口A和端口C的高四位 B组控制部件 端口B和端口C的低四位 端口A B C 每个端口都可用软件编程使其组成不同的功能 输入 输出 各端口在结构 功能上有不同特点 端口A 一个8位的数据输出锁存器 缓冲器一个8位的数据输入锁存器端口B 一个8位的数据输出锁存器 缓冲器一个8位的数据输入缓冲器端口C 一个8位的数据输出锁存器 缓冲器一个8位的数据输入缓冲器端口C可以通过设定工作方式而分成两个4位的端口 每个4位端口包含一个4位输入缓冲器和一个4位输出锁存缓冲器 它们分别用来为端口A和端口B提供输出控制信号和输入状态信号 6 28255A的控制字 8255A的控制字分两类 方式选择控制字 用于定义各端口的工作方式 置位 复位控制字 用于对C端口的任一位进行置位或复位操作 这两种控制字都被写入控制字寄存器端口 用标志位 D7位 来区分 D7 1为方式选择控制字D7 0为置位 复位控制字 3 0 0输出1输入 端口 0输出1输入 组方式选择 0方式 1方式 PC7 PC4 0输出1输入 端口 0输出1输入 组方式 00方式 01方式 10方式 方式选择控制字的标志位 方式选择控制字的格式 方式字 1 D7D6D5D4D3D2D1D0 1置 0置 无定义 位选择 000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7 端口C的置 复位控制字格式 D7D6D5D4D3D2D1D0 0 x x x 端口C的置 复位命令标志 例1 在8086系统中 假设一块8255A的控制端口的地址为0506H 试编写初始化程序 将端口A置成方式1且作为输入端口 PC6和PC7作为输出 端口B置成方式1且作为输入端口 MOVDX 0506HMOVAL 0B6HOUTDX AL 分析 B6H 1 01 1 0 1 1 0 例2 在8086系统中 要求在8255A的端口C的PC7上产生一个正脉冲 8255A的控制端口地址为0826H 试写出程序段 MOVDX 0826HMOVAL 0EH 00001110BOUTDX AL PC7置0MOVAL 0FH 00001111BOUTDX AL PC7置1MOVAL 0EH 00001110BOUTDX AL PC7置0 PC7 例3 在8086系统中 若8255A端口C的PC3输出低电平 现要求在上PC3产生一个正跳变 8255A的控制端口地址为EEH 试写出程序段 方法1 利用对C端口的置 复位命令MOVAL 07H 00000111BOUT0EEH AL 方法2 直接在端口C输出数据MOVAL 80H 10000000BOUT0EEH ALMOVAL 08H 00001000BOUT0ECH AL 6 3 8255A的工作方式 方式0 基本输入 输出方式方式1 选通输入 输出方式方式2 双向输入 输出方式 方式0 基本输入 输出方式 基本特点 任何一个端口可作为输入口 也可作为输出口 各端口之间没有规定的必然关系 各个端口的输入或输出 可有16种不同的组合 可适用于多种场合 应用 用于无条件传送方式 简单I O 不需要了解外设情况 用于程序查询方式 使用端口C的某些位作为传输控制 用端口A或端口B及端口C的其它位进行数据传送 方式0的应用举例 无条件传送 在某系统中 有8个开关K7 K0 要求不断检测它们的状态 并在发光二极管LED7 LED0上显示出来 开关断开 则相应的LED点亮 开关闭合则LED熄灭 连接如图所示 A8 19D0 D7RDWRRESETM IO8086CPUA7A6A5A4A3A0A2A1 G174138G2AG2BY4CBA D0 D7RDWRRESETCS8255AA1A0 PA7PA6 PA0 PB7PB6 PB0 5v K0 K6 K7 LED7 LED6 LED0 端口地址 端口A D0H端口B D2H端口C D4H控制端口 D6H 方式选择和初始化 端口A 方式0 输入端口B 方式0 输出 控制字 1001X00XB 90H MOVAL 10010000B 控制字OUT0D6H AL 写入控制字端口TEST IT INAL 0D0H 从A口读入开关状态OUT0D2H AL 写B口 控制LEDJMPTEST IT 循环检测 方式0的应用举例 查询方式 纸带输入机 BUSY READY 数据输出 数据输入 STA RIGHT PC6PC2 PC4PC0 PB7 PB0 PA7 PA0 打印机 8255A 方式选择和初始化 端口A 方式0 输出端口B 方式0 输入端口C 高4位 方式0 输出端口C 低4位 方式0 输入 若端口地址为 端口A F4H端口B F5H端口C F6H控制端口 F7H 控制字 10000011 83H 初始化INITCPROCMOVAL 83H 设方式控制字OUT0F7H ALMOVAL 0DH PC6置1 STA为高电平OUT0F7H AL 00001101BMOVAL 09H PC4置1 00001001B OUT0F7H ALRETINITCENDP 打印机控制程序LPSTPROCLP1 INAL 0F6H 读PC2状态 忙 等待ANDAL 04H 00000100BJNZLP1MOVAL X 不忙 送字符到A口OUT0F4H ALMOVAL 0CH 00001100B PC6置0OUT0F7H ALMOVAL 0DH 00001101B PC6置1OUT0F7H AL 输出负脉冲 启动打印机 使A口数据输出到打印机上RETLPSTENDP 纸带输入机控制程序RDSTPROCRD1 MOVAL 08H 00001000B PC4置0OUT0F7H AL 启动输入机RLP INAL 0F6H 读PC0状态 数据没准备好 等待ANDAL 01H 00000001BJZRLPINAL 0F5H 准备好 从B端口读入一个字符MOVX ALMOVAL 09H 00001001B PC4置1 OUT0F7H AL 数据已取走 输入机启动信号撤除RETRDSTENDP 例1 现有一个干路和支路构成的十字路口 每条路有红 黄 绿信号灯 用LED代 信号灯的亮 灭由8086CPU和8255A构成的控制系统控制 如图所示 其中8255A的端口地址为D0H D2H D4H D6H 按下面要求控制信号灯转换 1 干路绿灯亮 支路红灯亮 延时3秒2 干路黄灯亮 支路红灯亮 延时0 5秒3 干路红灯亮 支路绿灯亮 延时3秒4 干路红灯亮 支路黄灯亮 延时0 5秒5 前四个过程周而复始要求 1 画硬件接口信号连线 标出地址线A的下标2 编写控制程序 要有文字注释 延时子程序略 可用文字代替 应用举例 干路 红黄绿 PA0 2 支路 红黄绿 PA3 5 A8 19D0 D7RDWRRESETM IO8086CPUA7A6A5A4A3A0A2A1 G174138G2AG2BY4CBA D0 D7PA0RDPA1WRPA2RESETPA3PA4PA5CS8255AA1A0 连线不唯一 干路 红黄绿 PA0 2 支路 红黄绿 PA3 5 程序如下 MOVDX 0D6H 指向控制口MOVAL 10001011B 写控制字OUTDX ALH MOVDX 0D0H 指向A口MOVAL 00001100B 0CH OUTDX AL调延时3秒子程序MOVAL 00001010B 0AH OUTDX AL调延时0 5秒子程序MOVAL 00100001B 21H OUTDX AL调延时3秒子程序MOVAL 00010001B 11H OUTDX AL调延时0 5秒子程序JMPH 例2 在8086系统中 8255A的控制端口地址为316H 其A口的8个引脚PA0 PA7接有8个发光管LED0 LED7 编程使LED0 LED7依次点亮1秒钟 并循环反复 采用软件延时的方法 已知1秒钟延时子程序的标号地址为DELAY MOVAL 1000XXXXB 方式0 A口输出MOVDX 316H 指向控制端口OUTDX AL 写入控制字MOVDX 310H 指向A口MOVAL 01H 00000001BAA OUTDX AL 向A口写数据CALLDELAY 调延时子程序ROLAL 1 AL循环左移一位JMPAA 方式1 选通输入 输出方式 A口 B口都能工作于方式1 在此方式下 它们作一个8位的单向I O接口 A组工作在方式1时 A口用于8位并行数据传送 传送方向由控制字中的A口I O方向位确定 C口的高5位用于A口的数据交换控制 其中每一位的用途随A口的数据传送方向而定 B组工作在方式1时 B口用于8位并行数据传送 传送方向由控制字中的B口I O方向位确定 C口的低3位用于B口的数据交换控制 其中每一位的用途随B口的数据传送方向而定 在方式1下 对外的数据交换由8255自动完成 而系统的数据传输方式采用中断方式 方式1的特点 方式1是一种选通输入 输出方式 因此 需设置专用的联络信号线或应答信号线 以便对I O设备和CPU两侧进行联络 这种方式通常用于查询 条件 传送或中断传送 数据的输入输出都有锁存能力 PA和PB为数据口 而PC口的大部分引脚分配作专用 固定 的联络信号用 对已经分配做联络信号的C口引脚 用户不能再指定做其它用途 各联络信号之间有固定的时序关系 传送数据时 要严格按照时序进行 输入 输出操作过程中 产生固定的状态字 这些状态信息可作为查询或中断请求之用 状态字可从PC口读取 单向传送 一次初始化只能设置在一个方向上传送 不能同时作两个方向的传送 PC6 PC5 PC3 INTEA PA7 PA0 STBA IBFA INTRA RD PC4 PC7 A口方式1输入控制字 10111 0XXX INTE 1允许中断0禁止中断 方式1 选通输入方式 PA工作在方式1且作为输入时 固定的指定 PC4作为STBA PC5作为IBFA 输入缓冲区满信号InputBufferFull PC3作为INTRA 中断请求信号 A口 B口方式1输入控制字 1XXXX11X 方式1 选通输入方式 B口 方式1 选通输入时序 A口方式1输出控制字 10101 0XXX INTE 1允许中断0禁止中断 方式1 选通输出方式 A口 PC4 PC7 PC3 INTEA PA7 PA0 ACKA OBFA INTRA WR PC6 PC5 B口方式1输出控制字 1XXXX10X 方式1 选通输出方式 B口 PC2 PC1 PC0 INTEB ACKB OBFB INTRB WR PB7 PB0 WR OBF INTR ACK 数据有效 tWIT tWOB tAOB tAK tAIT tWB 方式1的输出时序 PA 方式1的状态字 8255的状态字是为查询方式提供了状态标志位 如IBF和OBF 由于8255不能直接提供中断矢量 因此8255采用查询中断方式 CPU要通过读状态字来确定中断源 实现查询中断 如INTRA和INTRB分别表示A口和B口的中断请求 方式1的状态字 输入和输出操作的状态字是不同的 使用时应 对号入座 查相应的状态位 若采用查询方式 则一般是查INTR是否置位 当然亦可查IBF和OBF位 状态字中设置了INTR位 但8255A只能提供查询中断 而不能提供向量中断 若需采用向量中断 则需借助中断控制器来提供中断向量 状态字中的INTE位 是控制标志位 控制8255A能否提出中断请求 因此它不是I O操作过程中自动产生的状态 而是由程序通过按位置位 复位命令来设置和清除 说明 A口和B口可分别作为数据口工作在方式1 并且任何一个端口 PA PB 可作为数据输入口或者数据输出口 当A口或B口工作在方式1时 固定指定PC中的3位数据线配合它们工作 被指定的PC口线的工作方式不受方式选择控制字的控制 PC中未指定配合PA PB的信号线 由方式选择控制字规定其工作在输入或输出 注意 方式1应用 例1 初始化 8086系统 A口方式1 输出 PC3 PC0为输出8259A的IR3的中断类型号为0BH中断向量放在0段的2CH 2DH 2EH 2FH连续四个单元中8255的控制端口地址为C6H PC0 打印机选通信号 PC3 自动作为INTR信号 D0 7 MAIN MOVAL 0A0H 1010X0X0BOUT0C6H ALMOVAL 01H 0XXX0001BOUT0C6H AL PUSHDSXORAX AX MOVDS AXMOVAX 2000H MOVWORDPTR 002CH AXMOVAX 1000H MOVWORDPTR 002EH AXMOVAL 0DH 00001101BOUT0C6H AL POPDSSTI 设8255方式字 PC6 1 INTEA 1 允许8255中断 中断服务程序在内存1000H 2000H处 TINTR MOVAL DI 从内存读字符送A口OUT0C0H ALMOVAL 00H PC0 0 产生打印机OUT0C6H AL 选通信号MOVAL 01H PC0 1OUT0C6H AL IRET 方式1的应用 例2 PA7 PA0PC4PC7PC68255APC3PC1PC2PC0PB7 PB0 控制台打印机 键盘输入 数据输出 数据输入 IBF 8086CPU用查询方式通过8255并行接口控制一台打印机 8255的端口A作为打印机接口 工作于方式1输出 端口B作为键盘接口 工作于方式1输入 端口C作为控制和状态端口 PC4设定为打印机的选通脉冲信号 要求从键盘输入100个字符并存入首址为0200H开始的存储区 再将这些数据送到打印机打印 假设8255的端口A的地址为FFF8H INTRAINTRB MOVSI 0200HMOVDI SIMOVCX 100MOVAL 0A6H 方式字MOVDX 0FFFEHOUTDX ALMOVAL 09H PC4置1OUTDX AL 选通无效ONE MOVDX 0FFFCHINAL DX 读C口ANDAL 02H 测IBFJZONEMOVDX 0FFFAHINAL DX 读B端口STOSB AL DI TWO MOVDX 0FFFCHINAL DX 读C口ANDAL 80H 测OBFJZTWOLODSB SI ALMOVDX 0FFF8HOUTDX AL 写A端口MOVDX 0FFFEHMOVAL 08H PC4置0OUTDX ALMOVAL 09H PC4置1OUTDX AL 启动打印机 LOOPONEHLT 开始 初始化令 SI 存储区首址 SI DI 字符数送CX控制字 0A6H PC4置1 AL 端口B内容 存储单元 AL AL 存储单元 端口A AL 在PC4端形成脉冲 结束 CX 0 IBF 1 Y N N Y Y N 程序流程图 方式2 选通双向输入 输出方式 双向总线方式 方式2可以通过端口A的数据线与外部设备进行双向通信 但不能同时进行 这种方式只限于A口使用 工作时 即可采用中断方式 也可采用查询方式来传送数据 A口设定方式2时 C口的5根线PC3 PC4 PC5 PC6 PC7将自动作为相应的控制线配合A口进行输入 输出操作 在方式2下 PA口是双向的 外设可经PA把数据送给CPU 输入 也可经PA从CPU接收数据 输出 A组方式2控制字 110XXXXX 方式2 选通双向输入 输出方式 INTRA 8255完成向外设输出数据 输入完成或输出完成时 均可向CPU发中断 STBA 外设送给8255的选通信号 8255使用该信号把外设的数据存入输入锁存器中 IBFA 当8255输入锁存器有数据时 IBFA有效 CPU可查询该信号 OBFA 当8255输出缓冲器内有数据时 通知外设来取数据 ACKA 当外设收到OBFA后 外设向8255发出ACKA信号 该信号开启8255端口A的输出缓冲器 从而把数据送给外设 INTE1 INTE2 内部信号 标志 输入或输出完成时 8255均可从PC3上发出INTRA信号 但是 输入完成时是否允许中断 取决于INTE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北武汉银鹏控股股份限公司招聘4人易考易错模拟试题(共500题)试卷后附参考答案
- 2025湖北恩施州利川市属国企公开招聘副总经理1人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年地方国企考试题目及答案
- 2025年动物病理学专业考试试题及答案
- 2025四川虹信软件股份有限公司招聘大数据产品开发岗位测试笔试历年备考题库附带答案详解2套试卷
- 2025四川绵阳虹源科技发展有限责任公司招聘工艺部长等岗位7人笔试历年难易错考点试卷带答案解析2套试卷
- 2025四川广电网络绵阳分公司融媒体中心招聘聘用人员4人笔试历年典型考试题附带答案详解(3卷合一)
- 2025四川九强通信科技有限公司招聘综合管理岗1人笔试历年备考题库附带答案详解2套试卷
- 2025云南昆明巫家坝建设发展有限责任公司招聘23人笔试历年常考点试题专练附带答案详解2套试卷
- 管理博士面试题及答案
- 【课件】7-1 慢充不充电故障诊断与排除
- 火龙罐技术课件
- HVAC 专业术语(暖通空调专业英文缩写词)
- 公司试用期转正考核管理制度
- 中药学课件第十一章.祛风湿药
- 航空油料计量统计员(初级)理论考试复习题库大全-上(单选题汇总)
- 钢结构的检测
- 机动车维修竣工出厂合格证
- GB/T 4772.1-1999旋转电机尺寸和输出功率等级第1部分:机座号56~400和凸缘号55~1080
- 2023年浙江10月自考生物药剂及药物动力学试题
- GB/T 16921-2005金属覆盖层覆盖层厚度测量X射线光谱方法
评论
0/150
提交评论