- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口通信寄存器相关位解析
?IBM微机中(不包括PCjr)串行通信控制器的内部寄存器映象和相关控制位解析
寄存器名 寄存器码名 口地址
COM1 COM2 功能 发送保持寄存器 THR 3F8H 2F8H 输出 数据接收寄存器 RDR 3F8H 2F8H 输入 波特率因子(MSB) BRDL 3F8H 2F8H 输出 波特率因子(LSB) BRDH 3F9H 2F9H 输出 中断允许寄存器 IER 3F9H 2F9H 输出 中断识别寄存器 IIR 3FAH 2FAH 输入 线路控制寄存器 LCR 3FBH 2FBH 输出 调制解调器控制寄存器 MDC 3FCH 2FCH 输出 线路状态寄存器 LST 3FDH 2FDH 输入 调制解调器状态寄存器 MSR 3FEH 2FEH 输入
IBM PCjr中8250 UART的内部寄存器映象
寄存器名 寄存器码名 调制解调器 串行口 功能 发送保持寄存器 THR 3F8H 2F8H 输出 数据接收寄存器 RDR 3F8H 2F8H 输入 波特率因子(MSB) BRDL 3F8H 2F8H 输出 波特率因子(LSB) BRDH 3F9H 2F9H 输出 中断允许寄存器 IER 3F9H 2F9H 输出 中断识别寄存器 IIR 3FAH 2FAH 输入 线路控制寄存器 LCR 3FBH 2FBH 输出 调制解调器控制寄存器 MDC 3FCH 2FCH 输出 线路状态寄存器 LST 3FDH 2FDH 输入 调制解调器状态寄存器 MSR 3FEH 2FEH 输入
注:如PCjr中安装了内部调制解调器,则逻辑上串口为COM2,调制解调器为COM1;如无调制解调器,则串行口是COM1。在PCjr中,串行口基地址始终是2F8H。
实验步骤:??? 1、首先对计算机串口通讯控制芯片8250的控制寄存器进行初始化和设置;??? 2、对com2串口发送一个数据前,查询com1串口的发送移位寄存器是否为空,如果是则发送数据,如果为否则继续查询,直到条件成立;执行完发送指令后,再次查询com1口的发送移位寄存器是否为空,如果是则结束发送;如果为否,则继续查询,直到条件成立。??? 3、从com1串口接受刚才从com2串口发送的数据前,先查询com1口的接收数据标志位是否为1,如果是则表示com1口接收数据准备就绪,执行接收指令,即从com1口读入数据,若否则表示没有准备好接收,继续查询com1口的接收数据标志位,直到为1;接收完数据后,再次查询com1串口的接受寄存器是否为空的标志位的状态,如果为1则程序转入com2串口的数据发送程序;如果否,则继续查询等待,直到接收。
8250的寄存器列表如下:基地址 读/写 寄存器缩写注释 0??? Write??? -????? 发送保持寄存器(DLAB=0)? 0??? Read??? - 接收数据寄存器(DLAB=0)? 0??? Read/Write??? -??? 波特率低八位(DLAB=1)? 1??? Read/Write??? IER???中断允许寄存器? 1??? Read/Write??? -??? 波特率高八位(DLAB=1)? 2??? Read???? IIR 中断标识寄存器? 2 Write??? FCR FIFO控制寄存器? 3??? Read/Write??? LCR 线路控制寄存器? 4??? Read/Write??? MCR MODEM控制寄存器? 5 Read??? LSR 线路状态寄存器? 6 Read??? MSR MODEM状态寄存器? 7??? Read/Write??? - Scratch Register
注:com1口的基地址为:3F8; com2口的基地址为:2F8。在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1,用于设定通讯所需的波特率,这里设置波特率为9600bps;即设置波特率的高八位的寄存器控制字为00h, 设置波特率的低八位的寄存器控制字为0ch;
?
8250的控制寄存器控制/状态字:1、中断允许寄存器(IER)???? 7???? 6??? 5????? 4???? 3???? 2???? 1???? 0Bit7:未使用;Bit6:未使用;Bit5:进入低功耗模式(对于16750芯片有效);Bit4:进入睡眠模式(对于16750芯片有效);Bit3:允许MODEM状态中断;(为1允许,为0禁止)Bit2:允许接收线路状态中断;(为1允许,为0禁止)Bit1:允许发送保持器空中断;(为1允
文档评论(0)