南邮微机原理第11章ppt课件.ppt_第1页
南邮微机原理第11章ppt课件.ppt_第2页
南邮微机原理第11章ppt课件.ppt_第3页
南邮微机原理第11章ppt课件.ppt_第4页
南邮微机原理第11章ppt课件.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

第十一章并行接口芯片8255A 11 18255A的内部结构 一 结构框图 见下页 结构框图 数据总线缓冲器 A组A口 A组C口上半部 A组控制 B组C口下半部 B组B口 B组控制 PA7 PA0 PC7 PC4 PB7 PB0 PC3 PC0 读 写控制 A1 A0 RESET 内部总线 8 CPUDB 24根端口数据线 接外设PA7 PA0为A口数据线PB7 PB0为B口数据线PC7 PC0为C口数据线 二 8255A的外部引脚 8255A为双列直插式 40引脚 8根系统数据线 接CPUD7 D0 6根输入控制线RESET 复位信号 RESET 1时 8255内部复位 所有内部寄存器清零 A B C三个端口自动为输入口 电源线 5V 地线 三 8255A的端口编址 端口 接口电路中能和CPU直接交换信息的寄存器8255A有4个端口寄存器 CS 片选信号 CS 0时 该芯片被选中RD 来自CPU的I O读命令WR 来自CPU的I O写命令A1 A0 通常接CPU的地址线A1 A0 如果系统产生片选信号的译码电路如图 则 AEN A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 IOR IOW CS A1 A0 RD WR 8255A A数据口地址 60HB数据口地址 61HC数据口地址 62H控制口地址 63H 控制口寄存初始化命令字 对控制寄存器不能进行读操作 11 28255的工作方式简介 A口可工作在方式0 1 2B口可工作在方式0 1C口可工作在方式0 什么是选通型输入 以A口为例 A口定义为选通型输入时 端口和外设之间有两类信号线 数据线PA7 PA0 联络线IBFA STBA IBF InputBufferFull 输入缓冲器满 状态线 输入设备 PA7 0 IBFA STBA 8255A口 STB Strobe 选通信号输入 当外设把数据放在端口线上时必须伴随一个选通信号 当STB 时完成数据锁存 端口收到数据后 再通知CPU来取 IBF 1 通知外设输入缓冲器已满 请不要再送数据只有在IBF 0时 外设才能写入数据 输入设备 PA7 0 IBFA STBA 8255A口 什么是选通型输出 以B口为例 当端口定义为选通型输出时 端口与外设之间也有两类信号 数据线PB7 PB0 联络线OBFB ACKB OBF OutputBufferFull 输出缓冲器满 状态线ACK Acknowledge 确认应答 输出设备 PB7 0 OBFB ACKB 8255B口 CPU对B口执行OUT指令 把一个数 8255 OBFB 通知外设输出缓冲器已满 即数据线上信息可用了 外设取走数据之后 使ACKB 通知CPU端口数据已取走 可再送一个数 输出设备 PB7 0 OBFB ACKB 8255B口 什么是基本型输入 以B口为例 当B口定义为基本型输入时 它相当于一个输入缓冲器 对B口执行一条IN指令 就把输入数据 CPU 对B口执行一条IN指令打开控制门 PB7 PB0 至CPU D7 D0 什么是基本型输出 以A口为例 当A口定义为基本型输出时 它为一个输出锁存器CPU对A口执行一条OUT指令把数据锁存在端口 总之 基本型输入 出时 8255和外设之间没有联络信号 对A口执行一条OUT指令锁存数据 PA7 PA0 CPU D7 D0 11 38255控制字与初始化编程 1 8255控制字 8255有2个控制字 方式选择控制字 C口按位置0 置1命令字 控制字必须写入控制口才能有效 方式选择控制字 A口工作在方式1 方式2 B口工作在方式1时 D3 D0只能定义部分PC线的入 出A口工作在方式2时 D4不起作用C口上 下半部可以选择不同的入 出 都是方式0 注意 C口按位置0 1命令字 注意 C口按位置0 1命令字必须写入控制口 根据需要 把C口置0 置1命令字 控制口 目的是禁止 允许某一口提中断 2 8255初始化编程步骤 方式选择命令字 控制口 目的选择某一口的工作方式 例 要求置A口为方式0输出 B口为方式0输入 PC7 4为输出 PC3 0为输入 MOVAL 83HOUT控口地址 AL 11 48255工作方式及时序 一 方式0与时序 数据有效 tAR tIR tHR tRA tRD tDF tRR RD 输入 CS A1 A0 D7 D0 方式0输入时序 数据有效 tAW tDW 数据有效 tWD tWA tWB tWW 输出 端口输出 CS A1 A0 D7 D0 CPU输出数据 方式0输出时序 二 方式1输入 选通型输入 及时序 10111 0XXX A口方式1 1 PC7 6为入线0 PC7 6为出线 方式选择命令字 输入 1 A口方式1输入的预置 当方式字 B0H写入控制口之后 A口即工作在选通型输入 PC4 PC5 PC3 INTEA PC7 6 PA7 0 空闲 STBA IBFA INTRA A口选通型输入 PC4 PC5 PC3 INTEA PC7 6 PA7 0 空闲 STBA IBFA INTRA A口选通型输入 当INTEA 1之后 若IBFA 1 则A口提出中断请求 2 A口方式1输入时 A口的中断管理 PC2 PC1 PC0 INTEB PB7 0 STBB IBFB INTRB B口选通型输入 1XXXX11X B口方式1输入 方式选择命令字 3 B口方式1输入的预置 当方式字 86H写入控制口之后 B口即工作在选通型输入 STBB PC2 PC1 PC0 INTEB PB7 0 B口选通型输入 IBFB INTRB PB7 PB0即为输入线PC2自动定义为入线 称为STBBPC1自动定义为出线 称为IBFBPC0自动定义为出线 称为INTRB 输出线 输入线 不再受方式字D0控制 此时 4 B口方式1输入时的中断管理 INTEB 1之后 若IBFB 1 则INTRB 1 B口可提出中断请求 STBB PC2 PC1 PC0 INTEB PB7 0 B口选通型输入 IBFB INTRB 5 方式1输入的时序图 tSIT tSIB tRIT tRIB tPS tPH tST STB IBF INTR 方式1输入时序 RD 来自外设的输入数据 IBF INTR 来自外设的输入数据 方式1输入操作是由STB 引发的 STB 后 外设数据 8255 IBF IBF INTR 来自外设的输入数据 满足下列条件 提中断请求 STB信号结束 STB脉宽可以很宽 IBF 1 外设数据确已锁存 INTE 1 中断允许触发器置1 服务程序执行IN指令之后 RD信号前沿使INTR 后沿使IBF 0从而结束一次数据输入过程 IBF INTR 来自外设的输入数据 6 方式1输入时 CPU 8255信息交换的方式 可以用中断方式 可以用查询方式 输入查询应查询IBF 不应该查询STB STB脉冲是外设送来 它最小可小到500ns 而在500ns的时间内正好运行CPU的查询指令是不可能的 三 方式1输出 选通型输出 及时序 10101 0XXX A口方式1输出 1 PC4 5为入线0 PC4 5为出线 方式选择命令字 PC6 PC7 PC3 INTEA PC4 5 PA7 0 空闲 ACKA OBFA INTRA A口选通型输出 PC6 PC7 PC3 INTEA PC4 5 PA7 0 空闲 ACKA OBFA INTRA A口选通型输出 1 A口方式1输出的预置 当方式字 A0H写入控制口之后 A口即工作在选通型输出方式 PC4 PC5空闲 出 入 受方式字D3控制 PA7 0为输出线PC6自动定义为入线 称ACKAPC7自动定义为出线 称OBFAPC3自动定义为出线 称INTRA 输出 输入 不再受方式字D3 D0控制 此时 2 方式1输出时A口的中断管理 PC6 PC7 PC3 INTEA PC4 5 PA7 0 空闲 ACKA OBFA INTRA A口选通型输出 ACKB OBFB INTRB 1XXXX10X B口方式1输出 方式选择命令字 PC2 PC1 PC0 INTEB PB7 0 B口选通型输出 OBFB PC2 PC1 PC0 INTEB PB7 0 B口选通型输出 ACKB INTRB 3 口方式 输出的设置 当方式字 84H 控制口之后 B口即工作在选通型输出方式 入线 出线 不再受方式字D0控制 PB7 PB0定义为输出线PC2自动定义为入线 称为ACKBPC1自动定义为出线 称为OBFBPC0自动定义为出线 称为INTRB 此时 4 方式1输出时 B口的中断管理 INTEB为B口的中断允许触发器 当B口工作在方式1输出时 用C口置0 1命令字使PC2 1 则INTEB 1 允许B口中断用C口置0 1命令字使PC2 0 则INTEB 0 禁止B口中断 INTEB置1后 OBFB 1 则INTRB 1 B口提出中断 同样 ACKB不能改变INTEB的状态 它只受CPU控制 OBFB PC2 PC1 PC0 INTEB PB7 0 B口选通型输出 ACKB INTRB 5 方式1输出的时序图 tAX tWOB tAOB tAIT tWB tWIT OBF INTR 方式1输出时序 WR 输出 ACK 方式1输出时CPU针对8255数据口执行OUT指令 WR信号结束后 数据出现在外设数据线上 OBF有效 向外设通报其数据线信息可用 使INTR无效 撤销中断请求 INTR 输出 外设取走数据后 发来ACK ACK信号前沿使OBF无效 后沿提中断 INTR 输出 工作在方式1输出时端口提中断的条件 外设发出ACK信号且使OBF 1中断允许触发器置1 INTR 输出 6 方式1输出时 CPU 8255交换信息的方式 中断方式 查询方式 查询OBF 当OBF 1 不满 时可送下一个数据 方式选择命令字 11XXXD2D1D0 A口双向 1 PC2 0为入线0 PC2 0为出线 1 双向方式的设置 PC7 PC6 PC3 INTE1 PC2 0 PA7 0 PC4 PC5 空闲 INTRA ACKA OBFA IBFA STBA INTE2 A口定义为双向方式之后 PA7 0是双向的数据线 可以分时完成数据输入 出PC3自动定义为出线 INTRAPC7自动定义为出线 OBFAPC6自动定义为入线 ACKAPC4自动定义为入线 STBAPC5自动定义为出线 IBFAPC2 0空闲 入 出线 不再受方式字D3 D0的控制 IBFA STBA是双向方式中的一对输入联络线OBFA ACKA是双向方式中的一对输出联络线 数据输入过程 数据输出过程与方式1类似 PC7 PC6 PC3 INTE1 PC2 0 PA7 0 PC4 PC5 空闲 INTRA ACKA OBFA IBFA STBA INTE2 2 A口双向方式的中断管理 A口定义为双向方式之后 INTE2为双向方式中的输入中断允许触发器用C口置0 1命令字使PC4置0 则INTE2 0用C口置0 1命令字使PC4置1 则INTE2 1INTE2置1后 若IBFA 1 则INTRA 1 提出中断请求 PC7 PC6 PC3 INTE1 PC2 0 PA7 0 PC4 PC5 空闲 INTRA ACKA OBFA IBFA STBA INTE2 INTE1 双向方式中的输出中断允许触发器INTE2 双向方式中的输入中断允许触发器 在IBFA 0时表示输入缓冲器空闲输入设备把数据 PA7 0 随后使STBA 完成数据输入 在INTE2 1的前提下向CPU提中断CPU响应后对A口执行IN指令取走数据 CPU 输入 CPU对A口执行OUT指令 数据写入A口OBFA 0表示PA7 0有数据了外设取走数据后 向ACKA送在INTE1 1的前提下向CPU提出中断CPU响应后再次执行OUT指令又送一个新的数据 A口 输出 方式0的特点 8255和外设交换信息时 不需要联络线 方式1 2的特点 8255和外设交换信息时 需要联络线 五 8255小结 1 8255工作方式 A口可以工作在方式0 1 2 B口可以工作在方式0 1 不能工作在方式2 C口可以工作在方式0 C口分为PC7 4 PC3 0二部分 但程序员对C口的读写是按字节操作的 A口工作在方式2时 B口只能工作在方式0 1 限制 CPU只能用查询而不能用中断和B口交换数据 数据口工作在方式1 2时 CPU用 2 CPU与8255交换信息的方式 数据口工作在方式0时 CPU采用无条件传送 b 中断方式 由于8255本身不能向CPU回送中断向量 所以必须用8259管理 在系统外扩8255时 8255的INTR应接到系统机从8259的IR1 作为用户中断来处理 3 中断允许触发器的置0 置1 对程序员来讲 工作在方式1 方式2时 8255内部有4个中断允许触发器 用 C口专用的置0 1命令字 可以使它们置0 1 方式 控制位 中断允许触发器 4 8255的初始化编程 工作在方式0时 方式选择命令字 控制口 工作在方式1 2时 a 方式选择命令字 控制口b 允许中断 或禁止中断 的命令字 控制口 六 8255应用举例 例 设系统机外扩了一片8255 以及相应的实验电路 如后页图所示 要求 先预置开关K3 K1为一组状态 然后按下自复按钮K产生一个负脉冲信号输入到PC4 用发光二极管LEDi亮来显示K3 K1的状态 主机键盘有任意键按下时结束演示 K3K2K1 000时 LED1亮K3K2K1 001时 LED2亮K3K2K1 010时 LED3亮K3K2K1 011时 LED4亮K3K2K1 100时 LED5亮K3K2K1 101时 LED6亮K3K2K1 110时 LED7亮K3K2K1 111时 LED8亮K3 K1闭合为0 断开为1 要求 D7 D0 D7 D0 5V RESET IOR IOW RD WR 口地址译码 218H 21FH A1 A1 A0 A0 8255 5V LED8 LED7 LED1 PB7 PB6 PB0 PA2 PA1 PA0 K3 K2 K1 5V 单脉冲发生器 PC4 K PC5 IBFA INTRA PC3 INTEA CS 实验电路图 教材P347 STBA D7 D0 D7 D0 5V RESET IOR IOW RD WR 口地址译码 218H 21FH A1 A1 A0 A0 8255 5V LED8 LED7 LED1 PB7 PB6 PB0 PA2 PA1 PA0 K3 K2 K1 5V 单脉冲发生器 PC4 K PC5 IBFA INTRA PC3 INTEA CS STBA D7 D0 D7 D0 5V RESET IOR IOW RD WR 口地址译码 218H 21FH A1 A1 A0 A0 8255 5V LED8 LED7 LED1 PB7 PB6 PB0 PA2 PA1 PA0 K3 K2 K1 5V 单脉冲发生器 PC4 K PC5 IBFA INTRA PC3 INTEA CS STBA 十四 D7 D0 D7 D0 5V RESET IOR IOW RD WR 口地址译码 218H 21FH A1 A1 A0 A0 8255 5V LED8 LED7 LED1 PB7 PB6 PB0 PA2 PA1 PA0 K3 K2 K1 5V 单脉冲发生器 PC4 K PC5 IBFA INTRA PC3 INTEA CS STBA 设计思路 CPU 8255A口交换信息解法1 查询方式 当PC5 1时 表示K3K2K1的值已写入A口了解法2 中断方式 PC3接系统从8259IR1 按用户中断处理 D7 D0 8255 LED8 LED7 LED1 K 十四 D7 D0 RESET RD WR A1 A0 8255 5V LED8 LED7 LED1 PB7 PB6 PB0 PA2 PA1 PA0 K3 K2 K1 5V 单脉冲发生器 PC4 K PC5 IBFA INTRA PC3 INTEA CS STBA A口禁止中断命令字 0XXX1000 08H 用查询方式编程 方式选择命令字 1011X00X B0H A口方式1 A口输入 B口方式0 B口输出 B口方式0输出 A口选通型输入查询 查询方式程序清单 DATASEGMENTMESGDB 8255AREADY 0DH 0AH TABDB11111110BDB11111101BDB11111011BDB11110111BDB11101111BDB11011111BDB10111111BDB01111111BDATAENDSCODESEGMENTASSUMECS CODE DS DATA BEG MOVAX DATAMOVDS AXCALLI8255A 8255A初始化MOVAH 9MOVDX OFFSETMESGINT21H 给出操作提示SCAN MOVAH 1INT16H 有键入 JNZRETURN 有MOVDX 21AHINAL DX 读8255AC口TESTAL 00100000B PC5 1 JZSCAN NOMOVDX 218HINAL DX 读8255AA口 ANDAL 07HMOVBX OFFSETTABXLATTAB 查表MOVDX 219HOUTDX AL 表项输出到B口JMPSCANRETURN MOVAH 4CHINT21H 返回DOSI8255APROCMOVDX 21BHMOVAL 0B0HOUTDX AL 写入工作方式字MOVAL 08HOUTDX AL 令PC4 0 INTEA 0 MOVDX 219H MOVAL 0FFHOUTDX AL 熄灭LEDRETI8255AENDPCODEENDSENDBEG 用中断方式编程 A口允许中断命令字 0XXX1001 09H 把实验电路8255PC3接ISA总线B4端子以便向系统机提出用户中断请求B口方式0输出 A口方式1输入 中断方式 方式选择命令字 1011X00X B0H A口方式1输入 B口方式0输出 中断方式程序清单 DATASEGMENTMESGDB 8255AREADY 0DH 0AH TABDB11111110BDB11111101BDB11111011BDB11110111BDB11101111BDB11011111B

温馨提示

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

评论

0/150

提交评论