课件:计数定时接口.ppt

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

* 8250的内部寄存器(续) 发送保持寄存器(THR)——BASE+0 要发送的数据写入此寄存器。当发送移位寄存器TSR空时,THR中的内容移入TSR被发送出去。 只有THR空时,CPU才能写入下一个要发送的数据 接收缓冲寄存器(RBR)——BASE+0 RSR收到一个完整的数据后,就将其送入RBR中。CPU可从RBR中读取收到的数据。 RBR只能缓冲一个数据,当CPU未能及时取走上一个数据,下一个数据又送入RBR时,会产生溢出错 * 8250的内部寄存器(续) 中断允许寄存器(IER)——BASE+1 决定哪类中断可以产生(也可禁止所有中断产生) 0 0 0 0 D3 D2 D1 D0 1=允许RBR满中断 1=允许THR空中断 1=允许线路状态中断 (溢出错、奇偶错、格式错、Break) 1=允许Modem状态中断 * 8250的内部寄存器(续) 中断识别寄存器(IIR)——BASE+2 用于识别产生中断的原因 0 0 0 0 0 D2 D1 D0 0=无中断 1=有中断 00=Modem状态中断(优先级最低) 01=THR空中断 10=RBR满中断 11=线路状态中断 * 8250的内部寄存器(续) Modem控制寄存器(MCR)—BASE+4 产生RTS、DTR信号 产生OUT1、OUT2信号 设置循环自检状态 0 0 0 D4 D3 D2 D1 D0 DTR RTS OUT1 OUT2 LOOP * 8250的内部寄存器(续) Modem状态寄存器(MSR)—BASE+6 反映RS232接口的状态 △CTS △DSR △RI △RLSD CTS D7 D6 D5 D4 D3 D2 D1 D0 RLSD RI DSR 反映4个引脚的当前状态(反相值) 反映了自上次读MSR后这4个引脚是否发生了变化 (1=发生了变化) * 8250发送数据的工作过程 1)CPU(数据)→8250的THR ; 2)TSR移空时,THR → TSR,LSR中“数据发送保持寄存器空” 状态位置位 ; 3)TSR根据LCR中规定的格式从低到高逐位发送数据 ; 4)LSR中“数据发送保持寄存器空” 状态位可用来产生中断,也可查询该状态位,以实现数据的连续发送。 TSR THR 串行数据输出 并行数据 LSR INT LCR 数据 状态 1) 2) 3) 2) 4) 4) * 8250接收数据的工作过程 1)SIN引脚上的串行数据逐位进入RSR; 2)RSR根据LSR中规定的数据位数确定是否收到了一个完整的数据,收到后将数据→RBR; 3)RBR收到RSR的数据后,将LSR寄存器中“接收缓冲寄存器满”的状态位置位; 4)LSR中“接收缓冲寄存器满”状态位可用来产生中断,也可查询该状态位,以实现数据的连续接收。 RSR RBR 串行数据输入 并行数据 LSR INT LCR 数据 状态 1) 2) 3) 4) * 3. 8250 的初始化流程 初始化程序程序例子见P338-339 流程图见右图 使LCR的最高位=1 写除数寄存器 写LCR寄存器,同时 使LCR的最高位=0 写MCR寄存器 写IER寄存器 * 用BIOS功能初始化8250 PC机有两个串行接口: COM1(基地址3F8H), COM2(基地址2F8H) BIOS通过中断14H提供串行通信功能 功能0:初始化串行接口 功能1:发送一个字符 功能2:接收一个字符 功能3:读串行接口状态 INT14H仅提供了查询方式的通信服务 要使用中断方式进行发送和接收必须自行编程 * 用BIOS功能初始化8250 功能0(初始化)的入口参数为: AH=0 AL=初始化参数 DX=串口编号(0=COM1, 1=COM2) 初始化参数定义如下: D7 D6 D5 D4 D3 D2 D1 D0 波特率 100=1200 101=2400 110=4800 111=9600 奇偶校验 x0=无校验 01=奇校验 11=偶校验 数据位数 00=5位 01=6位 10=7位 11=8位 停止位 0=1位 1=2位 MOV AH, 0 MOV AL, 初始化参数 MOV DX, 0 INT 14H * 8250的数据发送程序(查询) LEA SI, DATA_BUFFER MOV CX, DATA_BYTES L1: MOV DX, BASE+5 ;L

文档评论(0)

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

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

1亿VIP精品文档

相关文档