- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 可编程并行接口8255A 8255A的简介 8255A的外部引脚 8255A的内部逻辑结构 8255A的工作设定 8255A的应用 8255A的简介 8255A是一种通用的可编程并行I/O接口芯片(PPI),通过对它进行编程,可以有不同的工作方式。 通常不需要附加外部逻辑电路就可以直接为CPU与外设之间提供数据通道。 8255A的外部引脚 8255A内部逻辑结构 3个I/O端口A,B,C:每个都是8位并行端口,都可由程序选择作为输入或输出。 A组和B组控制电路:A组包括A口和C口的上半部(PC7~PC4);B组包括B口和C口的下半部(PC3~PC0)。 数据总线缓冲器:双向三态8位缓冲器,能直接与CPU数据总线对接。 读/写控制电路:与地址总线中的A1,A0以及有关的控制信号RD,WR,RESET相连,用来管理内部和外部数据,状态或控制字的传送。 8255A的端口寻址 8255A工作设计 8255A的控制字 方式控制字 对C口按位置位/复位控制字 8255A的方式选择 方式控制字 举例 设8255A的控制字寄存器的端口地址为63H,若A口工作于方式1,B口工作于方式0 ,A口、B口和C口的高四位作输入,C口的低四位作输出,写出方式控制字,并写入8255A的控制字寄存器中。 对C口按位置位/复位控制字 举例 设8255A的口地址为60H~63H,PC5平时为低电平,要求从PC5引脚输出一个正脉冲。试编写程序段。 8255A的方式选择 方式0——基本输入/输出方式 方式1——选通输入/输出方式,A口和B口作为数据的输入/输出端口,C口的高5位作为A口的联络信号,C口低3位作为B口联络信号。 方式2——双向选通传送方式,只有通道A工作在这种方式,C口的高5位作为A口的联络信号。 8255A方式0 8255A的每个口都作为基本的输入和输出口 A口、B口、C口的高4位、C口的低4位都可独立设定为输入口和输出口;这样8255A在方式0时,各个端口的输入、输出可以有16种不同的组合 8255A方式1 通道A:包括一个8位数据端口(端口A),和一个5位的控制端口(端口C的高5位PC7~PC3) 通道B:包括一个8位数据端口(端口B),和一个3位的控制端口(端口C的低3位PC2~PC0) 8255A方式1输入C口各引脚定义 8255A方式1输入中断的允许与禁止 8255A方式1输出C口各引脚定义 8255A方式1输出中断的允许和禁止 8255A方式2 该方式只能用于端口A,A口既能发送数据,又能接收数据 C口的高5位PC7~PC3,用作A口的控制信息和状态信息 端口B可以工作在方式0或方式1,既可以作为输入,也可以作为输出 8255A方式2 C口各引脚的定义 PC7=OBF,输出,输出缓冲器满信号 PC6=ACK,输入,由外设发来的对OBF的响应信号 PC5=IBF,输出,输入缓冲器满信号 PC4=STB,外设发来的选通信号 PC3=INTR,输出,双向工作时,向CPU发出中断请求信号 PC2~PC0: 若B口工作在方式0,可作为基本输入/输出口;若B口工作在方式1,可作为控制信号和状态信号 8255A方式2中断的允许和禁止 8255A的应用 用LED显示开关状态 键盘接口 8255A在PC/XT机中的应用 PC/XT机中的扬声器发声程序设计接口 七段数码管数字显示 1、用LED显示开关状态 逻辑电路图 8255A端口地址的确定 8255A工作方式设定 程序代码 逻辑电路图 8255A工作方式设定 程序代码 2、键盘接口 按键开关的比较 键盘接口电路 8255A工作方式设定 键盘扫描原理 程序代码 按键开关的比较 键盘接口电路 8255A工作方式设定 键盘扫描原理 获取键盘扫描码过程 键盘扫描码的设置 键扫描码和键值的对应 程序代码 在数据段中设置键盘扫描码表 8255初始化 检查按键 获取键盘扫描码 在数据段中设置键盘扫描码表 8255初始化代码 检查按键的工作过程 首先检查所有键是否都处于松开状态:通过A口向所有行送0,然后读取列值,即读取B口的低四位,如果全部为1,说明所有的键都松开了;如果至少有一位为0的话,说明至少有一个键仍然处于按下的状态,则等待。 检查按键的代码 延时去抖动 由于机械开关的按钮从开始到按下接触稳定,需要经过一段时间的抖动过程,这个过程一般持续20ms。 用软件的方法解决抖动问题:在程序安排一定的延时 COUNT值的计算 键盘扫描码的获取 如果按键有效的话,这时可以读取键盘的扫描码。实质就是判断被按下的键的行号和列号 采用逐行扫描的办法:先扫描第0行,即通过A口输出一个第0位为0其余位为1的数,在从B口读取列值,即B口的低四位,如果这四位均为1的话,说明第0行没有键按下,继续扫描第1行;如果这四位有且仅有一位
文档评论(0)