- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 可编程并行接口电路 8255 本章学习的知识点: 1)掌握并行接口8255的基本功能 2)掌握并行接口8255的三种工作方式的特点和用法 3)掌握并行接口8255的硬软件设计方法 本章学习的难点: 1)掌握8255的3种工作方式的特点和用法 2)掌握8255的硬软件设计方法 8255是Intel公司为其8086/8088系列微处理器生产的8位(数据线)通用可编程并行输入输出接口芯片。它具有很强的功能,在使用中可利用软件编程来指定它将要完成的功能。因此,8255获得了广泛的应用。 1)外部引线 8255的外部引线如图所示 D0~D7:双向数据信号线 RD:读信号线 WR:写信号线 CS:片选信号线 A0、A1:口地址选择信号线 RESET:复位输入信号 PA0-PA7:A口输入输出信号线 PB0-PB7:B口输入输出信号线 PC0-PC7:B口输入输出信号线 (1)与外设接口部分 有三个8位的输入输出端口:端口A、端口B、端口C, 其编号:PA7~PA0、PB7~PB0、PC7~PC0。端口都是8 位,都可以作为输入或输出,但功能上各有特色: (2)与微处理器接口部分 这部分主要完成数据传送及逻辑控制。 有:RD、WR、CS、RESET、D0-D7,8255的各端口地址线A0、A1。 8255四个端口: 8255有三个8位的数据输入输出口外,还有一个控制口,其功能是用于对8255的工作方式进行设置。 8255有三种工作方式,三种工作方式都可由CPU向8255的控制口写入控制字来决定8255的工作方式。 控制字有两种:①方式选择控制字 ②C口的按位置位/复位控制字 3种工作方式可用软件编程对控制口设置来指定。三种基本的工作方式为: 方式0-基本的输入输出方式 方式1-选通输入输出方式 方式2-双向传送方式。 2) 工作方式1(选通输入输出方式) 方式1下A口、B口为输出 ①OBF 为输出缓冲器满信号,低电平有效。8255输出信号,当其有效时,CPU已将数据送到指定的口,用于通知外设可将数据取走。 ③INTR 为中断请求信号,高电平有效。它是当外设将数据取走并给出应答ACK 信号之后,8255向CPU提出中断请求,让CPU输出一个新的数据。 方式1下A口、B口均为输入 ① STB :选通控制,输入信号。当外部设备来的8位数据送入到8255的输入缓冲器中时该位有效。 在时间上,外部设备先把数据送到8255的数据口A或B,然后再送出STB信号,用于把数据锁存到8255的输入数据寄存器,等待CPU取数据。 ② IBF : 输入缓冲器满信号,输出信号,高电平有效。当8255的输入缓冲器有新数据后,该位有效,为8255给外设的联络信号,告知外设输入的数据已被接收到,但还没被CPU取走,不能再送新的数据。该信号在STB变为低后,300NS时间内变为高电平(自动完成)。 ③ INTR :为中断请求信号,高电平有效。中端请求的条件:STB变高后300ns内,并IBF信号也为高。(要等数据全部进入到输入缓冲器后才发出中断请求) 3) 工作方式2 (双向输入输出方式) OBF:输出缓冲器满,输出,低有效。这是8255A送给外设的控制信号,有效时表示数据已送入到A口输出锁存器中,用该信号通知外设将数据取走。 INTR:中断请求,输出,高有效。这是8255A送给CPU的中断请求信号。 无论是输入操作还是输出操作,当一个操作完成,要进行下一个操作时8255A都通过该引脚向CPU发中断请求信号。 方式2的A口输入和输出传送各自作为一个中断源,两个中断请求信号在8255A内部相或,只产生一个中断请求通过PC3发给CPU。 INTE1:中断允许1。它是由内部的中断控制触发器发出的允许中断或屏蔽中断的信号。INTE=l,允许A口在输出缓冲器变空(数据已被外设取走)时向 CPU申请中断,让CPU输出一个新的数据;INTE=0,则屏蔽了输出中断请求,这样,即使A口的输出缓冲器已经变空了,也不能在INTR上产生中断请求信号。INTE1为0还是为1是由软件通过对PC6复位/置位来完成的,PC6=0使INTE1为0,PC6=l使INTE1为1。 (由软件置1实现中断) 例:设置C7=1,C5=1,C3=0 MOV AL,0FH OUT (PORTC),AL ;C7=1 MOV AL,0BH OUT (PORTC),AL ;C5=1 MOV AL,06H OUT (PORTC),AL ;C3=0 每位需两条指令完成设置 PORTC为控制口的地址号 7
文档评论(0)