第8章8051内部资源-定时器计数器

第8章8051内部资源-定时器计数器

ID:44962714

大小:498.50 KB

页数:28页

时间:2019-11-06

第8章8051内部资源-定时器计数器_第1页
第8章8051内部资源-定时器计数器_第2页
第8章8051内部资源-定时器计数器_第3页
第8章8051内部资源-定时器计数器_第4页
第8章8051内部资源-定时器计数器_第5页
资源描述:

《第8章8051内部资源-定时器计数器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章8051内部资源的C编程8.2定时器/计数器基本概念计数:对外部事件的个数进行计量定时:由内部提供一个非常稳定的计数源进行定时定时分类:软件,硬件,可编程定时/计数器简称定时器,80C51单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1),均为二进制加法计数器。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。8.2.1定时/计数器结构T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计

2、数器就自动加1。计数的最高频率一般为振荡频率的1/24。作定时器时,对晶振经12分频后的脉冲计数,即每过一个机器周期,计数器加1.其他组成部分工作方式寄存器TMOD用于设定T0和T1的工作方式,TCON用于启动、停止计数,同时管理T0和T1的溢出标志等。程序开始要对TMOD、TCON进行初始化编程,在应用定时器计数器是,需要通过程序设置TH0,TL0等的计数初值。8.2.1定时/计数器控制寄存器定时器共有2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON两个8位寄存器,设置各个定时器的操作模式和控制功能。1.定时器控制寄存器—TCON(88H)图5-6定时器

3、工作模式寄存器TCON可以进行位寻址TR0与TR1:分别为T0、T1的启停位如:TR0=1;TR0=0;TF0与TF1:分别为T0、T1的溢出中断标志位当T0产生溢出,TF0被硬件自动置位,当T0溢出中断被CPU响应后,TF0被硬件自动复位。2.工作模式控制寄存器—TMOD(89H)图6-5定时器工作模式寄存器TMOD只能用字节传送M1M0:工作方式选择位C/T:定时/计数方式选择位0—定时,每过一个机器周期计数器加11—计数,外部脉冲负跳变计数器加1GATE:门控位0—计数器由TR0启停1—计数器在TR0=1和外部中断INT0=1时才能启动工作8.2.2定时/计数器工

4、作方式每个定时/计数器还有4种工作模式,也就是每个定时器可构成4种电路结构模式。在模式0、1和2,T0和T1的工作模式相同,在模式3,两个定时器的模式不同。下面以T1为例,分述各种工作模式的特点和用法。1.方式0(13位计数器)图6-1定时/计数器T1(T0)工作模式0占用TH0全部8位,TL0低5位2.方式1(16位计数器)图6-2定时/计数器T1(T0)工作模式13.方式2(8位计数器)图6-3定时/计数器T1(T0)工作模式2计数初值自动重装TH和TL赋相同的初值4.方式3(T0分成2个8位计数器)图6-4定时/计数器T1(T0)工作模式3T0低字节TL0作为普通

5、的8位定时器/计数器T0高字节TH0作为8位定时器使用,占用TF1标志8.2.3定时器/计数器的应用一、定时器/计数器的初始化步骤:根据任务要求设置方式控制字TMOD计算并设置定时器/计数器初值根据需要开放中断和设定中断优先级启动定时器/计数器工作二、定时/计数器常数的计算定时/计数器的定时/计数范围工作方式0:13位,M=213=8192工作方式1:16位,M=216=65536工作方式2/3:8位,M=28=2561.计数器初值的计算把计数器计满为零所需要的计数值设定为C,计数初值设定为x,由此可得到公式x=M-C式中,M为计数器模值,该值和计数器工作方式有关。在方

6、式0时M为8192;在方式1时M为65536;在方式2和方式3时M为256。2.定时器初值的计算在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定时器定时时间T的公式:T=(M-x)*Tm上式也可写成:x=M-T/Tm式中,M为模值,和定时器的工作方式有关;Tm是单片机振荡周期TCLK的12倍,即机器周期x为定时器的定时初值。三、定时器/计数器编程在实时系统中,定时通常使用定时器,这与软件循环的定时完全不同,尽管两者最终都依赖系统的时钟,在定时器计数时,其他事件可继续进行,软件定时不允许任何事件发生。【例】单片机的fosc=12MHz,要求在P1.0引脚上输

7、出周期为10ms的方波。10msP1.0分析:周期为10ms的方波要求定时间隔为5ms,每次时间到P1.0取反。定时器计数率=fosc/12。机器周期=12/fosc=1us,每个机器周期定时器加1,需计数次数=5000/(12/fosc)=5000/1=5000。所以选择使用T0的方式1定时,方式寄存器TMOD=01H,定时器初始值为:65536-5000。10msP1.01)定时器0的方式1编程,采用查询方式。#includesbitP1_0=P1^0;voidmain(){TMOD=0x01;/*定时器0方式1*/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。