⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pc机与单片机的通讯.htm

📁 8250扩展串口的单片机C51例程和相关资料。
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                            <TD align=middle height=16 width="15%">SG</TD>
                            <TD align=middle height=16 width="10%">-</TD>
                            <TD align=middle height=16 width="172%">信号地</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="10%">8</TD>
                            <TD align=middle height=16 width="10%">1</TD>
                            <TD align=middle height=16 width="15%">DCD</TD>
                            <TD align=middle height=16 width="10%">输入</TD>
                            <TD align=middle height=16 
                          width="172%">数据载波检测</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="10%">20</TD>
                            <TD align=middle height=16 width="10%">4</TD>
                            <TD align=middle height=16 width="15%">DTR</TD>
                            <TD align=middle height=16 width="10%">输出</TD>
                            <TD align=middle height=16 
                              width="172%">数据终端准备就绪(计算机)</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="10%">22</TD>
                            <TD align=middle height=16 width="10%">9</TD>
                            <TD align=middle height=16 width="15%">RI</TD>
                            <TD align=middle height=16 width="10%">输入</TD>
                            <TD align=middle height=16 
                          width="172%">响铃指示</TD></TR></TBODY></TABLE></CENTER></DIV>
                        <P align=left>&nbsp;&nbsp; &nbsp;&nbsp; 
                        以上信号在通讯过程之中可能会被全部或部分使用,最简单的通讯仅需TXD及RXD及SG即可完成,其他的握手信号可以做适当处理或直接悬空,至于是否可以悬空这视乎你的通讯软件。比如说,如果使用DOS所提供的BIOS通讯驱动程序,那么,这些握手信号则需要做如下处理,因为BIOS的通讯驱动使用了这些信号。如果使用自己编写的串行驱动程序则可以完全不使用这些握手信号(详见下面有关章节)。</P>
                        <P align=center><IMG 
                        src="PC机与单片机的通讯.files/2003616224445929.gif"></P>
                        <P align=left>&nbsp;&nbsp;&nbsp; 
                          PC机一般使用8250或16550的作为串行通讯控制器,8250及16550的管脚排列如下:</P>
                        <P align=center><IMG 
                        src="PC机与单片机的通讯.files/200361622455670.gif"></P>
                        <P align=left>&nbsp;&nbsp;&nbsp; 
                          8250(16550)的寄存器如下表所示:</P>
                        <DIV align=center>
                        <CENTER>
                        <TABLE border=1 borderColorLight=#0000ff cellPadding=0 
                        cellSpacing=0 height=244 width="74%">
                          <TBODY>
                          <TR>
                            <TD align=middle height=26 
                            width="15%"><B>基地址</B></TD>
                            <TD align=middle height=26 
                            width="15%"><B>读/写</B></TD>
                            <TD align=middle height=26 
                            width="15%"><B>寄存器缩写</B></TD>
                            <TD align=middle height=26 
                              width="50%"><B>注&nbsp;&nbsp;&nbsp; 释</B></TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">0</TD>
                            <TD align=middle height=16 width="15%">Write</TD>
                            <TD align=middle height=16 width="15%">-</TD>
                            <TD align=middle height=16 
                              width="50%">发送保持寄存器(DLAB=0)</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">0</TD>
                            <TD align=middle height=16 width="15%">Read</TD>
                            <TD align=middle height=16 width="15%">-</TD>
                            <TD align=middle height=16 
                              width="50%">接收数据寄存器(DLAB=0)</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">0</TD>
                            <TD align=middle height=16 
                            width="15%">Read/Write</TD>
                            <TD align=middle height=16 width="15%">-</TD>
                            <TD align=middle height=16 
                              width="50%">波特率低八位(DLAB=1)</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">1</TD>
                            <TD align=middle height=16 
                            width="15%">Read/Write</TD>
                            <TD align=middle height=16 width="15%">IER</TD>
                            <TD align=middle height=16 
                          width="50%">中断允许寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">1</TD>
                            <TD align=middle height=16 
                            width="15%">Read/Write</TD>
                            <TD align=middle height=16 width="15%">-</TD>
                            <TD align=middle height=16 
                              width="50%">波特率高八位(DLAB=1)</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">2</TD>
                            <TD align=middle height=16 width="15%">Read</TD>
                            <TD align=middle height=16 width="15%">IIR</TD>
                            <TD align=middle height=16 
                          width="50%">中断标识寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">2</TD>
                            <TD align=middle height=16 width="15%">Write</TD>
                            <TD align=middle height=16 width="15%">FCR</TD>
                            <TD align=middle height=16 
                          width="50%">FIFO控制寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">3</TD>
                            <TD align=middle height=16 
                            width="15%">Read/Write</TD>
                            <TD align=middle height=16 width="15%">LCR</TD>
                            <TD align=middle height=16 
                          width="50%">线路控制寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">4</TD>
                            <TD align=middle height=16 
                            width="15%">Read/Write</TD>
                            <TD align=middle height=16 width="15%">MCR</TD>
                            <TD align=middle height=16 
                            width="50%">MODEM控制寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">5</TD>
                            <TD align=middle height=16 width="15%">Read</TD>
                            <TD align=middle height=16 width="15%">LSR</TD>
                            <TD align=middle height=16 
                          width="50%">线路状态寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">6</TD>
                            <TD align=middle height=16 width="15%">Read</TD>
                            <TD align=middle height=16 width="15%">MSR</TD>
                            <TD align=middle height=16 
                            width="50%">MODEM状态寄存器</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="15%">7</TD>
                            <TD align=middle height=16 
                            width="15%">Read/Write</TD>
                            <TD align=middle height=16 width="15%">-</TD>
                            <TD align=middle height=16 width="50%">Scratch 
                              Register</TD></TR></TBODY></TABLE></CENTER></DIV>
                        <P align=left>&nbsp;&nbsp;&nbsp; 
                        PC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。</P>
                        <P align=left>&nbsp;&nbsp;&nbsp; 
                          在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1用于设定通讯所需的波特率。常用的波特率参数见下表:</P>
                        <P align=center> </P>
                        <DIV align=center>
                        <CENTER>
                        <TABLE border=1 borderColorLight=#0000ff cellPadding=0 
                        cellSpacing=0 height=210 width="66%">
                          <TBODY>
                          <TR>
                            <TD align=middle height=28 
                              width="30%"><B>速率(BPS)</B></TD>
                            <TD align=middle height=28 
                              width="35%"><B>波特率高八位</B></TD>
                            <TD align=middle height=28 
                              width="35%"><B>波特率低八位</B></TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">50</TD>
                            <TD align=middle height=16 width="35%">09h</TD>
                            <TD align=middle height=16 width="35%">00h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">300</TD>
                            <TD align=middle height=16 width="35%">01h</TD>
                            <TD align=middle height=16 width="35%">80h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">600</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">C0h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">2400</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">30h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">4800</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">18h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">9600</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">0Ch</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">19200</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">06h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">38400</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">03h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">57600</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 width="35%">02h</TD></TR>
                          <TR>
                            <TD align=middle height=16 width="30%">115200</TD>
                            <TD align=middle height=16 width="35%">00h</TD>
                            <TD align=middle height=16 
                          width="35%">01h</TD></TR></TBODY></TABLE></CENTER></DIV>
                        <P align=left> </P>
                        <P align=left>&nbsp;&nbsp;&nbsp; 
                          以下几个表格为8250的寄存器的功能描述:</P>
                        <P align=left>  中断允许寄存器(IER):</P>
                        <DIV align=center>
                        <CENTER>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -