第七章 并行接口_第1页
第七章 并行接口_第2页
第七章 并行接口_第3页
第七章 并行接口_第4页
第七章 并行接口_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章并行接口 教学重点8255A的工作方式和编程8255A的应用键盘接口LED显示器接口 并行数据传输方式 以计算机的字长 通常是8位 16位或32位为传输单位 一次传送一个字长的数据适合于外部设备与微机之间进行近距离 大量和快速的信息交换例如 微机与并行接口打印机 磁盘驱动器微机系统中最基本的信息交换方法例如 系统板上各部件之间 接口电路板上各部件之间 第一节可编程并行通信接口8255A 具有多种功能的可编程并行接口电路芯片最基本的接口电路 三态缓冲器和锁存器与CPU间 与外设间的接口电路 状态寄存器和控制寄存器还有端口的译码和控制电路 中断控制电路分3个端口 共24个外设引脚共三种输入输出工作方式 一 8255A的内部结构和引脚 1 外设数据端口 端口A PA0 PA7A组 支持工作方式0 1 2端口B PB0 PB7B组 支持工作方式0 1端口C PC0 PC7仅支持工作方式0A组控制高4位PC4 PC7B组控制低4位PC0 PC3 端口A PA0 PA7常作数据端口 功能最强大端口B PB0 PB7常作数据端口端口C PC0 PC7可作数据 状态和控制端口分两个4位 每位可独立操作控制最灵活 最难掌握 2 与处理器接口 二 8255A的控制字 8255A的工作状态是由CPU用输出指令向控制口送的控制字来决定的 8255A的控制字分为两类 采用控制口地址 A1A0 11 1 方式选择控制字 说明之一 1 8255A有3种基本工作方式 方式0 基本的输入 输出方式方式1 选通的输入 输出方式方式2 双向传输方式 说明之二 2 端口A可以工作在3种工作方式中的任何一种 端口B只能工作在方式0或方式1 端口C则常常配合端口A和端口B工作 为这两个端口的输入 输出传输提供控制信号和状态信号 可见 只有端口A能工作在方式2 方式选择控制字 说明之三 3 归为同一组的两个端口可以分别工作在输入方式和输出方式 或同为输入方式 同为输出方式 而一个端口具体到底作为输入端口还是输出端口 由方式选择控制字来决定 方式选择控制字 例子 要求 A端口 方式1输入C端口上半部 输出 C口下半部 输入B端口 方式0输出方式控制字 10110001B或B1H初始化的程序段 movdx 0fff3h 假设控制端口为FFF3Hmoval 0b1h 方式控制字outdx al 送到控制端口 方式选择控制字 在一个8086系统中 设8255A的四个端口地址为C0H C1H C2H C3H 若要求各端口的工作方式为 端口A 方式0 输出端口B 方式0 输入端口C的高四位 输出端口C的低四位 输出则相应的方式选择控制字为 10000010B 82HMOVAL 82HOUTC3H AL 例子 方式选择控制字 2 端口C置1 置0控制字 注意 端口C置1 置0控制字尽管是对端口C进行操作 但此控制字必须写入控制口 而不是写入C端口 例 若将上例中端口C的PC2置1 PC7置0 MOVAL 00000101BOUTC3H ALMOVAL 00001110BOUTC3H AL 例子 端口C置1 置0控制字 三 8255A的工作方式 方式0 基本输入输出方式适用于无条件传送和查询方式的接口电路方式1 选通输入输出方式适用于查询和中断方式的接口电路方式2 双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路 1 方式0 方式0也叫基本输入 输出方式 在这种方式下 端口A和端口B可以通过方式选择字规定为输入口或者输出口 端口C分为2个4位端口 高4位为一个端门 低4位为一个端口 这两个4位端口也可由方式选择字规定为输入口或输出口 方式0的特点 任何一个端口可作为输入口 也可作为输出口 各端口之间没有规定必然的关系 各个端口的输入或输出 可以有16种不同的组合 方式0的使用场合 有两种 一种是同步传送 另一种是查询式传送同步传送时 发送方和接收方的动作由一个时序信号来管理 所以 对接口的要求很简单 只要能传送数据就行了 因此 在同步传输下使用8255A时 3个数据端口可以实现三路数据传输 查询式传输时 需要有应答信号 但是 在方式0的情况下 没有规定固定的应答信号 所以 这时可将端口A和端口B作为数据端口 端口C的4位 高4位或低4位均可 规定为输出口 用来输出一些控制信号 而把端口C的另外4位规定为输入口 用来读入外设的状态 方式0输入时序 请体会这里8255A的数据缓冲作用 方式0输出时序 8255A对CPU通过它输出给外设的数据进行锁存 2 方式1 方式1也叫选通的输入 输出方式 和方式0相比 最重要的差别是端口A和端口B用方式1进行输入 输出传输时 要利用端口C提供的选通信号和应答信号 而这些信号与端口C的位之间有着固定的对应关系 方式1的特点 端口A和端口B可分别作为两个数据口工作在方式1 并且 任何一个端口可作为输入口或者输出口 如果8255A的端口A和端口B中只有一个端口工作在方式1 那么端口C中就有3位被规定为配合方式1工作的信号 此时 另一个端口可以工作在方式0 端口C中的其它也可以工作在方式0 即作为输入或者输出 如果8255A的端口A和端口B都工作在方式1 那么 端口C中就有6位被规定为配合方式1工作的信号 剩下的2位仍可作为输入或输出 方式1输入引脚 A端口 数据选通信号表示外设已经准备好数据 输入缓冲器满信号表示A口已经接收数据 中断请求信号请求CPU接收数据 方式1输入引脚 B端口 方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能 方式1输入联络信号 STB 选通信号 低电平有效由外设提供的输入信号 当其有效时 将输入设备送来的数据锁存至8255A的输入锁存器IBF 输入缓冲器满信号 高电平有效8255A输出的联络信号 当其有效时 表示数据已锁存在输入锁存器INTR 中断请求信号 高电平有效8255A输出的信号 可用于向CPU提出中断请求 要求CPU读取外设数据 注意 当8255A的端口A和端口B都工作在方式1的输入情况时 端口C的PC0 PC5共6个位都被定义 只剩下PC6 PC7这2位还未用 此时 方式选择控制字的D3位用来定义PC6和PC7的数据传输方向 当D3为1时 PC6和PC7这2位作为输入来用 当D3为0时 PC6和PC7作为输出来用 方式选择控制字 方式1输入时序 STB和IBF是外设和8255A间的一对应答联络信号 为的是可靠地输入数据 方式1的中断控制 8255A的中断由中断允许触发器INTE控制置位 允许中断 复位 禁止中断对INTE的操作通过写入端口C的对应位实现 INTE触发器对应端口C的位是作应答联络信号的输入信号的那一位 只要对那一位置位 复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2 方式1输出引脚 A端口 外设响应信号表示外设已经接收到数据 输出缓冲器满信号表示CPU已经输出了数据 中断请求信号请求CPU再次输出数据 方式1输出引脚 B端口 方式1输出联络信号 OBF 输出缓冲器满信号 低有效8255A输出给外设的一个控制信号 当其有效时 表示CPU已把数据输出给指定的端口 外设可以取走ACK 响应信号 低有效外设的响应信号 指示8255A的端口数据已由外设接受INTR 中断请求信号 高有效当输出设备已接受数据后 8255A输出此信号向CPU提出中断请求 要求CPU继续提供数据 端口A的INTEA对应PC6端口B的INTEB对应PC2 方式1输出时序 OBF和ACK是外设和8255A间的一对应答联络信号 为的是可靠地输出数据 方式1的使用场合 在方式1下 规定一个端口作为输入口或者输出口的同时 自动规定了有关的控制信号和状态信号 尤其是规定了相应的中断请求信号 这样 在许多采用中断方式进行输入 输出的场合 如果外部设备能为8255A提供选通信号或者数据接收应答倍号 那么常常使8255A的端口工作于方式1 用方式1工作比用方式0更加方便有效 3 方式2 方式2也叫双向传输方式 只适用于端口A 方式2将方式1的选通输入输出功能组合成一个双向数据端口 可以发送数据和接收数据需要利用端口C的5个信号线 其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同 数据输出时8255A不是在OBF有效时向外设输出数据 而是在外设提供响应信号ACK时才送出数据 方式2双向引脚 用PC6设置INTE1 输出 用PC4设置INTE2 输入 输入和输出中断通过或门输出INTRA信号 方式2双向时序 方式2的使用场合 方式2是一种双向工作方式 如果一个并行外部设备既可以作为输入设备 又可以作为输出设备 并且输入输出动作不会同时进行 那么 将这个外设和8255A的端口A相连 并使它工作在方式2 就会非常合适 比如 磁盘驱动器就是这样一个外设 主机既可以往磁盘输出数据 也可以从磁盘输入数据 但数据输出过程和数据输入过程总是不重合的 所以 可以将磁盘驱动器的数据线与8255A的PA7 PA0相连 再使PC7 PC3和磁盘驱动器的控制线和状态线相连即可 方式2和其他方式的组合 从方式选择控制字可以知道 当8255A的端口A工作于方式2时 端门B可以工作在方式1 也可以工作在方式0 而且 端口B可以作为输入口 也可以作为输出口 在各种组合下 端口C都用一定的位配合工作 方式选择控制字 四 应用举例 用8255A方式0与打印机接口 打印机时序 moval 10000001B 方式控制字out83H al 控制端口地址 83H A端口方式0输出 C端口上输出 下输入moval 00001011B 端口C的复位置位控制字 使PC5 1out83H alprn inal 82h 读取端口C 查询打印机状态andal 08h PC3 BUSY 0 jnzprn PC3 1 打印机忙 则循环等待moval ah PC3 0 打印机不忙 则输出数据out80h al 将打印数据从端口A输出moval 00001010B 置STB 0out83h alnop 产生一定宽度的低电平nopmoval 00001011B 置 1out83h al 最终 STB产生低脉冲信号 应用举例 用8255A方式1与打印机接口 8255A方式1与打印机接口时序配合 moval 0a0h A端口方式1输出 方式控制字 10100000out83h al 控制端口地址 83Hmoval 0ch 使INTEA PC6 为0 禁止中断out83h al movcx counter 打印字节数送CXmovbx offsetbuffer 取字符串首地址callprints 调用打印子程序 printsprocpushax 保护寄存器print1 moval bx 取一个数据out80h al 从端口A输出print2 inal 82h 读取端口C 查询打印机状态testal 80h 检测 PC7 为1否 jzprint2 为0 说明打印机没有响应 继续检测 为1 说明打印机已接受数据incbx 准备取下一个数据输出loopprint1popax 打印结束 恢复寄存器ret 返回printsendp 第二节键盘及其接口 键盘是微机系统最常使用的输入设备小键盘 适用于单板机或以微处理器为基础的仪器 实现数据 地址 命令及指令等的输入独立键盘 通过5芯电缆与PC微机主机连接 一 键盘的工作原理 最简单的线性结构键盘每一个引脚连接一个键输入0 1反映键是否高低 一 键盘的工作原理 续 常用的矩阵结构键盘每行连接一个引脚每列连接一个引脚利用控制线为低 读取检测线来识别闭合键 二 键的识别 行扫描法 先使第0行接低电平 其余行为高电平 然后看第0行是否有键闭合 通过检查列线电位实现 此后 再将第1行接地 然后检测列线是否有变为低电位的线 如此往下一行一行地扫描 直到最后一行在扫描过程中 当发现某一行有键闭合时 便在扫描中途退出通过组合行线和列线可识别此刻按下的是哪一键 矩阵结构键盘 第1段 是否有键按下 key1 moval 00movdx rowportoutdx al 使所有行线为低电平movdx colportinal dx 读取列值cmpal 0ffh 判定是否有列线为低电平jzkey1 无闭合键 循环等待calldelay 有 延迟20ms清除抖动 键盘扫描程序 第2段 识别按键 扫描 movcx 8 行数送CXmovah 0feh 扫描初值送AHkey2 moval ahmovdx rowportoutdx al 输出行值 扫描值 movdx colportinal dx 读进列值cmpal 0ffh 判断有无低电平的列线jnzkey3 有 则转下一步处理rolah 1 无 则移位扫描值loopkey2 准备下一行扫描jmpkey1 所有行都没有键按下 则返回继续检测key3 此时 al 列值 ah 行值 键盘扫描程序 二 键的识别 反转法 首先 将行线作为控制线接一个输出端口 将列线作为检测线接一个输入端口CPU通过输出端口将行线 控制线 全部设置为低电平 然后从输入端口读取列线 检测线 然后 将行线和列线的作用互换 即将列线作为控制线接输出端口 行线作为检测线接输入端口将刚才读得的列值从列线所接端口输出 再读取行线的输入值这样 当一个键被按下时 必定可以读得一对唯一的行值和列值 条件 连接行线和列线的接口电路必须支持动态改变输入 输出方式 矩阵结构键盘 三 抖动问题 机械按键存在抖动现象当按下或释放一个键时 往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态抖动的持续时间通常不大于10ms采用硬件消抖电路或软件延时方法解决 第三节LED数码管及其接口 发光二极管LED是最简单的显示设备由7段LED就可以组成的LED数码管LED数码管广泛用于单板微型机 微型机控制系统及数字化仪器中LED数码管可以显示内存地址和数据等 1 LED数码管的工作原理 主要部分是7段发光管顺时针分别称为a b c d e f g有的产品还附带有一个小数点dp通过7个发光段的不同组合主要显示0 9也可以显示A F 实现16进制数的显示 还可以显示个别特殊字符 如 P等 LED数码管的结构 共阳极 共阴极 2 单个LED数码管的显示 单个数码管的显示 LEDtbdb3fh 06h 5bh 显示代码表 moval 1 AL 要显示的数字movbx offsetLEDtbxlat 换码 AL DS BX AL movdx portoutdx al 输出显示 软件译码 3 多个LED数码管的显示 8个数码管 用2个8位输出端口控制硬件上用公用的驱动电路来驱动各数码管软件上用扫描方法实现数码显示 位控制端口电路 位控制端口作用 控制哪个 位 数码管显示当位控制端口的控制码某位为低电平时 经反相驱动 便在相应数码管的阳极加上了高电平 这个数码管就可以显示数据 位控制 Di 0 相应位发光 段控制端口电路 D0D1D2D3D4D5D6D7 阳极 位0 abcdefgdp 位1 位2 D0 D7 段控制 正相寄存驱动 段控制端口作用 控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论