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

📄 dpjjx19.htm

📁 本单片机教程是平凡老师花了大量时间
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft FrontPage 5.0">
<TITLE>定时/计数器的方式控制字</TITLE>
</HEAD>
<BODY background="../back.jpg">
<B>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<font size="2">说明:本课部份图请打本单片机书,都有,抱歉,不及画。</font></P>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>定时</font><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器的方式控制字</font></P>
</B>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>从上一节我们已经得知,单片机中的定时</font><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器都可以有多种用途,那么我怎样才能让它们工作于我所需要的用途呢?这就要通过定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器的方式控制字来设置。</font></P>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>在单片机中有两个特殊功能寄存器与定时</font><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数有关,这就是</FONT><FONT SIZE=2>TMOD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>和</FONT><FONT SIZE=2>TCON</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>。顺便说一下,</FONT><FONT SIZE=2>TMOD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>和</FONT><FONT SIZE=2>TCON</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>是名称,我们在写程序时就可以直接用这个名称来指定它们,当然也可以直接用它们的地址</FONT><FONT SIZE=2>89H</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>和</FONT><FONT SIZE=2>88H</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。</font></P>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>&#9;<img src="jx1901.gif" width="553" height="73">从图</font><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>中我们可以看出,</FONT><FONT SIZE=2>TMOD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>被分成两部份,每部份</FONT><FONT SIZE=2>4</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位。分别用于控制</FONT><FONT SIZE=2>T1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>和</FONT><FONT SIZE=2>T0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,至于这里面是什么意思,我们下面介绍。</font></P>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>&#9;<img src="jx1902.gif" width="553" height="72">从图</font><FONT SIZE=2>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>中我们可以看出,</FONT><FONT SIZE=2>TCON</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>也被分成两部份,高</FONT><FONT SIZE=2>4</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位用于定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器,低</FONT><FONT SIZE=2>4</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位则用于中断(我们暂不管)。而</FONT><FONT SIZE=2>TF1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)我们上节课已提到了,当计数溢出后</FONT><FONT SIZE=2>TF1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)就由</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>变为</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>。原来</FONT><FONT SIZE=2>TF1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)在这儿!那么</FONT><FONT SIZE=2>TR0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>、</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>又是什么呢?看上节课的图。</font></P>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> 
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>&#9;计数脉冲要进入计数器还真不容易,有层层关要通过,最起码,就是</font><FONT SIZE=2>TR0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)要为</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,开关才能合上,脉冲才能过来。因此,</FONT><FONT SIZE=2>TR0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)称之为运行控制位,可用指令</FONT><FONT SIZE=2>SETB</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>来置位以启动计数器</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>定时器运行,用指令</FONT><FONT SIZE=2>CLR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>来<img src="jx1903.gif" width="555" height="230">关闭定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器的工作,一切尽在自已的掌握中。</font></P>
<B>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>定时</font><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器的四种工作方式</font></P></B><OL>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></FONT><LI>
<p style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>工作方式</font><FONT SIZE=2>0</LI></font><FONT SIZE=3></p>
<p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></P></font></OL>

<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>定时器</font><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器的工作方式</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>称之为</FONT><FONT SIZE=2>13</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数方式。它由</FONT><FONT SIZE=2>TL</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>1/0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)的低</FONT><FONT SIZE=2>5</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位和</FONT><FONT SIZE=2>TH</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>0/1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)的</FONT><FONT SIZE=2>8</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位构成</FONT><FONT SIZE=2>13</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位的计数器,此时</FONT><FONT SIZE=2>TL</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>(</FONT><FONT SIZE=2>1/0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>)的高</FONT><FONT SIZE=2>3</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位未用。</font></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=2>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">我们用这个图来讨论几个问题:</P>
</FONT><OL><FONT SIZE=3>
  <P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></FONT><LI>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"><FONT SIZE=2>M1M0</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>:定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器一共有四种工作方式,就是用</FONT><FONT SIZE=2>M1M0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>来控制的,</FONT><FONT SIZE=2>2</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>位正好是四种组合。</font><font size="2"></LI></font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></p>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></P>
</FONT><FONT SIZE=3>
  <P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></FONT><LI>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"><FONT SIZE=2>C/T</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>:前面我们说过,定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们&#0;&#0;编程者。如果</FONT><FONT SIZE=2>C/T</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>为</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>就是用作定时器(开关往上打),如果</FONT><FONT SIZE=2>C/T</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>为</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>就是用作计数器(开关往下打)。顺便提一下:一个定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多初学者却会有此困惑。</font><font size="2"></LI></font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></p>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></P>
</FONT><FONT SIZE=3>
  <P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></FONT><LI>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"><FONT SIZE=2>GATE</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>:看图,当我们选择了定时或计数工作方式后,定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况</font><font size="2"></LI></font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></p>
  <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></P></font></OL><OL>

<FONT SIZE=3>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></FONT><LI>
<p style="line-height: 150%; margin-top: 0; margin-bottom: 0"><FONT SIZE=2>GATE=0</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,分析一下逻辑,</FONT><FONT SIZE=2>GATE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>非后是</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,进入或门,或门总是输出</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,和或门的另一个输入端</FONT><FONT SIZE=2>INT1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>无关,在这种情况下,开关的打开、合上只取决于</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,只要</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>是</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,开关就合上,计数脉冲得以畅通无阻,而如果</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>等于</FONT><FONT SIZE=2>0</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>则开关打开,计数脉冲无法通过,因此定时</FONT><FONT SIZE=2>/</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>计数是否工作,只取决于</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>。</font><font size="2"></LI></font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></p>
<p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></P>
</FONT><FONT SIZE=3>
<P ALIGN="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"></FONT><LI>
<p style="line-height: 150%; margin-top: 0; margin-bottom: 0"><FONT SIZE=2>GATE=1</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,在此种情况下,计数脉冲通路上的开关不仅要由</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>来控制,而且还要受到</FONT><FONT SIZE=2>INT1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>引脚的控制,只有</FONT><FONT SIZE=2>TR1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>为</FONT><FONT SIZE=2>1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>,且</FONT><FONT SIZE=2>INT1</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=2>引脚也是高电平,开关才合上,计数脉冲才得以通过。这个特性可以用来测量一个信号的高电平的宽度,想想看,怎么测?</font><font size="2"></LI></font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></p>

⌨️ 快捷键说明

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