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

📄 计数器与定时器.htm

📁 单片机快速入门
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0047)http://www.onestudy.net/download/elec/dpj16.htm -->
<!-- saved from url=(0048)http://www.21icsearch.com/pmcu/dpjjx/dpjjx18.htm --><HTML><HEAD><TITLE>计数器与定时器</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY background=""><FONT lang=ZH-CN face=黑体 size=4>
<P align=center>计数器与定时器</P></FONT><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>1</FONT><FONT lang=ZH-CN face=宋体 
size=3>米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长</FONT><FONT size=3>1</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>999….</FONT><FONT lang=ZH-CN face=宋体 
size=3>那么单片机中的计数器有多大的容量呢?</FONT><FONT size=3>8031</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>T1</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>RAM</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><FONT lang=ZH-CN face=宋体 size=3>
<P align=justify>三、定时</P></FONT>
<P align=justify><FONT size=3>8031</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>3600</FONT><FONT lang=ZH-CN face=宋体 
size=3>)次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动的时间正好是</FONT><FONT 
size=3>1</FONT><FONT lang=ZH-CN face=宋体 size=3>秒。</FONT></P><FONT lang=ZH-CN 
face=宋体 size=3>
<P align=justify><IMG height=199 src="计数器与定时器.files/jx1801.gif" width=598></P>
<P align=center>图1</P>
<P align=justify>结论:只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。</P>
<P 
align=justify>由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源。</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>12</FONT><FONT lang=ZH-CN face=宋体 
size=3>分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计数脉冲的时间间隔也很准。问题:一个</FONT><FONT 
size=3>12M</FONT><FONT lang=ZH-CN face=宋体 
size=3>的晶振,它提供给计数器的脉冲时间间隔是多少呢?当然这很容易,就是</FONT><FONT size=3>12M/12</FONT><FONT 
lang=ZH-CN face=宋体 size=3>等于</FONT><FONT size=3>1M</FONT><FONT lang=ZH-CN 
face=宋体 size=3>,也就是</FONT><FONT size=3>1</FONT><FONT lang=ZH-CN face=宋体 
size=3>个微秒。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>结论:计数脉冲的间隔与晶振有关,</FONT><FONT 
size=3>12M</FONT><FONT lang=ZH-CN face=宋体 size=3>的晶振,计数脉冲的间隔是</FONT><FONT 
size=3>1</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 size=3></FONT><FONT lang=ZH-CN face=宋体 
size=3>让我们再来看水滴的例子,当水不断落下,盆中的水不断变满,最终有一滴水使得盆中的水满了。这时如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出”。</FONT> 
</P>
<P align=justify><FONT lang=ZH-CN face=宋体 size=3>水溢出是流到地上,而计数器溢出后将使得</FONT><FONT 
size=3>TF0</FONT><FONT lang=ZH-CN face=宋体 size=3>变为“</FONT><FONT 
size=3>1</FONT><FONT lang=ZH-CN face=宋体 size=3>”。至于</FONT><FONT 
size=3>TF0</FONT><FONT lang=ZH-CN face=宋体 size=3>是什么我们稍后再谈。一旦</FONT><FONT 
size=3>TF0</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>,就是产生了变化,产生了变化就会引发事件,就象定时的时间一到,闹钟就会响一样。至于会引发什么事件,我们下次课再介绍,现在我们来研究另一个问题:要有多少个计数脉冲才会使</FONT><FONT 
size=3>TF0</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>。</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>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>65536</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>12</FONT><FONT 
lang=ZH-CN face=宋体 size=3>瓶,一瓶药片为</FONT><FONT size=3>100</FONT><FONT lang=ZH-CN 
face=宋体 size=3>粒,怎么样来满足这个要求呢?</FONT></P><FONT size=3>
<P align=justify>……</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>10000</FONT><FONT 
lang=ZH-CN face=宋体 size=3>滴嘛?</FONT></P>
<P align=justify><FONT size=3></FONT><FONT lang=ZH-CN face=宋体 
size=3>对了,我们采用预置数的方法,我要计</FONT><FONT size=3>100</FONT><FONT lang=ZH-CN face=宋体 
size=3>,那我就先放进</FONT><FONT size=3>65436</FONT><FONT lang=ZH-CN face=宋体 
size=3>,再来</FONT><FONT size=3>100</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>1</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>65.536</FONT><FONT lang=ZH-CN face=宋体 size=3>毫秒,但现在我只要</FONT><FONT 
size=3>10</FONT><FONT lang=ZH-CN face=宋体 size=3>毫秒就可以了,怎么办?</FONT></P><FONT 
size=3>
<P align=justify>……</P></FONT>
<P align=center><FONT size=3>10</FONT><FONT lang=ZH-CN face=宋体 
size=3>个毫秒为</FONT><FONT size=3>10000</FONT><FONT lang=ZH-CN face=宋体 
size=3>个微秒,所以,只要在计数器里面放进</FONT><FONT size=3>55536</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=center> </P><FONT lang=ZH-CN face=黑体 size=4>
<P align=center></P></FONT></BODY></HTML>

⌨️ 快捷键说明

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