第9章可编程输入输出接口.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章可编程输入输出接口

* 8251A的初始化编程必须在复位操作之后,先设置方式选择控制字; 如果设定在异步方式,则马上要输出操作命令字进行设置,然后才能进行数据传送;在数据传送过程中,也可使用操作命令字进行某些操作设置或读取8251A的状态; 在数据传送结束时,若使用IR位为“1”的内部复位命令使8251A复位,则它又可重新接收方式选择字,从而改变工作方式完成其他传送任务。 * 编程举例 (1) 异步方式下的初始化编程 设定8251A工作于异步方式,波特率因子为64,每字符7个数据位,偶校验,2位停止位,则方式选择控制字FBH。 操作命令字的设定,例如使8251A的发送器允许,接收器允许,使状态寄存器中的3个错误标志位复位,使数据终端准备好信号DTR输出低电平,则操作命令字应17H。 * 若8251A的端口地址为51H,则初始化程序如下: MOV AL,0FBH ; 输出方式选择字 OUT 51H,AL MOV AL,17H ; 输出操作命令字 OUT 51H,AL * (2) 同步方式下的初始化编程举例 8251A工作于同步方式,双同步字符,同步字符设定为16H,内同步,偶校验,每字符7个数据位,则方式选择字=38H。 操作命令字设定=97H,使发送器允许,接收器允许,使错误标志复位,开始搜索同步字符,并通知调制解调器,数据终端设备已准备就绪。 * 8251A的端口地址为51H,则本例初始化程序如下: MOV AL, 38H ; 输出方式选择字 OUT 51H,AL MOV AL,16H ; 输出两个同步字符16H OUT 51H,AL OUT 51H,AL MOV AL,97H ;输出操作命令字 OUT 51H,AL CPU执行上述程序之后,即完成了对8251A同步方式的初始化编程。 * ① 异步工作方式,波特率系数为64(即数据传送速率是时钟频率的1/64),采用偶校验,总字符长度为10(1位起始位,8位数据,1位停止位)。 ② 允许接收和发送,使错误位全部复位。 ③ 查询8251A状态字,当接收准备就绪时,则从8251A输入数据,否则等待。 初始化程序: MOV DX,301H ; 8251A控制口地址 MOV AL ; 内部复位命令字 OUT DX,AL ; 送命令字 MOV AL ; 方式控制字 OUT DX,AL ; 送方式控制字 * MOV AL ;操作命令字 OUT DX,AL ;送操作控制字 WAIT:IN AL,DX ;读入状态字 AND AL,02H ;检查RXRDY=1? JZ WAIT ;RXRDY≠1,接收未 ;准备就绪,等待 IN AL,DX * 当8251A与CPU连接时,至少要占用两个端口地址,即控制端口(C/D=1)和数据端口(C/D=0)。在使用8251A时需要一个外部时钟源提供RXC、TXC和CLK信号。RXC和TXC由波特率以及时钟频率与波特率的倍率决定。 CLK则在RXC、TXC频率的基础上增高若干倍。 8251A与CPU通常采用查询或中断方式交换数据。若采用中断方式,两个状态信号TXRDY和RXRDY通过一个非门接到CPU的外中断输入。其余的RD、WR、 RESET都是同名端相连。 9.5.5. 8251A应用举例 * 在编程时,对8251A初始化,输入命令字后就可进行数据传送。在得到中断申请后,通过调用状态字来检测是接收申请(RXRDY=1)还是发送申请(TXRDY=1),然后转至相应的程序模块。 例:用8251A为8086CPU与CRT终端设计一串行通信接口。 假设 8251A控制端口地址为301H,数据端口地址为300H。要求: ① 异步方式传送,数据格式为1位停止位, 8位数据位,奇校验; * ② 波特率因子为16; ③ CPU用查询方式将显示缓冲区的字符“GOOD”送CRT显示。显示缓冲区在数据段, 首地址为2000H。 解:① 硬件连接。 8086CPU与CRT终端接口连接如图 8 - 30 所示。当地址锁存信号ALE有效时, 将CPU送来的地址锁存,地址译码器对输入地址A1~A9进行译码,其输出接到8251A的片选端。地址A0用于选择8251A的数据端口或控制端口。波特率发生器按规定给8251A提供发

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档