单片机定时计数器培训.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章介绍的主要内容 ★ 定时计数器结构和工作原理 ★ 定时计数器的控制寄存器 ★ 定时计数器的应用编程 ★ 51系列单片机片内有二个十六位定时/计数器:定时器0(T0)和定时器1(T1)。 ★ 两个定时器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合 ★ 定时/计数器实际上是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式或 计数工作方式。 ★T0和T1受特殊功能寄存器TMOD和TCON控制。 1. 定时工作方式 ★ 设置为定时工作方式时,定时器计数的脉冲是由51单片机片内振荡器经12分频后产生的。 ★每经过一个机器周期定时器(T0或T1)的数值加1直至计数满产生溢出。 如:当8051采用12MHz晶体时,每个机器周期为1μs,计5 个机器周期即为5 μs,即定时5 μs 。 2. 计数工作方式 ★ 设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 ★ 当输入脉冲信号产生由1至0的下降沿时,计数器的值加1, 在每个机器周期CPU采样T0和T1的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加 1。 ★ 由于检测一个1至0的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。 ★ 虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。 ★ GATE:门控信号 GATE=0,TRx=1时即可启动定时器工作 ; GATE=1, TRx=1 INTx=1才可启动定时器工作。 ★ C/T:定时器/计数器选择位 C/T=1,为计数器方式; C/T=0,为定时器方式。 ★ M1 M0 工作模式选择位 M1M0=00 工作方式0(13位方式)。 M1M0=01 工作方式1(16位方式)。 M1M0=10 工作方式2(8位自动再装入方式)。 M1M0=11 工作方式3(T0为2个8位方式)。 ★TF0:T0溢出中断请求标志。 TF0=1,T0有溢出中断请求。 TF0=0,T0无溢出中断请求。 ★TR0:T0运行控制位。 TR0=1,启动T0工作。 TR0=0,停止T0工作。 1.方式0的应用 例1:利用T0方式0产生1 ms的定时,在P1.2 引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12MHz。 解:(1) 确定工作方式 : (TMOD)=00H (2)计算1 ms定时时T0的初值 机器周期 T = 1/fosc×12 = 1μs 计数个数:X =1ms/lμs = 1000 设T0的计数初值为,则 x0= (213一X) =8192—1000 =7192D 解得:T0初值=7192=1C18H=0001110000011000B,其中将高8B=E0H赋给TH0,低518H赋给TL0。 (3) 编程方法 方法一:采用中断工作方式,编程如下: ORG 0000H AJMP MAIN ;转主程序MAIN ORG 000BH AJMP IT0P ;转T0中断服务程序IT0P ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针 MOV TH0 , #0E0H ;给定时器T0送初值 MOV TMOD,#00H :设置T0为方式0,定时 MOV TL0 , #18H ;送定时初值 MOV TH0,#0E0H SETB EA ;CPU开中断?

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档