单片机定时器计数器原理与应用

上传人:mg****85 文档编号:44598916 上传时间:2018-06-14 格式:PDF 页数:9 大小:212.22KB
返回 下载 相关 举报
单片机定时器计数器原理与应用_第1页
第1页 / 共9页
单片机定时器计数器原理与应用_第2页
第2页 / 共9页
单片机定时器计数器原理与应用_第3页
第3页 / 共9页
单片机定时器计数器原理与应用_第4页
第4页 / 共9页
单片机定时器计数器原理与应用_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《单片机定时器计数器原理与应用》由会员分享,可在线阅读,更多相关《单片机定时器计数器原理与应用(9页珍藏版)》请在金锄头文库上搜索。

1、 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 定时器定时器/计数器计数器 在工业检测、控制中,许多场合都要用到计数或定时功能。MCS-51 单片机内有两个可编程的定时器/计数器 T1、T0,以满足这方面的需要。两个定时器/计数器都具有定时器和计数器功能。 、两种工作模式、两种工作模式: 1) 计数功能是对外来脉冲进行计数。MCS51 芯片有 T0 和 T1 两个输入引脚,分别是这两个计数器的计数脉冲输入端。每当外部输入的脉冲发生负跳变时,计数器加 1。 2) 定时器功能也是通过计数器的计数来实现的, 不过此时的计数脉冲来自单片机内部

2、, 即每个机器周期产生一个计数脉冲,也就是每经过 1 个机器周期的时间,计数器加 1。如果单片机采用 12MHz 晶体, 则计数器频率为 1MHz(一个机器周期等于 12 个振荡周期)即每过 1us 的时间计数器加 1。这样可以根据计数值计数出定时时间,也可以根据定时时间的要求计算出计数器的初值。当定时器/计数器为定时工作方式时,计数器的加 1 信号由振荡器的 12 分频信号产生,即每过一个机器周期,计数器加 1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。 3)如果晶阵频率为 12MHz 是如何计算的呢? 单片机的定时器/计数器具有 4 种工作方式。 其中控制字均在相应得特

3、殊功能寄存器中,通过编程,用户可以方便地选择定时器/计数器两种工作模式和 4 种工作方式。 、定时器、定时器/计数器的结构计数器的结构 MCS-51 单片机的定时器/计数器结构如下图, 定时器/计数器 T0 由特殊功能寄存器 TH0, TL0构成,定时器/计数器 T1 由特殊功能寄存器 TH1、TL1 构成。 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 特殊功能寄存器 TMOD 用于选择定时器/计数器 T0、T1 的工作模式和工作方式。TCON用于控制 T0、T1 的启动和停止计数,同时包含了 T0、T1 的状态。TMOD、TCON

4、 这两个寄存器的内容由软件设置。单片机复位时,两个寄存器的所有位都被清“0” 。 、工作方式寄存器、工作方式寄存器 TMOD TMOD 用于选择定时器/计数器的工作模式和工作方式,它的字节地址为 89H,不能进行位寻址。其格式如下: 8 位分为两组,高四位控制 T1,低四位控制 T0。 1) GATE=0 时,仅由运行控制位 TR0 或 TR1=1 来启动定时器/计数器运行。 GATE=1 时,由 TR0 或 TR1=1 和外部中断引脚上的高电平共同来启动定时器/计数器。 2) M1、M0 共有四种编码,对应 4 种工作方式如图: 3) C/T-计数器模式和定时器模式选择位 C/T=0,为定时

5、模式。 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 C/T=1,为计数模式,计数器对外部引脚 T0 或 T1 的外部脉冲负跳变计数。 4、定时器、定时器/计数器控制寄存器计数器控制寄存器 TCON TCON 的字节地址为 88H,可进行位寻址,位地址为 88H-8FH。TCON 格式如下: 低四位与外部中断有关,已介绍。高四位的功能如下: 1、TF1、TF0-T1、T0 计数器溢出标志位 当计数器溢出时,该位置“1” 。使用查询方式时,此位作为状态位供 CPU 查询,但应注意在查询该位有效后应以软件方法及时将该位清“0” 。使用中断

6、方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清“0”。 2、 TR1、TR0计数器运行控制位 TR1/TR0=1,启动定时器/计数器工作的必要条件,还与 GATE 位的状态有关。 TR1/TR0=0,停止定时器/计数器工作,改为可由软件置“1”或清”0”. 5、定时器、定时器/计数器的计数器的 4 种工作方式种工作方式 当 M1、M0 为 00 时,定时器/计数器被设置为工作方式 0,这时定时器/定时器的等效框图如下: 定时器/计数器工作在方式 0 时,为 13 位的计数器,由 TLX(X=0,1)的低 5 位和 THX的高 8 位所构成。 TLX 低 5 位溢出则向 THX

7、进行, THX 计数溢出则置位 TCON 中的溢出标志位TFX。C/T 位控制的电子开关决定了定时器/计数器的工作模式: C/T=0,电子开关打在上面位置,T1 为定时器工作模式,以振荡器的 12 分频后的信号作为计数信号。 C/T=1,电子开关打在下面的位置,T1 为计数器工作模式,计数脉冲为 P3.4、P3.5 引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加 1。 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 GATE 位的状态决定定时器/计数器运行控制取决于 TRX 一个条件还是 TRX 和 INTX 引脚这两个条件。 G

8、ATE=0 时,A 点如图电位恒为 1,B 点的电位取决于 TRX 状态。TRX=1,B 点为高电平,控制端控制电子开关闭合。计数器脉冲加到 TI 或 T0 引脚,允许 T1 或 T0 计数。TRX=0,B点为低电平,电子开关断开,禁止 T1 或 T0 计数。 GATA=1 时, B 点点位由 INTX 的输入电平和 TRX 的状态确定, 当 TRX=1, 且 INTX=1 (X=1,0)时,B 点才位 1,控制端控制电子开关闭合,允许定时器/计数器计数,故这种情况下计数控制是由 TRX 和 INTX 两个条件控制。 当 M1、M0 为 01 时,定时器/计数器工作于方式 1,这时定时器/计数

9、器的等效电路如下图所示。以定时器/计数器 T1 为例。 方式 1 和方式 0 的差别仅仅在于计数器的位数不同,方式 1 为 16 位的计数器,由 THX作为高位和 TLX 作为低位构成(X=0,1) ,方式 0 则为 13 位计数器,有关控制状态位的含义 (GATE、C/T、TFX、TRX)与方式 0 相同。 方式 0 和方式 1 的最大特点是计数溢出后,计数器为全 0。因此在循环定时或循环计数应用时就存在反复用软件设置计数初值的问题。 这不仅影响定时精度, 而且也给程序设计带来麻烦。方式 2 就是针对此问题而设置的。 当 M1、M0 为 10 时,定时器/计数器处于工作方式 2,这时定时器/

10、计数器的等效框图如图所示。 (以定时器 T1 为例,X=1) 。 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 定时器/计数器的方式 2 为自动恢复初值的 8 位定时器/计数器, THX 作为常数缓冲器,当 TLX 计数溢出时, 在置 1 溢出标志位 TFX 的同时, 还自动的将 THX 中的常数送至 TLX, 使TLX 从初值开始重新计数。定时器/计数器的方式 2 工作过程如下图所示。 方式 3 是为了增加一个附加的 8 位定时器/计数器而提供的,方式 3 只能适用于 T0,T1 不能工作在方式 3。T1 处于方式 3 时,相当于

11、TR1=0,T1 停止计数。 当 TMOD 的低 2 位为 11 时, T0 的工作坊式被选为方式 3, 各引脚与 T0 的逻辑关系如下图所示。 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 定时器/计数器 T0 分为两个独立的 8 位计数器: TL0 和 TH0, TL0 使用 T0 的状态控制位 C/T、GATE、TR0、INT0,而 TH0 被固定为一个 8 位定时器,并使用定时器 T1 的状态控制位 TR1和 TF1,同时占用定时器 T1 的中断请求标志 TF1。 6、定时器、定时器/计数器的应用计数器的应用 假设用定时器假设

12、用定时器 0 定时定时 50 毫秒的编程步骤。毫秒的编程步骤。 1)对 TMOD 赋值,以确定 T0 和 T1 的工作方式。 )计算初值,并将其写入 TH0、TL0 或 TH1、TL1。 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 3)中断方式时,则对 IE 赋值,开放中断。 EA=1; /开总中断 ET0=1; /开定时器中断 )使 TR0 或 TR1 置位,启动定时/计数器定时或计数。 具体程序如下: #include /引入头文件引入头文件 #define uint unsigned int /宏定义宏定义 #define u

13、char unsigned char /宏定义宏定义 sbit dula=P26; /定义段选定义段选 sbit wela=P27; /定义位选定义位选 uchar num,tt; /定义变量定义变量 uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; void main() MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 tt=0; num=0; TMOD=0x01; /设定定时器设定

14、定时器 0 为工作方式为工作方式 1 TH0=0x3C; /装入高八位装入高八位 TL0=0xB0; /装入低八位装入低八位 EA=1; /开总中断开总中断 ET0=1; /开定时器中断开定时器中断 TR0=1; /启动定时器启动定时器 wela=1; /打开位选打开位选 P0=0x00; /显示所有位显示所有位 wela=0; /关闭位选关闭位选 dula=1; /打开段选打开段选 P0=0x3F; /送入字形送入字形 0 dula=0; /关闭段选关闭段选 while(1) /主循环主循环 if(tt=20) /进入进入 20 次中断每次中断为次中断每次中断为 50 毫秒,就是毫秒,就是

15、1 秒秒 tt=0; /让让 tt 初始为零初始为零 num+; /让让 num+ if(num=16) /限制限制 num 到到 16 num=0; /让让 num 清零清零 dula=1; /打开段选打开段选 P0=tablenum; /送入字形码送入字形码 dula=0; /关闭段选关闭段选 void exter0() interrupt 1 定义中断函数定义中断函数 MSC- 51 单片机 C 语言简单入门教程 技术支持群:11313486 http:/ 红峰电子学习室 TH0=0x3C; /装入高八位装入高八位 TL0=0xB0; /装入低八位装入低八位 tt+; 7、方式、方式 0 应用应用 假设系统时钟采用 6MHz,要在 P1.0 上输出一个周期为 2ms

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号