51单片机定时器计数器解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 定时
一个钟表,秒针走60次,就是1分钟, 所以时间就转化为秒针走的次数,也就 是计数的次数,可见,计数的次数和时 间有关。只要计数脉冲的间隔相等,则 计数值就代表了时间,即可实现定时。 秒针每一次走动的时间是1秒,所以秒 针走60次,就是60秒,即1分钟。 因此,单片机中的定时器和计数器是一 个东西,只不过计数器是记录的外界发 生的事情,而定时器则是由单片机提供 一个非常稳定的计数源。
6.单片机定时器/计数器的结构
5.1 定时器的结构及工作原理
组成:两个16位的定时器T0和T1,以及他们的工作方式 寄存器TMOD和控制寄存器TCON等组成。内部通过总 线与CPU相连。 定时器T0和T1各由两个8位特殊功能寄存器TH0、TL0、 TH1、TL1构成。 工作方式寄存器TMOD:用于设置定时器的工作模式和 工作方式; 控制寄存器TCON:用于启动和停止定时器的计数,并控 制定时器的状态; 单片机复位时,两个寄存器的所有位都被清0。
f0
f f0 /12
加1计数器 定时 计数
Tx TRx
控制信号K “1”启动,计数器运行; “0”停止,计数器停止;
TH x
TLx
TFx
INTx
定时器/计数器原理框图
当控制信号 定时器工作在定时方式;加1计数器对 脉冲 f 进行计数,每来一个脉冲,计数器加 1 ,直到计时器 f f0 /12 ,即一个计数脉冲的周期就是一个 计满溢出; 因为 f f0 /12 机器周期;计数器计数的是机器周期脉冲个数。从而实现 定时。 当控制信号 定时器工作在计数方式;加1计数器对 来自输入引脚T0(P3.4)和T1(P3.5)的外信号脉冲进行计数, 每来一个脉冲,计数器加1,直到计时器计满溢出;
8
两个可编程的定时器/计数器T1、T0。 每个定时器内部结构实际上就是一个可编程的加法计数 器,由编程来设置它工作在定时状态还是计数状态。
两种工作模式: (1) 计数器工作模式 就是对外部事件进行计数。计数脉冲来自相应的外部输 入引脚T0(P3.4)或T1(P3.5)。当输入信号发生由1至0 的负跳变(下降沿)时,计数器(TH0,TL0或TH1,TL1) 的值增1。计数的最高频率一般为振荡频率的1/24。 Why? (2) 定时器工作模式 也是通过计数实现的。计数脉冲来自内部时钟脉冲,每 个机器周期计数值增1,每个机器周期=12个振荡周期, 因此计数频率为振荡频率的1/12。所以定时时间=计数 值×机器周期。 4种工作方式 (方式0-方式3) 。
C/T = 1
10
TCON(88H)
控制信号K可以控制计数器的“启动”和“停止”,
K = TRx(INTx + GATE)
11
指令周期 S1 S2 机器周期 S3 S4 S5 S6 S1 S2 机器周期 S4 S3 S5 S6
P P P P XTAL2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 1 P2 P1 P2 1 P2 1 P2 1 P2 P1 P2 P1 P2 (OSC) 振荡周期 状态周期
同学们选班长时,要投票,然后统计选票, 常用的方法是画“正”,每个“正”号五 划,代表五票,最后统计“正”号的个数 即可,这就是计数。单片机有两个定时/ 计数器T0和T1,都可对外部输入脉冲计 数。
2.计数器的容量
我们用一个瓶子盛水,水一滴滴地滴 入瓶中,水滴不断落下,瓶的容量是 有限的,过一段时间之后,水就会逐 渐变满,再滴就会溢出。单片机中的 计数器也一样,T0和T1这两个计数器 分别是由两个8位的RAM单元组成的, 即每个计数器都是16位的计数器,最 大的计数量是65536。
在每个机器周期的S5P2期间采样检测引脚输入电平。 若前一个机器周期采样值为“1”,后一个机器周期采样值 为“0”,则计数器加1。 新的计数值在检测到输入引脚电平发生“1”到“0”的负 跳变(下降沿)后,于下一个机器周期的S3P1期间装入计 数器中。 由于CPU需要两个机器周期来识别一个“1”到“0”的跳变 信号,所以最高的计数频率为振荡周期的1/24。
12
5.1 定时器的结构及工作原理
定时/计数器对输入信号的要求
1.
外部计数脉冲的最高频率为系统振荡器频率的1/24,例如 选用12MHz频率的晶体,则可输入500KHz的外部脉冲。
输入信号的高、低电平至少要分别保持一个机器周期。 如图所示,图中Tcy为机器周期。
2.
13
可编程定时器的工作方式、启动、停止、溢 出标志、计数器等都是可编程的——通过设 置寄存器TMOD,TCON,TH0,TL0,TH1和TL1 实现。 当设置了定时器的工作方式并启动定时器工 作后,定时器就按被设定好的工作方式独立 工作,不再占用CPU,只有在计数器计满溢 出时才向CPU申请中断,占用CPU。 由此可见,定时器是单片机中工作效率高且 应用灵活的部件。
4. 溢出
上面我们举的例子,水滴满瓶子后, 再滴就会溢出,流到桌面上。单片机 计数器溢出后将使得TF0变为“1”, 一旦TF0由0变成1,就是产生了变化, 就会引发事件,就会申请中断。
5. 任意定时及计数的方法
计数器的容量是16位,也就是最大的计数值 到65536,计数计到65536就会产生溢出。 如果计数值要小于65536,怎么办呢?一个 空的瓶子,要1万滴水滴进去才会满,我们在 开始滴水之前就先放入一些水,就不需要 10000滴了。比如先放入2000滴,再滴8000 滴就可以把瓶子滴满。在单片机中,我们也 采用类似的方法,称为“预置数”的方法, 我们要计1000,那就先放进64536,再来 1000个脉冲,不就到了65536了吗?定时也 是如此。
第5章 定时器/计数器及其应用
5.1 定时器的结构及工作原理 5.2 定时器的TMOD和TCON寄存器 5.3 定时器的工作方式
Leabharlann Baidu
◦ ◦ ◦ ◦
5.4 定时器的编程和应用
5.3.1 方式0 5.3.2 方式1 5.3.3 方式2 5.3.4 方式3
1
基本知识
定时器/计数器简介 1.计数概念