




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章输入 输出接口 I O接口是计算机与外设交换信息的中间桥梁 8 1输入 输出接口8 1 1输入 输出接口的交换信息CPU与外设交换的信息 数据信息 数字量 开关量 模拟量 状态信息 BUSY READY等 反映外设的状态 控制信息 CPU发出的命令如读写等 8 1 2输入 输出的控制方式CPU与外设数据传送方式 程序控制方式 无条件传送和有条件传送 中断控制方式 直接存储器存取方式 1 程序控制 无条件传送 当需要与外设交换数据时 直接执行I O指令 开始接 发数据 例1 无条件输入 O O O O O 5V K 1 D0 A0 A7 A8 A15 IOR MOVDX FFF7HINAL DXTESTAL 01JZ K闭合D0 0 K打开D0 1 A2 A3 A4 O 例2无条件输出 1 1 1 D0 D7 A0 A7 A8 A15 IOW O O O O 5V 5V D0 D7 CP O0 O7 74LS273 有锁存功能 MOVAL 81HMOVDX 0000HOUTDX AL O 无条件传送方式 简单接口 三态缓冲器 地址译码器 O O O O 地址总线 M IO RD 去CPU 数据 来自外设 输入加三态缓冲器 锁存器 地址译码器 O O O O 数据总线 数据 来自CPU 地址总线 M IO WR 到外设去 输出加锁存器 1 程序控制 查询方式 条件传送 查询方式输入过程的流程图 开始 初始化 数据是否准备好 输入一个字节到CPU 数据处理并送内存缓冲区 N 1 CPU从状态口中读取状态字 2 CPU检测状态字 满足条件 CPU从数据口输入 输出 数据 3 不满足条件 CPU重新读取状态字 外设 74273 1 1 1 1 D0 D7 D0 IOR A0 A7 A8 A15 IOW O 74244 CP D0 D7 O0 O7 BUSY O 8位缓冲 总线驱动器 8位D锁存器CP负脉冲输出上升沿锁存 状态 数据 CPU向外设输出数据 先查状态BUSY BUSY 0 外设忙 BUSY 1时 才能由数据口输出数据 MOVDX 0FFHA1 INAL DXANDAL 01HJZA1MOVAL BLOUTDX AL 数据缓冲器 锁存器 输入设备 三态缓冲器 地址译码 CLK D Q CLR 地址总线 数据 选通 5V M IO RD 图8 2查询输入接口电路 2 中断控制当外设需要与CPU进行数据交换时 由外设向CPU发出一个中断请求信号 CPU响应中断请求后 在中断服务程序中完成信息交换 3 DMA控制方式当某一外部设备需要输入 输出一批数据时 向DMA控制器发出请求 DMA接收到这一请求后 向CPU发出总线请求 若CPU响应DMA的请求 并把总线使用权赋给DMA控制器 数据可直接在DMA控制器操纵下进行 8 2并行通信与并行接口 8 2 1并行通信并行通信 多路信号同时进行传输 其特点 传输速度快 信息率高 通常用在传输距离较短和数据传输率较高的场合 8 2 2并行接口实现并行通信的接口就是并行接口 典型的并行接口和外部设备连接如图8 4 其中控制寄存器接收CPU的控制命令 状态寄存器提供各种状态供CPU查询 控制寄存器 输入缓冲寄存器 输出缓冲寄存器 状态寄存器 片选 A1 A2 地址译码 中断请求 准备好 RST RD WR DB CPU 输入数据准备好 STB 数据输入回答 IBF 输入数据 数据输出 数据输出准备好 数据输出回答 输入设备 输出设备 图8 4并行接口连接外部设备的示意图 1 并行接口的输入过程 外设将数据传送给接口 并使 STB 有效 接口收到数据后 使 IBF 有效 同时 输入准备好 状态位有效 或向CPU发中断请求 2 并行接口的输出过程 外设取走数据后 输出准备好 状态位有效 或发一个中断请求 当输出的数据到达输出缓冲寄存器后 接口会自动向外设发送一个信号通知外设 外设收到数据后 并往接口发一个 数据输出回答 信号 8 3可编程并行通信接口芯片8255A 8255A可为CPU与外设之间提供并行输入 输出的通道 可以通过软件来设置其工作方式 8 3 18255A的内部结构及其功能由8255A的内部结构图可见 8255A由以下几部分组成 1 并行输入 输出端口A 端口B和端口C 且各端口相互独立 PC口还具有按位置位 复位功能 3 数据总线缓冲存储器 2 A组和B组控制部件 4 读 写控制部件 A组控制 B组控制 端口C 上半部 端口C下半部 端口B O O O 数据总线缓冲器 读 写控制逻辑 端口A 数据总线 D0 D7 RDWRA0A1 RESET CS PA0 PA7 PC4 PC7 PC0 PC3 PB0 PB7 CPU接口 外设接口 内部结构图 1 PA PB和PC口 PC口具有按位置位 复位功能 内部数据总线 2 A组和B组控制部件 3 数据总线缓冲存储器 4 读 写控制部件 8255与系统的连接示意图 D0 D7 WR RD A1 A0 CS DB IOW IOR A1 A0 译码器 8255 A口 B口 C口 D0 D7 外设 8 3 28255A芯片的控制字及其工作方式 8255A中的端口的工作方式有 方式0 方式1和方式2 D0 D1 D2 D3 D4 D5 D6 D7 PC3 PC01 输入0 输出 B口1 输入0 输出 B组工作方式0 方式01 方式1 PC7 PC41 输入0 输出 A口1 输入0 输出 A组工作方式00 方式001 方式11 方式2 D7 1特征位 B组 A组 1 控制字 A1A0 11 1 定义工作方式控制字 方式控制字及状态字 利用软件编程确定3个端口工作于何种方式下 C端口可以按位操作 当其工作于方式0下且作为输出口时 一般需要对作为输出的位设置初始状态 即初始化 2 C口的置位 复位字 D0 D1 D2 D3 D4 D5 D6 D7 1 置位0 复位 C口选择 000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC7 任选 可1可0 D7 0 特征位 例 若把C口的PC2引脚清0 PC5引脚置成高电平输出 请写出其控制字 使PC2清0的控制字 0000 0100B或02H 使PC5置1的控制字 0000 1010B或0AH 1 工作方式0 PA PB和PC的基本输入 输出方式 它只完成简单的并行输入 输出操作 2 工作方式方式0 基本I O方式 查询时 任选C口做连络信号 方式1 选通方式 固定C口做连络信号 方式2 双向方式 只用于A口 在方式0工作时 CPU可以采用无条件读写方式与8255A交换信息 在基本输入 输出下工作时 输出的数据被锁存 而输入的数据是不锁存的 方式0 相当于三个独立的8位简单接口各端口既可设置为输入口 也可设置为输出口 但不能同时实现输入及输出C端口可以是一个8位的简单接口 也可以分为两个独立的4位端口常用于连接简单外设 适于无条件或查询方式 方式0的应用 常使A端口和B端口作为8位数据的输入或输出口 使C口的某些位作状态输入 8255芯片的应用 芯片与系统的连接芯片的初始化相应的控制程序 2 方式1 选通输入 输出方式 在这种工作方式下 A B两个口的数据输入 输出操作要在选通信号控制下完成 C口的六位数据线作为联络 剩下的两位可作数据位使用 方式1输入 A B两个口都设置为方式1输入的情况如图所示 例1 要把A口指定为1方式 输入 B口指定为1方式 输入 C口上半部定为输出 写出初始程序 方式命令字 假定8255A命令控制口的地址为303H 则8255A的初始化为 MOVDX 303HMOVAL 0B6HOUTDX AL 10110110B或0B6H 1方式下输入的联络信号线定义 A口方式1 输入 B口方式1 输入 INTEA PA0 PA7 PC4 PC5 PC3 STB IBF INTR I O PC6 PC7 O RD STB 选通输入 外设发出IBF 输入缓冲器满 8255发出INTE 中断允许 PC4 1 使INTEA 1 INTR 中断请求 当INTE 1 IBF 1 STB时 INTR 1 INTEB PB0 PB7 PC2 PC1 PC0 STB IBF INTR I O O RD PC2 1 使INTEB 1 1方式下输入的时序 A口方式1 输入 INTEA PA0 PA7 PC4 PC5 PC3 STB IBF INTR I O PC6 PC7 O RD STB 选通输入 外设发出 IBF 输入缓冲器满 8255发出 INTE 中断允许 PC4 1 使INTEA 1INTR 中断请求 当INTE 1 IBF 1 STB IBF INTR RD 数据 当PA口设置为工作方式1时 如何使A端口的PC4置位 复位 1方式下输出的联络信号线定义 A口方式1 输出 B口方式1 输出 INTEA PA0 PA7 PC6 PC7 PC3 OBF ACK INTR I O PC4 5 O WR INTEB PB0 PB7 PC2 PC1 PC0 ACK OBF INTR I O O WR ACK 外设应答OBF 输出缓冲器满INTE 中断允许 设置PC6 1 使INTEA 1 PC2 1 使INTEB 1 INTR 中断请求 当INTE 1且OBF 1时 INTR 1 1方式下输出的时序 A口方式1 输出 INTEA PA0 PA7 PC6 PC7 PC3 OBF ACK INTR I O PC4 5 O WR ACK 外设应答OBF 输出缓冲器满INTE 中断允许 设置PC6 1 使INTEA 1 PC2 1 使INTEB 1 INTR 中断请求 当INTE 1且OBF 1时 INTR 1 WR OBF INTR ACK 在方式1下 有2种方法实现与外设交换信息 1 通过查询PC端口的状态实现与外设交还信息 例 在方式1的输入时 通过查询IBF位或INTR位 当IBF为高电平时 表明外设输入了新的数据 通知CPU来读数据 在方式1的输出时 通过查询OBF位或INTR位 当OBF为高电平时 表明外设外设处于空闲状态 这时CPU可以输出新的数据 在实际编程中 查INTR位 可靠性更高 2 通过引入中断来实现与外设交还信息 把INTR作为中断请求信号 利用中断服务程序来实现CPU与外部设备交换信息 方式1的应用 方式1主要用于中断控制方式下的输入输出C口的8位除用作选通信号外 其余位可工作于方式0下 作为输入或输出口 3 工作方式2 带选通的双向传送方式 8255A中只允许端口A处于工作方式2 可用来在两台处理机之间实现双向行通信 当端口A工作于方式2时 允许端口B工作方式0或方式1完成输入 输出功能 4 关于两个命令的讨论 方式命令是对8255A的3个端口的工作方式进行指定 用到8255A 一定要先初始化 按位置位 复位命令只是对PC口的输出进行控制 使用它并不影响已经建立的工作方式 D7特征位 用以区别两个不同的命令 按位置位 复位的命令代码只能写入命令口 方式2的应用 可使A端口作为双向端口所有用于中断控制方式当A口工作于方式2时 B口可工作于方式1 此时C口的所有位都用作选通控制信号的输入输出 也可工作于方式0 此时C口的剩余位也可工作于方式0 在访问外设时 要用指令IN OUT 例如 INAL 13H 或INAL DX OUT13H AX 或OUTDX AL 实际上 接口电路是外设与CPU交换信息的中间桥梁 一个接口电路可能有多个端口 比如8255A就有3个端口即端口A 端口B和端口C 也就是说 一个接口有多个端口地址 CPU通过访问不同的端口 来实现访问不同的外部设备 通过下面的表来说明8255A的端口地址的用法 8 3 38255A并行接口应用举例 地址A1A0RDWRCS操作 表8255A的读定操作控制 000010端口A CPU 101010端口B CPU 210010端口C CPU 000100CPU 端口A 101100CPU 端口B 210100CPU 端口C 311000CPU 控制寄存器 11010非法操作 110数据总线浮空 18255A无效 数据总线浮空 例1 要把A口和B口都指定为1方式 输入 C口上半部定为输出 求其工作方式命令代码 10110110B或0B6H 假定8255A命令控制口的地址为303H 则8255A的初始化为 MOVDX 303HMOVAL 0B6HOUTDX AL 工作方式命令字 例2 若要把C口的PC2引脚置成高电平输出 求其命令代码 控制口的地址为303H 控制命令字 00000101B或05H 其程序段为 MOVDX 303HMOVAL 05HOUTDX AL 例3 利用8255A的PC6 产生方波 送到喇叭 使产生不同频率的声音 其原理图如图所示 SPKPROCMOVDX 303H 命令口MOVAL 0DH 置PC6 1OUTDX ALCALLDELAYMOVAL 0CH 置PC6 0OUTDX ALCALLDELAYRETSPKENDP O 5V 压电蜂鸣器 7406 PC6 8255A 控制口地址为303H 其程序段为 若改变DELAY的延时时间 即可改变喇叭发声的频率 例4 8255A的0方式及其应用一 特点 在0方式下不设置专用联络信号线 需要联络时 由用户任意指定C口中的哪根线完成某种联络功能 由于无固定的专用联络信号 由用户根据数据传送的要求决定输入 输出的操作过程 1 要求 为某应用系统配置一个并行打印机接口 通过采用查询方式把存放在BUF缓冲的256个字符 ASCII码 送去打印 2 分析 查询方式时 打印机与CPU之间传送数据的过程是 首先查询BUSY 若BUSY 1 打印机忙 则等待 若BUSY 0 打印机不忙 则送数据 把数据送到打印机的数据线上 此时打印机并未收到数据 再送出一个数据选通信号 负脉冲 给打印机 把数据总线上的数据打入到打印机的内部缓冲器 打印机在收到数据后 发出 忙 BUSY 1 信号 表明打印机正在处理输入的数据 等到输入的数据处理完毕 打印机撤消 忙 信号 即置BUSY 0 最后送出一个回答信号ACK给主机 表示上一个字符已经处理完毕 如此重复工作 直到把全部字符打印出来 图8 98255A并行打印机口电路框图 8255A打印机插座 接口驱动程序 打印机驱动程序的流程是根据打印接口标准的时序要求拟定的 3 设计 电路设计包括硬件接口电路和软件驱动程序两部分 打印机接口电路 打印机接口电路原理框图如图8 9所示 驱动程序的程序段如下 CODESEGMENTASSUMECS CODE DS CODEORG100HSTART MOVAX CODEMOVDS AXMOVDX 303H 8255A命令口MOVAL 10000001B 工作方式字OUTDX ALMOVAL 00001111B PC7位置高OUTDX ALMOVSI OFFSETBUF 打印字符的内存首址MOVCX 0FFH 打印字符的个数 LL MOVDX 302H PC口地址INAL DX 查BUSY 0 ANDAL 04HJNZLL 忙 则等待 不忙 则向A口送数 MOVDX 300H PA口地址MOVAL SI 从内存取数OUTDX AL 送数到A口MOVDX 303H 8255A命令口MOVAL 00001110B 置STB 0OUTDX ALNOPNOPMOVAL 00001111B 置STB 1OUTDX ALINCSILOOPLLMOVAX 4C00HINT21HBUFDB定义256个ASCII字符代码CODEENDSENDSTART 规定8255并行接口地址为FFE0H FFE3H 试将其连接到8086的系统总线上 若希望8255的3个口24跳线均为输出 且输出方波 试编程序 INI55 MOVDX 0FFE3HMOVAL 10000000BOUTDX AL MOVAL 00HGOON MOVDX 0FFE0HOUTDX ALINCDXOUTDX ALINCDXOUTDX ALCALLDELAYNOTALJMPGOON 8255A工作方式 三种式作方式 方式 方式 方式 方式0 无条件输入或输出方式 直接传送方式 无任何联络线 三个端口为8位独位的输入输出接口 输出锁存 输入缓冲 8255A工作方式 IBF 输出高电平有效 通知外设数据未取走 INTRA 中断请求 输出高电平向CPU申请中断 PC6PC7按位操作 输入或输出 方式1 1 应答式输出或输入 带联络线 分为A组或B组 2 输入输出均锁存 PC4对外是输入信号 不受置位复位的影响 8255A工作方式 方式1A口输入操作 8255A工作方式 方式1B口输入操作 IBF 输出高电平有效 通知外设数据未取走 INTRB 中断请求 输出高电平向CPU申请中断 8255A工作方式 方式1A口输出操作 INTRA 中断请求 输出高电平向CPU申请中断 8255A工作方式 方式1B口输出操作 INTRB 中断请求 输出高电平向CPU申请中断 8255A工作方式 方式2及操作 1 应答式双向输出输入 输入输出均锁存 2 只有A组能工作在方式2 此时B口可工作在方式0 未用的C口可按位操作 IBF 输出高电平有效 通知外设数据未取走 INTRA 中断请求 输出高电平向CPU申请中断 PC0 PC2按位操作 输入或输出 8255用作查询式打印机接口电路连接和打印机各信号的时序如图所示 8255的端口地址为380H 383H 工作于方式0 试编写一段程序 将数据区中变量DATA的8位数据送打印机打印 并写上注释 8255工作方式 A口 方式0输出 C口 上半口输出 下半口输入方式字 10000001B 81H 算法 1 查询BUSY 1忙 0空 2 A口输出数据 3 PC7低电平锁存数据到打印机 8255A的应用 MOVAL 81H 初始化8255MOVDX 383HOUTDX ALPC2 DECDXINAL DX PC2 1忙 0送数据TESTAL 000000100JNZPC2MOVAL DATA 数据送入A口MOVDX 380HOUTDX ALMOVDX 383HMOVAL 00001110B PC7置0 接收数据打印OUTDX ALNOPMOVAL 00001111B PC7置1OUTDX AL 8255A的应用 1 8255A的三个端口在使用时有什么差别 2 8255用作查询式打印机接口时的电路连接和打印机各信号的时序如图所示 8255的端口地址为80H 83H 工作于方式0 试编写一段程序 将数据区中变量DATA的8位数据送打印机打印 程序以RET指令结束 并写上注释 3 若用共阴极LED数码管作显示器 它的接口连接图如图所示 写出显示 7 的段选码 4 4矩阵键盘 8255A的应用 键盘接口 编码和非编码 编码键盘提供按键的编码信息 非编码键盘由一组开关组成 由程序识别按建并分配实际意义 如图所示为8255A组成的非编码键盘接口电路 图中端口A工作在方式0 输出口端口B也工作在方式0 输入口 检测键盘输入 1 检测有按下的键 a 端口A输出全 0 到行线上 b 读端口B口 全 1 无键闭合 否则 有键按下 2 查找闭合键所在的行编码 a 分别在端口A的每根引线上送出低电平信号 b 读B口 不为 1 该行有键按下 3 查闭合键的列编码 B口读人字节中 0 所在的位 即为按下键的列位置 键盘接口 PORTAEQU0300HPORTBEQU0301HPORTCEQU0302HPORTCNEQU0303HMOVDX PORTCN 端口A B方式0MOVAL 10000010B A输出 B为输入OUTDX ALWAITK MOVDX PORTA 等待键闭合MOVAL 0 行码送全 0 OUTDX ALMOVDX PORTB 读列码INAL DXCMPAL 0FFH JZWAITK 无键按下 继续等待MOVBL 0 扫描 送键号初值MOVBH 11111110B 初始扫描行码FEHMOVCX 8FNDROW MOVAL BH 送行码MOVDX PORTAOUTDX ALROLBH 1 修改行码MOVDX PORTB 读列码INAL DXCMPAL OFFHJNZFNDCOL 有键按下 查列号ADDBL 8 指向下一行键号初值LOOPFNDROW 8行扫描JMPDONE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东古代文学自考试题及答案
- 乐谱理论考试题及答案
- 护士从业资格考试试题及答案解析
- 课件显示倒计时
- 勘测测量考试题及答案
- 铝电解筑炉工内部技能考核试卷及答案
- 酒吧音乐考试题及答案
- 加工中心操作工转正考核试卷及答案
- 抗生素酶裂解工基础考核试卷及答案
- 2025年教师招聘之《幼儿教师招聘》模考模拟试题及答案详解(必刷)
- 成本控制与成本分析方法指导手册
- 环境灾害预警系统-洞察及研究
- 广播电视机线员技能操作考核试卷及答案
- 辅警结构化面试题及答案(2025年)
- 2025年托管厨师合同协议书
- 2025年医疗器械专业知识培训试题及答案
- 矛盾纠纷调解课件
- 《我是什么》课件 统编版语文二年级上册
- 师生互动与课件使用
- 烷烃的命名教学课件
- 黑龙江省突发公共事件总体应急预案
评论
0/150
提交评论