




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章并行接口芯片8255 10 1可编程的并行接口芯片8255A 5的结构10 2方式选择10 3方式0的功能10 4方式1的功能10 5方式2的功能10 68255应用举例 概述 并行接口 实现并行通信的接口就是并行接口 是在多根数据线上 以字节 字为单位与I O设备交换数据计算机与外设交换信息的过程中 并行通信 多位数据通过多条数据线同时传送 串行通信 多位数据通过同一条数据线按位传送 并行通信就是把一个字符的各数位用几条线同时进行传输 与串行通信 一位一位传输 相比 在相同传输率下 并行通信的信息实际传输速度快 信息率高 但并行通信比串行通信所用电缆多 随着距离的增加 电缆的开销会成为突出的问题 所以 并行通信总是用在数据传输率要求较高 而传输距离较短的场合 一个并行接口可以设计为只用来作为输出接口 也可以只用来作为输入接口 此外 还可以把它设计成既作为输入又作为输出的接口 在计算机内部数据是并行传送的 因此 并行接口电路相对简单 串行接口电路由于要进行串并行转换相对复杂 并行接口电路芯片常用的有两类 普通的8位锁存器及缓冲器可编程设置工作方式的并行接口 并行接口连接外设的示意图 10 1可编程的并行输入 输出接口芯片8255A 5的结构 它由以下几部分组成 1 数据端口A B C它有三个输入 输出端口 PortA PortB和PortC 每一个端口都是8位 都可以选择作为输入或输出 2 A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路 它们有控制寄存器 接受CPU输出的命令字 然后分别决定两组的工作方式 也可根据CPU的命令字对端口C的每一位实现按位 复位 或 置位 操作 8255A内部结构 3 数据总线缓冲器这是一个三态双向8位缓冲器 它是8255A与系统数据总线的接口 4 读 写和控制逻辑它与CPU的地址总线中的A1 A0以及有关的控制信号 相连 由它控制把CPU的控制命令或输出数据送至相应的端口 也由它控制把外设的状态信息或输入数据通过相应的端口 送至CPU 5 控制信号功能 1 ChipSelect 选片信号 低电平有效 由它启动CPU与8255A之间的通信 2 读信号 低电平有效 它控制8255A送出数据或状态信息至CPU 3 写信号 低电平有效 它控制把CPU输出的数据或命令信号写到8255A 4 RESET 复位信号 高电平有效 它清除控制寄存器并置所有端口 A B C 为输入方式 6 端口寻址8255A中有三个输入输出端口 另外 内部还有一个控制字寄存器 共有四个端口 要有两个输入端来加以选择 这两个输入端通常接到地址总线的最低两位A1和A0 1 与外设一边相连的引脚 PA7 PA0 端口A数据线 PB7 PB0 端口B数据线 PC7 PC0 端口C数据线 2 与CPU相连的引脚 D7 D0 双向数据线 与系统数据总线相连 CPU通过它向8255A发送命令 数据 8255A向CPU回送状态 数据 CS 片选信号 低电平有效 由系统地址总线经地址译码器产生 是8255A芯片被选中的信号 只有信号有效 CPU才能对8255A进行读写 当为高电平时 切断CPU与芯片的联系 RD 读信号 低电平有效 与系统读控制线相连 当有效时 CPU可以从8255A中读取输入数据 WR 写信号 低电平有效 与系统写控制线相连 当有效时 CPU可以向8255A写入控制字或数据 完成输出指令的功能 A1 A0 端口选择信号 与系统地址总线低位相连 用来对8255A内部三个数据端口及一个控制端口寄存器进行寻址 RESET 复位信号 高电平有效 与系统复位信号线 或自行设置的复位信号线相连 复位造成的结果是把所有内部寄存器清 0 且三个数据端口被自动设置为输入端口 二 8255A引脚说明 3 电源和地线 Vcc和GND 8255A的控制信号和传输动作的对应关系 10 2方式选择 8255A有三种基本的工作方式 1 方式0 Mode0 基本输入 输出 2 方式1 Mode1 选通输入 输出 3 方式2 Mode2 双向传送 8255A的工作方式 可由CPU用I O指令输出一个控制字到8255A的控制字寄存器来选择 这个控制命令字的格式如图所示 可以分别选择端口A和端口B的工作方式 端口C分成两部分 上半部随端口A 下半部随端口B 端口A能工作于方式0 1和2 而端口B只能工作于方式0和1 对A1A0 11的端口写入D7 1的数据 工作方式控制字 端口C的8位中的任一位 可用一条输出指令来置位或复位 其它位的状态不变 这个功能主要用于控制 对A1A0 11的端口写入D7 0的数据表示对口C进行位操作 注意 对A1A0 10的端口操作表示对C口进行字节操作 端口C置1 置0控制字 1例如 设一片8255A的口地址为60H 63H PC5平时为低电平 要求从PC5的引脚输出一个正脉冲 可以用程序先将PC5置1 输出一个高电平 再把PC5清O 输出一个低电平 结果 PC5引脚上便输出一个正脉冲 实现这个功能的程序段如下 MOVAL 00001011BOUT63H ALMOVAL 00001010BOUT63H AL 2 A口方式0 输出 B口方式0 输入 C口高4位输出 C口低4位输入MOVAL 10000011BOUT63H AL 3 PC7置1 PC3置0 MOVDX 263HMOVAL 00001111B PC7置1OUTDX ALMOVAL 00000110B PC3置0OUTDX AL 10 3方式0的功能 方式0是一种基本的输入或输出方式 在这种工作方式下 方式0不使用联络信号 也不使用中断 A口和B口可定义为输入或输出口 C口分成两个部分 高四位和低四位 C口的两个部分也可分别定义为输入或输出 在方式0 所有口输出均有锁存 输入只有缓冲 但无锁存 C口还具有按位将其各位清0或置1的功能 10 4方式1的功能 A口借用C口的一些信号线用作控制和状态线 形成A组 B口借用C口的一些信号线用作控制和状态线 组成B组 在方式1下 A口和B口的输入输出均带有锁存 A口 B口可以分别作为数据口工作在方式1 需要使用C口中特定的引脚作为选通和应答使用 C口中其余的引脚仍可工作在方式0 定义为输入或输出使用 适合用于中断式传送和程序查询方式I O传送 数据选通信号表示外设已经准备好数据 输入缓冲器满信号表示A口已经接收数据 中断请求信号请求CPU接收数据 PC4 PC5 PC3 PA7 PA0 INTEA IBFA INTRA STBA A口 方式1 输入 可通过对PC4置位或复位来设置INTEa 说明 当外设数据准备好以后 发出一个负脉冲选通信号STB 使A口打开锁存器接收数据 A口接收到数据以后 发出IBFA 由RD信号的上升沿使IBFA恢复低电平 STB和IBFA都变为高电平以后 如果INTEA允许 则8255A发出中断请求信号 以便使CPU接收数据 RD信号的下降沿使INTRA恢复低电平 可以通过对PC4的置位和复位来设置INTEA 可通过对PC2置位或复位来设置INTEB 外设响应信号表示外设已经接收到数据 输出缓冲器满信号表示CPU已经输出了数据 中断请求信号请求CPU再次输出数据 可通过对PC6置位或复位来设置INTEa 说明 当CPU向端口A输出数据以后 在WR的上升沿使OBFA变为低电平 当外设接收到数据以后 发出一个负脉冲ACKA送给8255A 使OBFA变为高电平 ACKA和OBFA都变为高电平以后 如果INTEA允许 则8255A发出中断请求信号 以便使CPU再次输出数据 WR的下降沿使INTRA恢复低电平 可以通过对PC6的置位和复位来设置INTEA B口 方式1 输出 可通过对PC2置位或复位来设置INTEB 10 5方式2的功能方式2是A组独有的工作方式 外设既能在A口的8条引线上发送数据 又能接收数据 此方式也是借用C口的5条信号线作控制和状态线 A口的输入和输出均带有锁存 A口可以作为数据口工作在方式2 相当于是A口工作在方式1的输入和输出的叠加 用PC6设置INTE1 用PC4设置INTE2 输入和输出中断通过或门输出INTR信号 8255应用举例P319 双机并行通信接口 乙机 接收 甲机 发送 CPU PA0 7 未用 CPU 8255 PC7 PC6 PC3 PB0 7 PC0 7 8255 PC4 PC0 PC5 7 PB0 7 PC1 2 3 PA0 7 0方式 1方式 OBF ACK INTRa 要求 在甲乙2台微型计算机之间并行传送1KB数据 甲机发送 乙机接收 甲机一侧的8255采用方式1工作 乙机一侧的8255采用方式0工作 两台微机的CPU与接口之间都采用查询方式交换数据 分析 双机均采用可编程并行接口芯片8255构成接口电路 只是8255的工作方式不同 设计 硬件连接如图甲机 方式1 A口 输出 PC6为ACK信号 PC7为OBF信号乙机 方式0 A口 输入 任选PC0 PC4作为联络信号端口地址均为300h 303h INCBXDECCXL MOVDX 302HINAL DXANDAL 08HJZLMOVDX 300HMOVAL ES BX OUTDX ALINCBXDECCXJNZLMOVAX 4C00HINT21H 编程 甲机发送程序 MOVDX 303HMOVAL 10100000B OUTDX ALMOVAL 00001101BOUTDX ALMOVAX 030HMOVES AXMOVBX 00HMOVCX 3FFHMOVDX 300HMOVAL ES BX OUTDX AL 端口a 方式1 输出端口c的PC6置1将030h 0000h内存中的一个字节送甲机8255的A口 产生OBF信号 将端口C读入al 检查PC3 intra 上是否为高电平若有中断请求 则继续送数 乙机接收程序 MOVDX 303HMOVAL 10011000BOUTDX ALMOVAL 00000001BOUTDX ALMOVAX 040HMOVES AXMOVBX 00HMOVCX 3FFHL1 MOVDX 302HINAL DXANDAL 10HJNZL1 MOVDX 300HINAL DXMOVES BX ALMOVDX 303HmovAL 00000000BOUTDX ALNOPNOPMOVAL 00000001BOUTDX ALINCBXDECCXJNZL1MOVAH 4CHINT21H 端口a 方式0 输入 c口高四位输入 c口低四位输出端口c的PC0置1将c口读入al 检查PC4是否为0 即甲机是否发送给乙机有效的OBF信号 将端口a读入al 再送入内存中端口c的PC0置0产生ACK端口c的PC0置1 ack置1 甲机的PC3会给cpu发出intra请求再送数据 应用举例 例1 在一系统中 要求8255工作在方式0 A口为输入 B口 C口为输出 Moval 10010000BOut63h al 送控制字到控制字寄存器 Calldelay1Inal 60h 从A口输入数据Calldelay2moval data1Out61h al 从B口输出数据Calldelay3moval data2Out62h al 从C口输出数据 例2 假定在一个系统中 要求8255A B均工作在方式1 端口A为输出 端口B为输入 PC4 PC5为输入 禁止端口B中断 允许端口A中断 设端口地址为1230h 1233h Moval 10101111B 控制字Movdx 1233h 控制寄存器地址Outdx al 送入控制字寄存器Moval 00001001B A口的INTE PC4 置1Outdx al 送入控制字寄存器Moval 00000100B B口的INTE PC2 置0Outdx al 送入控制字寄存器 8255A的应用举例一 基本输入输出应用举例在工业控制等实际应用中 经常需要检测某些开关量的状态 例如 在某一系统中 有8个开关K7 K0 要求不断检测它们的通断状态 并随时在发光二极管lED7 LED0上显示出来 开关断开 相应的LED点亮 开关合上 lED熄灭 我们选用8086CPU 8255A和74LSl38译码器等芯片 构成如图所示的硬件电路 8255A的A口作输入口 8个开关K7 K0 分别接PA7 PA0 B口为输出口 PB7 PB0分别接显示LED7 LED0 8255A的RD WR和RESET引脚分别与CPU的相应输出相连 8255A的数据线D7 D0与8086的低8位数据总线D7 D0相连 从上一章的讨论可知 这时8255A的4个口地址都应为偶地址 A0必须总等于0 用地址线的A2 A1来选择片内的4个端口 图中 地址线A7接译码器的G1 M IO而与G2A相连 A6 A5接与非门输入端 与非门输出与G2B相连 当A7A6A5 111 A4A3A0 100时 Y4 0 选中8255A 这样 4个端口地址分别为F0H F2H F4H和F6H 对应于8255A的A口 B口 C口和控制字寄存器 编程时先要确定方式选择控制字 由于A口工作于方式0输入 B口为方式O输出 C口未用 控制字中与C口对应的位可以被置为0 这样 写入控制端口F6H的控制字为10010000B 完成初始化后 即可将A口的开关状态读入寄存器AL 若开关合上 AL中的相应位为O 断开则为1 当把AL中的内容从B口输出时 相应于O的位上的LED熄灭 表示对应的开关是合上的 否则LED点亮 指示开关断开 具体程序如下 M0VDX OF6HMOVAL 1001OOOOBOUTDX ALTEST IT MOVDX OFOHINAL DXMOVDX OF2HOUTDX ALJMPTEST IT 控制字寄存器 控制字 写入控制字 指向A口 从A口读入开关状态 指向B口 B口控制LED 指示开关状态 循环检测 习题1 8255A为连接打印机的接口 工作在方式0 输出工作过程 需要打印时 查询打印机是否忙 不忙时通过8255A发送一个字符给打印机 为使打印机接收数据 要生成一个选通脉冲 初始值是1 置0 再置1 8086 8255A 打印机 D7 D0 PA PC6 PC2 STB BUSY 查询式打印机接口示意图 习题1题解 A口 方式0 输出数据下C口 方式0 PC2输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济南市2025-2026学年九年级下学期语文月考测试试卷
- 集安市2025-2026学年九年级上学期语文期末模拟试卷
- 高速铁路道岔结构课件
- 电芯活化知识培训内容总结
- 医保局学习教育总结评估报告范文
- 电脑板焊接基础知识培训课件
- 高考场景课件
- qa考试试题及答案
- office考试试卷及答案
- 陕西省渭南市澄城县2022-2023学年九年级上学期期中化学试题(含答案)
- 乏力诊治与管理专家共识解读 2
- 2025亚洲杯男篮+《热血征程砥砺前行》课件-2025-2026学年高中励志主题班会
- 2025-2030牛结核病防控技术进展与行业影响分析报告
- 2024年泰州市靖江市公安局招聘警务辅助人员真题
- GB/T 45817-2025消费品质量分级陶瓷砖
- JJG 693-2011可燃气体检测报警器
- 学校安全隐患排查整治表
- 工程项目管理课程设计实例
- 中医运动养生PPT课件
- 用友U8ERP模块功能介绍
- 支撑切割施工方案A版
评论
0/150
提交评论