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

📄 dpjjx23.htm

📁 单片机入门的好书
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<P ALIGN="JUSTIFY"></FONT><LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>输入</font><FONT SIZE=3>  </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在(</FONT><FONT SIZE=3>REN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</FONT><FONT SIZE=3>=1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,串行口采样</FONT><FONT SIZE=3>RXD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>引脚,当采样到</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>至</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的跳变时,确认是开始位</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,就开始接收一帧数据。只有当(</FONT><FONT SIZE=3>RI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</FONT><FONT SIZE=3>=0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>且停止位为</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>或者(</FONT><FONT SIZE=3>SM2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</FONT><FONT SIZE=3>=0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,停止位才进入</FONT><FONT SIZE=3>RB8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位数据才能进入接收寄存器,并由硬件置位中断标志</FONT><FONT SIZE=3>RI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>;否则信息丢失。所以在方式</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>接收时,应先用软件清零</FONT><FONT SIZE=3>RI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>SM2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>标志。</font></LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><p></P></font></OL><OL>

<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>

<P ALIGN="JUSTIFY"></font><LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式</font><FONT SIZE=3>2</font></LI><FONT SIZE=3><p></P></font></OL>

<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式月为固定波特率的</font><FONT SIZE=3>11</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位</FONT><FONT SIZE=3>UART</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式。它比方式</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>增加了一位可程控为</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>或</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的第</FONT><FONT SIZE=3>9</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位数据。</font></P><OL>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>

<P ALIGN="JUSTIFY"></font>
  <LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>输出</font><FONT SIZE=3>: </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>发送的串行数据由</FONT><FONT SIZE=3>TXD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>端输出一帧信息为</FONT><FONT SIZE=3>11</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位,附加的第</FONT><FONT SIZE=3>9</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位来自</FONT><FONT SIZE=3>SCON</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>寄存器的</FONT><FONT SIZE=3>TB8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位,用软件置位或复位。它可作为多机通讯中地址</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>数据信息的标志位,也可以作为数据的奇偶校验位。当</FONT><FONT SIZE=3>CPU</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>执行一条数据写入</FONT><FONT SIZE=3>SUBF</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的指令时,就启动发送器发送。发送一帧信息后,置位中断标志</FONT><FONT SIZE=3>TI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</font></LI>
  <FONT FACE="宋体" LANG="ZH-CN" SIZE=3><p></P>
<P ALIGN="JUSTIFY"></FONT>
  <LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>输入</font><FONT SIZE=3>: </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>在(</FONT><FONT SIZE=3>REN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</FONT><FONT SIZE=3>=1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,串行口采样</FONT><FONT SIZE=3>RXD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>引脚,当采样到</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>至</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的跳变时,确认是开始位</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,就开始接收一帧数据。在接收到附加的第</FONT><FONT SIZE=3>9</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位数据后,当(</FONT><FONT SIZE=3>RI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</FONT><FONT SIZE=3>=0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>或者(</FONT><FONT SIZE=3>SM2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>)</FONT><FONT SIZE=3>=0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,第</FONT><FONT SIZE=3>9</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位数据才进入</FONT><FONT SIZE=3>RB8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位数据才能进入接收寄存器,并由硬件置位中断标志</FONT><FONT SIZE=3>RI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>;否则信息丢失。且不置位</FONT><FONT SIZE=3>RI</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。再过一位时间后,不管上述条件时否满足,接收电路即行复位,并重新检测</FONT><FONT SIZE=3>RXD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>上从</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>到</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的跳变。</font></LI>
  <FONT FACE="宋体" LANG="ZH-CN" SIZE=3><p></P></font></OL><OL>

<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>

<P ALIGN="JUSTIFY"></font><LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>工作方式</font><FONT SIZE=3>3</font></LI><FONT SIZE=3><p></P></font></OL><DIR>
<FONT SIZE=3>

</font><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式</font><FONT SIZE=3>3</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>为波特率可变的</FONT><FONT SIZE=3>11</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位</FONT><FONT SIZE=3>UART</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式。除波特率外,其余与方式</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>相同。</font></P></DIR><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>

<OL>

<P ALIGN="JUSTIFY"><LI>波特率选择</LI><p></P></OL>

</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在</font><FONT SIZE=3>8051</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>串行口的四种工作方式中,方式</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的波特率是固定的,而方式</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3>3</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的波特率是可变的,由定时器</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的溢出率控制。</font></P><OL>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>

<P ALIGN="JUSTIFY"></font><LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式</font><FONT SIZE=3>0</font></LI><FONT SIZE=3><p></P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式</font><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的波特率固定为主振频率的</FONT><FONT SIZE=3>1/12</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</font></P><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></FONT><LI><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式</font><FONT SIZE=3>2</font></LI><FONT SIZE=3><p></P></font></OL>

<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>方式</font><FONT SIZE=3>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的波特率由</FONT><FONT SIZE=3>PCON</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>中的选择位</FONT><FONT SIZE=3>SMOD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>来决定,可由下式表示:</font></P>
<P ALIGN="JUSTIFY"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3>波特率</font><FONT SIZE=3>=</font>2的SMOD次方除以64再乘一个fosc,也就是<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>当</font><FONT SIZE=3>SMOD=1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,波特率为</FONT><FONT SIZE=3>1/32fosc</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,当</FONT><FONT SIZE=3>SMOD=0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,波特率为</FONT><FONT SIZE=3>1/64fosc</font></P>
<P ALIGN="JUSTIFY"> <FONT SIZE=3>3</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>.方式1和方式</FONT><FONT SIZE=3>3</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>定时器</font><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>作为波特率发生器,其公式如下:</font></P><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT> 
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>波特率</font><FONT SIZE=3>=</font><font face="宋体" lang="ZH-CN" size=3><img src="Image5.gif" width=52 height=43>定时器T1溢出率 
  </font></P>
<P ALIGN="JUSTIFY">
<FONT SIZE=3>      T1</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>溢出率</FONT><FONT SIZE=3>=           T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>计数率</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>产生溢出所需的周期数</font></P><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>式中</font><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>计数率为</FONT><FONT SIZE=3>fosc/12;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>当工作于计数器状态时,</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>计数率为外部输入频率,此频率应小于</FONT><FONT SIZE=3>fosc/24</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。产生溢出所需周期与定时器</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的工作方式、</FONT><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的预置值有关。</font></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>定时器</font><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>工作于方式</FONT><FONT SIZE=3>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:溢出所需周期数</FONT><FONT SIZE=3>=8192<SUP><font size="2" face="宋体"></font></SUP>-x</font> 
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>定时器</font><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>工作于方式</FONT><FONT SIZE=3>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:溢出所需周期数</FONT><FONT SIZE=3>=65536-x</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>定时器</font><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>工作于方式</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>:溢出所需周期数</FONT><FONT SIZE=3>=256-x</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>因为方式</font><FONT SIZE=3>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>为自动重装入初值的</FONT><FONT SIZE=3>8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>位定时器</FONT><FONT SIZE=3>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>计数器模式,所以用它来做波特率发生器最恰当。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>当时钟频率选用</font><FONT SIZE=3>11.0592MHZ</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。</font></P><P ALIGN="JUSTIFY">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>下表列出了定时器</font><FONT SIZE=3>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>工作于方式</FONT><FONT SIZE=3>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>常用波特率及初值。</font></P>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=592>
<TR><TD WIDTH="25%" VALIGN="TOP">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">常用波特率</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">Fosc(MHZ)</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">SMOD</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<P ALIGN="JUSTIFY"><FONT SIZE=3>TH1</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>初值</FONT></TD>
</TR>
<TR><TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">19200</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">11.0592</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">1</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">FDH</FONT></TD>
</TR>
<TR><TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">9600</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">11.0592</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">0</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">FDH</FONT></TD>
</TR>
<TR><TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">4800</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">11.0592</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">0</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">FAH</FONT></TD>
</TR>
<TR><TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">2400</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">11.0592</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">0</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">F4h</FONT></TD>
</TR>
<TR><TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">1200</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">11.0592</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">0</FONT></TD>
<TD WIDTH="25%" VALIGN="TOP">
<FONT SIZE=3><P ALIGN="JUSTIFY">E8h</FONT></TD>
</TR>
</TABLE>

<p>&nbsp;</p>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT>
</BODY>
</HTML>

⌨️ 快捷键说明

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