第5章--定时器.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章--定时器

第5章 定时器/计数器 定时器/计数器模块的基本用途 常用于测量时间、速度、频率、脉宽,提供定时脉冲信号,还能为编程人员提供准确定时 AT89C52中有3个 定时器/计数器 定时器/计数器0 定时器/计数器1 定时器/计数器2 5.1 定时器/计数器0和1的结构和工作原理 定时器/计数器0和1工作原理 相关的特殊功能寄存器 四种工作模式 相关仿真实例 三、定时器/计数器结构 1、工作寄存器: T0、T1为16位 T0分为:TH0(高8位),TL0(低8位) T1分为:TH1(高8位),TL1(低8位) 例:向T0送0FEDH MOV TH0,#0FH MOV TL0,#0EDH 例:设置T1为软件启动,为定时器工作方式,选择操作模式2,T0为计数方式,软件启动,选择操作模式1 TMOD各位为 即25H MOV TMOD,#25H 或MOV 89H,#25H 5.3 T0,T1编程时应注意的问题 一、初始化 1、将工作方式控制字写入TMOD(确定工作方式,操作方式,启动控制方式) 例:T1为16位,/INT1不参与控制,T1为定时器。控制字 MOV TMOD,#10H 2、将定时或计数初值写入THi,TLi中(16位计数初值须分两次写入对应的计数器) 例:MOV TH1,#55H MOV TL1,#00H 3、置ET1/ET0允许T1/T0申请中断 例:SETB ET0;允许T0中断 4、置EA,CPU对所有中断开放 SETB EA 5、启动T1或T0(*) SETB TR1 SETB TR0 二、初值计算 T0,T1选择不同的工作方式,不同的操作方式,其初值均不相同。设最大计数值为M,则各方式下的M值为: 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:M=256(T0分为TH0和TL0,其M均为256) 设计数初值为X,则X=M-计数值 1、计数工作方式 脉冲由外部引入,对外部脉冲计数,计数值根据要求确定。计数初值X=M-计数值 例:某工序要求对外部脉冲信号计100次 X=M-100 若为方式2,则X=256-100=156 2、定时工作方式(*) 计数脉冲由内部供给(相当于对机器周期计数), 计数脉冲频率fcont=晶振频率fosc/12 所以:计数周期T=12/fosc,即每个脉冲的时间为12/fosc 若要求的定时时间为t,则此时计数初值 X=M-t/T=M-t/(12/fosc)=M-t*fosc/12 例:设T0为计数器,以方式2工作,外界发生一次事件,溢出中断;T1作为定时器,以操作方式1工作,定时时间为1ms(即延时1ms后就申请中断),晶振频率为6MHZ,计算T0,T1的计数初值。 解: T0:计数器,方式2,X0=256-1=255=FFH T1:定时器,方式1,1ms X1=65536-1ms*6*106/12 =65536-1*103/2 =65536-500=65036=FE0CH 三、初始化举例(*) 设T1为定时工作方式,定时50ms,选择方式1,允许中断,软启动; T0为计数工作方式,对外部脉冲计数10次,硬启动,禁止中断,选择工作方式2; fosc=6MHZ 解:T0:X0=256-10=246=F6H T1:X1=65536-50ms*6M/12 =65536-25000 =40536=9E58H TMOD1EH 初始化程序如下: MOV TMOD, #1EH MOV TH0, #0F6H MOV TL0, #0F6H MOV TH1, #9EH MOV TL1, #58H MOV IE , #88H SETB TR0; 要等到/INT0=1时方可真正启动 SETB TR1 5.4 定时器的操作方式及应用 1、方式0及应用(仅用了TH和TL的低5位)(*) 例:选用T0,操作方式0,用于定时,由P1.0输出周期为1ms的方波,设fosc=6MHZ 解:定时时间为500μs 初始值X0=8192-t*fosc/12=8192-250 =7942=1F06H 但由于是13为定时器,TL0的高3位未用,则填入0,所以X0的实际值为F806H ORG 8000H MOV TMOD, #00H MOV TL0,

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档