5_定时器.ppt_第1页
5_定时器.ppt_第2页
5_定时器.ppt_第3页
5_定时器.ppt_第4页
5_定时器.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8051内部定时/计数器,创新实验学院 杜 猛,概述,8051有两个16位定时/计数器。 可设置为定时和计数两种模式,在每种模式下又可设置为4种工作方式。 工作方式不同则最大定时/计数值不同。 加1计数器,计数超过所在工作方式的最大值时发生溢出,回零,同时产生中断。,控制寄存器TCON,8位寄存器,可按位寻址。 TR0/1:定时器0/1启停控制。 TF0/1:定时器0/1溢出标志,硬件复位。 中断请求受EA,ET0/1控制。,方式寄存器TMOD,8位寄存器,不可按位寻址。 GATE:门控信号。 C/T:设置工作模式为定时器(0)或计数器(1)。 M1 M0:工作方式设置 00 01 10 11

2、。,控制逻辑,定时器:对振荡器的12分频计数。 计数器:对T0引脚输入脉冲计数。 检测T0引脚下降沿需要2个机器周期。通常,T0上输入的脉冲频率小于100KHz。,控制逻辑,GATE决定INT0引脚信号是否参与对T0的控制。 若GATE=0,T0只受TR0控制。 若GATE=1,T0受INT1信号和TR0共同控制。此时INT0不再作为中断请求输入线。 门控信号可用于脉冲宽度的测量。,原理示意,定时/计数器是16位SFR,分为TH0和TL0两个8位。 工作方式决定最大计数值。 初值是人为设置的, 期待计数值 = 最大值 初值 如果计数脉冲的间隔相等,则计数值就代表了时间的流逝。,工作方式 - 0

3、,13位加1计数器,兼容48系列单片机。 由TH的8位和TL的低5位组成,TL高3位弃之不用。 最大计数值:213 = 8192 计满8192,再加1则溢出归零,产生中断请求。 如要再次使用,需要手动再次装入初值。,工作方式 - 1,16位计数器,TH和TL全部参与。 最大计数值:216 = 65536 其余特性与方式-0相同。,工作方式 - 2,8位自装入计数器。 最大计数值:28 = 256 自装入即计数器溢出归零后,自动装入前一次的初值。 TH保存初值,仅用TL进行计数。 初始化时对TH和TL送相同值。,工作方式 - 3,前三种方式,T0和T1完全相同。而方式-3一般只应用于T0。 T0

4、:两个独立的8位计数器。 TL0可设定为定时或计数模式,仍由TR0控制,并用TF0作溢出标志。 TH0只能作定时器,借用TR1和TF1。 一般只有将T1用作串口波特率发生器时,才将T0设置为方式-3,以增加一个计数器。,初始化步骤,根据需要,选择适当的模式和方式,写入TMOD。 根据期待的计数值和所选工作方式,计算初值,写入TH和TL。 开放中断,设置优先级,写入IE和IP。 控制定时/计数器的起停,操作TCON。,初值的计算,计数模式:TC = M C TC:初值 M:所选方式最大计数值 C:期待计数值 定时模式:TC = M T/Ts T:期待定时时长 Ts:时钟周期的12倍,即机器周期

5、最大定时时间(以12MHz晶振为例) 方式0:Tmax = 213 1us = 8.192ms 方式1:Tmax = 65.536ms 方式2和3:Tmax = 0.256ms,初值计算举例,假设采用12MHz晶振,要定时2ms,如何设置初值? 方式2、3最大只能定时0.256ms,不用。 若采用方式0: TC = 213 2ms/1us = 6192 = 1830H 即TH = 0 xC1 TL = 0 x10 若采用方式1: TC = 216 2ms/1us = 63536 = F830H 即TH = 0 xF8 TL = 0 x30,初值计算举例,假设采用12MHz晶振,要定时1s,如何

6、设置初值? 4种方式最大只能定时65.536ms,都不满足要求。 类似情况可采用软件复合定时。 比如,用定时器定时10ms,再额外维持一个变量,在每次溢出中断中对其加1。变量值等于100时,即得到1s,清零该变量。,软件定时示例,volatile unsigned char cnt = 0; void ISR_Timer0() interrupt 1 cnt +; if( cnt = 100 ) / your task here cnt = 0; / reload TH0 & TL0 ,关键字 volatile 指示编译器不要优化该变量。 如果某个变量可能会被“并行”地修改,应将其声明成 vo

7、latile 。 例如,某变量的值可能在中断服务程序中被修改,而在主程序中检测其值,则应用 volatile 声明之。,应用举例,采用12MHz晶振,在P1.0上输出周期为2.5秒,占空比为20%的脉冲信号。 选取合适的定时时间,太小导致频繁中断,影响效率。此例中选50ms。 高电平10次中断,低电平40次中断。,测频与测周,测频与测周均为测量脉冲信号频率的方法。 测频:在单位定时时间内对被测信号脉冲进行计数。 测周:在被测信号一个周期时间内,对某一基准时间脉冲进行计数。 主要误差是由于计数器只能进行整数计数而引入的1误差。 高频测频,低频测周。,应用举例,2个方波信号,频率 f1 = 50Hz,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论