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

📄 定时-计数器的方式控制字.htm

📁 单片机快速入门
💻 HTM
📖 第 1 页 / 共 2 页
字号:
  size=3>,且</FONT><FONT size=3>INT1</FONT><FONT lang=ZH-CN face=宋体 
  size=3>引脚也是高电平,开关才合上,计数脉冲才得以通过。这个特性可以用来测量一个信号的高电平的宽度,想想看,怎么测?</FONT><FONT 
  lang=ZH-CN face=宋体 size=3> 
  <P></P></FONT></LI></OL>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>为什 么在这种模式下只用</FONT><FONT 
size=3>13</FONT><FONT lang=ZH-CN face=宋体 size=3>位呢?干吗不用</FONT><FONT 
size=3>16</FONT><FONT lang=ZH-CN face=宋体 size=3>位,这是为了和</FONT><FONT 
size=3>51</FONT><FONT lang=ZH-CN face=宋体 size=3>机的前辈</FONT><FONT 
size=3>48</FONT><FONT lang=ZH-CN face=宋体 
size=3>系列兼容而设的一种工作式,如果你觉得用得不顺手,那就干脆用第二种工作方式。</FONT></P>
<OL><FONT lang=ZH-CN face=宋体 size=3>
  <P align=justify></FONT>
  <LI><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT size=3>1</FONT><FONT 
  size=3> 
  <P></P></FONT>
  <P align=justify><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT 
  size=3>1</FONT><FONT lang=ZH-CN face=宋体 size=3>是</FONT><FONT 
  size=3>16</FONT><FONT lang=ZH-CN face=宋体 size=3>位的定时</FONT><FONT 
  size=3>/</FONT><FONT lang=ZH-CN face=宋体 size=3>计数方式,将</FONT><FONT 
  size=3>M1M0</FONT><FONT lang=ZH-CN face=宋体 size=3>设为</FONT><FONT 
  size=3>01</FONT><FONT lang=ZH-CN face=宋体 size=3>即可,其它特性与工作方式</FONT><FONT 
  size=3>0</FONT><FONT lang=ZH-CN face=宋体 size=3>相同。</FONT></P><FONT lang=ZH-CN 
  face=宋体 size=3>
  <P align=justify></FONT></P>
  <LI><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT size=3>2</FONT><FONT 
  size=3> 
  <P></P></FONT>
  <P align=justify><FONT lang=ZH-CN face=宋体 
  size=3>在介绍这种式方式之前先让我们思考一个问题:上一次课我们提到过任意计数及任意定时的问题,比如我要计</FONT><FONT 
  size=3>1000</FONT><FONT lang=ZH-CN face=宋体 size=3>个数,可是</FONT><FONT 
  size=3>16</FONT><FONT lang=ZH-CN face=宋体 size=3>位的计数器要计到</FONT><FONT 
  size=3>65536</FONT><FONT lang=ZH-CN face=宋体 
  size=3>才满,怎么办呢?我们讨论后得出的办法是用预置数,先在计数器里放上</FONT><FONT size=3>64536</FONT><FONT 
  lang=ZH-CN face=宋体 size=3>,再来</FONT><FONT size=3>1000</FONT><FONT lang=ZH-CN 
  face=宋体 
  size=3>个脉冲,不就行了吗?是的,但是计满了之后我们又该怎么办呢?要知道,计数总是不断重复的,流水线上计满后马上又要开始下一次计数,下一次的计数还是</FONT><FONT 
  size=3>1000</FONT><FONT lang=ZH-CN face=宋体 
  size=3>吗?当计满并溢出后,计数器里面的值变成了</FONT><FONT size=3>0</FONT><FONT lang=ZH-CN 
  face=宋体 size=3>(为什么,可以参考前面课程的说明),因此下一次将要计满</FONT><FONT 
  size=3>65536</FONT><FONT lang=ZH-CN face=宋体 
  size=3>后才会溢出,这可不符合要求,怎么办?当然办法很简单,就是每次一溢出时执行一段程序(这通常是需要的,要不然要溢出干吗?)可以在这段程序中做把预置数</FONT><FONT 
  size=3>64536</FONT><FONT lang=ZH-CN face=宋体 
  size=3>送入计数器中的事情。所以采用工作方式</FONT><FONT size=3>0</FONT><FONT lang=ZH-CN face=宋体 
  size=3>或</FONT><FONT size=3>1</FONT><FONT lang=ZH-CN face=宋体 
  size=3>都要在溢出后做一个重置预置数的工作,做工作当然就得要时间,一般来说这点时间不算什么,可是有一些场合我们还是要计较的,所以就有了第三种工作方式&amp;#0;&amp;#0;自动再装入预置数的工作方式。</FONT></P>
  <P align=justify><FONT lang=ZH-CN face=宋体 
  size=3>既然要自动得新装入预置数,那么预置数就得放在一个地方,要不然装什么呢?那么预置数放在什么地方呢?它放在</FONT><FONT 
  size=3>T</FONT><FONT lang=ZH-CN face=宋体 size=3>(</FONT><FONT 
  size=3>0/1</FONT><FONT lang=ZH-CN face=宋体 size=3>)的高</FONT><FONT 
  size=3>8</FONT><FONT lang=ZH-CN face=宋体 size=3>位,那么这样高</FONT><FONT 
  size=3>8</FONT><FONT lang=ZH-CN face=宋体 
  size=3>位不就不能参与计数了吗?是的,在工作方式</FONT><FONT size=3>2</FONT><FONT lang=ZH-CN 
  face=宋体 size=3>,只有低</FONT><FONT size=3>8</FONT><FONT lang=ZH-CN face=宋体 
  size=3>位参与计数,而高</FONT><FONT size=3>8</FONT><FONT lang=ZH-CN face=宋体 
  size=3>位不参与计数,用作预置数的存放,这样计数范围就小多了,当然做任可事总有代价的,关键是看值不值,如果我根本不需要计那么多数,那么就可以用这种方式。看图</FONT><FONT 
  size=3>4</FONT><FONT lang=ZH-CN face=宋体 size=3>,每当计数溢出,就会打开</FONT><FONT 
  size=3>T</FONT><FONT lang=ZH-CN face=宋体 size=3>(</FONT><FONT 
  size=3>0/1</FONT><FONT lang=ZH-CN face=宋体 size=3>)的高、低</FONT><FONT 
  size=3>8</FONT><FONT lang=ZH-CN face=宋体 size=3>位之间的开关,计预置数进入低</FONT><FONT 
  size=3>8</FONT><FONT lang=ZH-CN face=宋体 
  size=3>位。这是由硬件自动完成的,不需要由人工干预。</FONT></P>
  <P align=justify><FONT lang=ZH-CN face=宋体 
  size=3>通常这种式作方式用于波特率发生器(我们将在串行接口中讲解),用于这种用途时,定时器就是为了提供一个时间基准。计数溢出后不需要做事情,要做的仅仅只有一件,就是重新装入预置数,再开始计数,而且中间不要任何延迟,可见这个任务用工作方式</FONT><FONT 
  size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>来完成是最妙不过了。</FONT></P><FONT 
  lang=ZH-CN face=宋体 size=3>
  <P align=justify></FONT></P>
  <LI><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT size=3>3</FONT><FONT 
  size=3> 
  <P></P></FONT></LI></OL>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>这种式作方式之下,定时</FONT><FONT 
size=3>/</FONT><FONT lang=ZH-CN face=宋体 size=3>计数器</FONT><FONT 
size=3>0</FONT><FONT lang=ZH-CN face=宋体 size=3>被拆成</FONT><FONT 
size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>个独立的定时</FONT><FONT 
size=3>/</FONT><FONT lang=ZH-CN face=宋体 size=3>计数器来用。其中,</FONT><FONT 
size=3>TL0</FONT><FONT lang=ZH-CN face=宋体 size=3>可以构成</FONT><FONT 
size=3>8</FONT><FONT lang=ZH-CN face=宋体 size=3>位的定时器或计数器的工作方式,而</FONT><FONT 
size=3>TH0</FONT><FONT lang=ZH-CN face=宋体 
size=3>则只能作为定时器来用。我们知道作定时、计数器来用,需要控制,计满后溢出需要有溢出标记,</FONT><FONT 
size=3>T0</FONT><FONT lang=ZH-CN face=宋体 
size=3>被分成两个来用,那就要两套控制及、溢出标记了,从何而来呢?</FONT><FONT size=3>TL0</FONT><FONT 
lang=ZH-CN face=宋体 size=3>还是用原来的</FONT><FONT size=3>T0</FONT><FONT lang=ZH-CN 
face=宋体 size=3>的标记,而</FONT><FONT size=3>TH0</FONT><FONT lang=ZH-CN face=宋体 
size=3>则借用</FONT><FONT size=3>T1</FONT><FONT lang=ZH-CN face=宋体 
size=3>的标记。如此</FONT><FONT size=3>T1</FONT><FONT lang=ZH-CN face=宋体 
size=3>不是无标记、控制可用了吗?是的。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>一般情况处,只有在</FONT><FONT 
size=3>T1</FONT><FONT lang=ZH-CN face=宋体 size=3>以工作方式</FONT><FONT 
size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>运行(当波特率发生器用)时,才让</FONT><FONT 
size=3>T0</FONT><FONT lang=ZH-CN face=宋体 size=3>工作于方式</FONT><FONT 
size=3>3</FONT><FONT lang=ZH-CN face=宋体 size=3>的。</FONT></P><B>
<P align=justify><FONT lang=ZH-CN face=宋体 size=5>定时器</FONT><FONT 
size=5>/</FONT><FONT lang=ZH-CN face=宋体 size=5>计数器的定时</FONT><FONT 
size=5>/</FONT><FONT lang=ZH-CN face=宋体 size=5>计数范围</FONT></P></B>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT 
size=3>0</FONT><FONT lang=ZH-CN face=宋体 size=3>:</FONT><FONT 
size=3>13</FONT><FONT lang=ZH-CN face=宋体 size=3>位定时</FONT><FONT 
size=3>/</FONT><FONT lang=ZH-CN face=宋体 size=3>计数方式,因此,最多可以计到</FONT><FONT 
size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>的</FONT><FONT 
size=3>13</FONT><FONT lang=ZH-CN face=宋体 size=3>次方,也就是</FONT><FONT 
size=3>8192</FONT><FONT lang=ZH-CN face=宋体 size=3>次。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT 
size=3>1</FONT><FONT lang=ZH-CN face=宋体 size=3>:</FONT><FONT 
size=3>16</FONT><FONT lang=ZH-CN face=宋体 size=3>位定时</FONT><FONT 
size=3>/</FONT><FONT lang=ZH-CN face=宋体 size=3>计数方式,因此,最多可以计到</FONT><FONT 
size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>的</FONT><FONT 
size=3>16</FONT><FONT lang=ZH-CN face=宋体 size=3>次方,也就是</FONT><FONT 
size=3>65536</FONT><FONT lang=ZH-CN face=宋体 size=3>次。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>工作方式</FONT><FONT 
size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>和工作方式</FONT><FONT 
size=3>3</FONT><FONT lang=ZH-CN face=宋体 size=3>,都是</FONT><FONT 
size=3>8</FONT><FONT lang=ZH-CN face=宋体 size=3>位的定时</FONT><FONT 
size=3>/</FONT><FONT lang=ZH-CN face=宋体 size=3>计数方式,因此,最多可以计到</FONT><FONT 
size=3>2</FONT><FONT lang=ZH-CN face=宋体 size=3>的</FONT><FONT 
size=3>8</FONT><FONT lang=ZH-CN face=宋体 size=3>次方,也说是</FONT><FONT 
size=3>256</FONT><FONT lang=ZH-CN face=宋体 size=3>次。</FONT></P><FONT lang=ZH-CN 
face=宋体 size=3>
<P align=justify>预置值计算:用最大计数量减去需要的计数次数即可。</P></FONT>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>例:流水线上一个包装是</FONT><FONT 
size=3>12</FONT><FONT lang=ZH-CN face=宋体 size=3>盒,要求每到</FONT><FONT 
size=3>12</FONT><FONT lang=ZH-CN face=宋体 size=3>盒就产生一个动作,用单片机的工作方式</FONT><FONT 
size=3>0</FONT><FONT lang=ZH-CN face=宋体 size=3>来控制,应当预置多大的值呢?对了,就是</FONT><FONT 
size=3>8192-12=8180</FONT><FONT lang=ZH-CN face=宋体 size=3>。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 
size=3>以上是计数,明白了这个道理,定时也是一样。这在前面的课程已提到,我们不再重复,请参考前面的例子</FONT><FONT lang=ZH-CN 
face=宋体 size=3>。</FONT> </P>
<P align=center><A href="http://www.onestudy.net/"><FONT 
face=黑体>返回“一学网</FONT><FONT face="Times New Roman" color=#000000> </FONT><FONT 
face="Times New Roman"><FONT color=#000000>www.</FONT><FONT 
color=#ff0000>one</FONT><FONT color=#008000>study</FONT>.net</FONT><FONT 
face=黑体> ”首页</FONT></A></P>
<P align=justify> </P><FONT lang=ZH-CN face=宋体 size=3>
<P align=justify></P>
<P align=justify> </P></FONT></BODY></HTML>

⌨️ 快捷键说明

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