深圳市华胄科技有限公司 >> MCU专题 >> 单片机编程


单片机教程:单片机编程入门十六



提交者 电子007  在  2007-9-12 15:49:57 

上一篇 下一篇
单片机教程26课
单片机编程入门十六:


计数器与定时器


一、计数概念的引入


从选票的统计谈起:画“正”。这就是计数,生活中计数的例子处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例子,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的方法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就可以知道走过的线有多长了。


二、计数器的容量


从一个生活中的例子看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴不断落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录音机上的计数器最多只计到999….那么单片机中的计数器有多大的容量呢?8031单片机中有两个计数器,分别称之为T0和T1,这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。


三、定时


8031中的计数器除了可以作为计数之用外,还可以用作时钟,时钟的用途当然很大,如打铃器,电视机定时关机,空调定时开关等等,那么计数器是如何作为定时器来用的呢?


一个闹钟,我将它定时在1个小时后闹响,换言之,也可以说是秒针走了(3600)次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动的时间正好是1秒。




图1


结论:只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。


由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源。


那么提供组定时器的是计数源是什么呢?看图1,原来就是由单片机的晶振经过12分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计数脉冲的时间间隔也很准。问题:一个12M的晶振,它提供给计数器的脉冲时间间隔是多少呢?当然这很容易,就是12M/12等于1M,也就是1个微秒。


结论:计数脉冲的间隔与晶振有关,12M的晶振,计数脉冲的间隔是1微秒。


四、溢出


让我们再来看水滴的例子,当水不断落下,盆中的水不断变满,最终有一滴水使得盆中的水满了。这时如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出”。


水溢出是流到地上,而计数器溢出后将使得TF0变为“1”。至于TF0是什么我们稍后再谈。一旦TF0由0变成1,就是产生了变化,产生了变化就会引发事件,就象定时的时间一到,闹钟就会响一样。至于会引发什么事件,我们下次课再介绍,现在我们来研究另一个问题:要有多少个计数脉冲才会使TF0由0变为1。


五、任意定时及计数的方法


刚才已研究过,计数器的容量是16位,也就是最大的计数值到65536,因此计数计到65536就会产生溢出。这个没有问题,问题是我们现实生活中,经常会有少于65536个计数值的要求,如包装线上,一打为12瓶,一瓶药片为100粒,怎么样来满足这个要求呢?


……


提示:如果是一个空的盆要1万滴水滴进去才会满,我在开始滴水之前就先放入一勺水,还需要10000滴嘛?


对了,我们采用预置数的方法,我要计100,那我就先放进65436,再来100个脉冲,不就到了65536了吗。


定时也是如此,每个脉冲是1微秒,则计满65536个脉冲需时65.536毫秒,但现在我只要10毫秒就可以了,怎么办?


……


10个毫秒为10000个微秒,所以,只要在计数器里面放进55536就可以了。


单片机机系列--单片机教程---单片机教程:单片机编程--单片机教程:单片机编程入门十六


作者:技术资料



单片机教程,五系列(55讲)电子书全集下载

论坛精选:
■ 单片机c语言,10小时学会C 语言 (一)
第一章 C 语言简介与Turbo C 的使用
■ 单片机c语言,10小时学会C 语言 (二)
第二章 C 程序的结构
■ 单片机c语言,10小时学会C 语言 (三)
第三章 常数与变数
■ 单片机c语言,10小时学会C 语言 (四)
第四章 基本输出入函式
■ 单片机c语言,10小时学会C 语言 (五)
第五章 流程图与抉择指令
■ 单片机c语言,10小时学会C 语言 (六)
第六章 循环与自动重复
■ 单片机c语言,10小时学会C 语言 (七)
第七章 数组与指针
■ 单片机c语言,10小时学会C 语言 (八)
第八章 函数与呼叫
■ 单片机c语言,10小时学会C 语言 (九)
第九章 档案存取

1 楼  提交者:Guest 在 2007-9-27 19:01:12
uy
2 楼  提交者:306663570 在 2007-9-28 7:40:08
111
3 楼  提交者:周彭全 在 2007-9-28 9:16:03
好!!!
4 楼  提交者:private80 在 2007-9-28 11:01:11
这个网站的确不错,大力支持!!!
5 楼  提交者:实在不服 在 2007-9-28 16:19:46
OK
6 楼  提交者:plcpic 在 2007-9-28 17:51:37
2
7 楼  提交者:Guest 在 2007-9-29 12:42:44
8 楼  提交者:lyralos 在 2007-9-29 21:48:33
ddddd
9 楼  提交者:tisa 在 2007-9-30 15:20:23
hao
10 楼  提交者:luck1 在 2007-9-30 19:10:23
还好
11 楼  提交者:Guest 在 2007-9-30 20:10:50
ok ok ok ok 
12 楼  提交者:Guest 在 2007-10-1 9:00:04
好啊
13 楼  提交者:zuowangcai 在 2007-10-1 14:38:09
hao 
14 楼  提交者:拈花一笑 在 2007-10-4 2:20:15
A
15 楼  提交者:郭志成 在 2007-10-4 16:19:52
很好
16 楼  提交者:周彭全 在 2007-10-6 10:04:27
h
17 楼  提交者:黄伟 在 2007-10-6 13:04:46
受教了,哈哈
18 楼  提交者:Guest 在 2007-10-6 16:59:11
速度
19 楼  提交者:弘毅 在 2007-10-6 22:38:59
xiexie 
20 楼  提交者:sfmcu 在 2007-10-7 13:09:33
谢谢啦。
21 楼  提交者:sure365 在 2007-10-8 9:38:33
非常好的教材
22 楼  提交者:张建军 在 2007-10-8 11:38:55
good 
23 楼  提交者:Guest 在 2007-10-8 20:36:45
好~~~~~~~~~~~~~~~~~~~~~
24 楼  提交者:Guest 在 2007-10-9 16:45:16
无内容
25 楼  提交者:lizhugood 在 2007-10-10 7:05:52
26 楼  提交者:星雨 在 2007-10-11 14:39:34
uu
27 楼  提交者:Guest 在 2007-10-12 9:53:45
s
28 楼  提交者:不哭死神 在 2007-10-13 21:24:34
1
29 楼  提交者:dataie 在 2007-10-15 11:31:04
sggsdg
30 楼  提交者:123456 在 2007-10-16 11:33:21
sdagfsdg
上一篇 下一篇
当前第〖1〗页 共有11页 转到第 1 2 3 4 5 6 7 8 9 10 11