单片机 教学课件 第六章定时器及应用.pptVIP

单片机 教学课件 第六章定时器及应用.ppt

  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文档。上传文档
查看更多
? 在程序初始化时, TL0 和 TH0 由软件赋予相同的初值 。 ? 用于定时工作方式时,定时时间为: t=(2 8 - TL0 初值 ) ×振荡周期× 12 ? 用于计数工作方式时,计数长度为: (2 8 - TL0 初值 ) (外部脉冲的个数) ? 该模式可省去软件中重装常数的语句,并可产生相 当精确的定时时间, 适合于作串行口波特率发生器 。 例 6 :当 P3.4 引脚上的电平发生负跳变时,从 P1.0 输出 一个 500 μ s 的同步脉冲。 编程实现该功能, fosc=6MHz 。 解 :⑴模式选择 首先选 T0 为模式 2 ,外部事件计数方式。当 P3.4 引 脚上的电平发生负跳变时, T0 计数器加 1 ,溢出标志 TF0 置 1 ;然后改变 T0 为 500 μ s 定时工作方式,并使 P1.0 输出由 1 变为 0 。 T0 定时到产生溢出,使 P1.0 引脚 恢复输出高电平, T0 又恢复外部事件方式。 ( 2 )计算 T0 初值 ? T0 工作在外部事件计数方式 : 题目要求 T0 引脚出现一次外部事件时,引起 T0 中 断。 所以:设计计数器初值为 FFH ,当计数器再加 1 就 溢出。 即 : T0 初值 +1=2 8 T0 初值 = 2 8 - 1=0FFH 即:( TH0 ) = ( TL0 ) =FFH ? T0 工作在定时工作方式: 因为晶振频率为 6MHz ,定时500μs。 所以: (2 8 - T0 初值 ) ×2μs=500μs 得出: T0 初值 =6=06H , 即:( TH0 ) = ( TL0 ) =06H ( 3 )程序清单 : ? #include at89x51.h ? bit flag=0; ? main() ? { ? TMOD=0x06; ? TH0=0xff; ? TL0=0xff; ? P1_0=1; ? ET0=1; ? EA=1; ? TR0=1; ? while(1); ? } ? void timer_0() interrupt 1 ? { ? TR0=0; ? flag=~flag; ? if (flag==0) ? { ? P1_0=1; ? TMOD=0x06; ? TH0=0xff; ? TL0=0xff; ? TR0=1; ? } ? else ? { ? P1_0=0; ? TMOD=0x02; ? TH0=0x06; ? TL0=0x06; ? TR0=1; ? } ? } 《例 6-8 完》 例 7 :利用定时器 T1 的模式 2 对外部信号计数。要求每计 满 100 次,将 P1.0 端取反。 解: ( 1 )选择模式 外部信号由 T1 ( P3.5 )引脚输入,每发生一次负跳变计数 器加 1 ,每输入 100 个脉冲,计数器发生溢出中断,中断服 务程序将 P1.0 取反一次。 T1 计数工作方式模式 2 的模式字为 ( TMOD ) =60H 。 T0 不用时, TMOD 的低 4 位可任取,但不能进入模式 3 ,一 般取 0 。 ( 2 )计算 T1 的计数初值 X= 2 8 - 100=156=9CH 因此 :TL1 的初值为 9CH ,重装初值寄存器 TH1=9CH 。 ( 3 )程序清单 ? #includeat89x51.h ? main() ? { ? TMOD=0x60; ? TH1=0x9c; ? TL1=0x9c; ? ET1=1; ? EA=1; ? TR1=1; ? while(1); ? } ? void timer_1() interrupt 3 ? { ? P1_1=~P1_1; ? } 四、 模式 3 及其应用 工作模式 3 对 T0 和 T1 大不相同。 若将 T0 设置为 模式 3 , TL0 和 TH0 被分成为两个相互独立的 8 位计 数器 ,逻辑图如下图: T0 设置为模式 3 , TL0 和 TH0 被分成两个相互独立 的 8 位计数器。 ? TL0 : 用原 T0 的各控制位、引脚和中断源,即 C/T , GATE , TR0 , TF0 , T0 ( P3.4 )引脚, INT0 ( P3.2 )引脚。 TL0 可工作在 定时器方式 和 计数器 方式。其功 能和操作与模式 0 、模式 1 相同(只是 8 位)。 ? TH0 : 只可用作简单的 内部定时功能 。 TH0 占用了定时器 T1 的控制位 TR1 和 T1 的中断 标志 TF1 ,其启动和关闭仅受 TR1 的控制。 第六章 定时器及应用 教学内容 基本要求 :掌握计数 / 定时器的应用及编程方法 重点: 定时器 / 计数器工作模式及应用 难点: 定时器 / 计数器的应用编程 ? 定时器 / 计数

文档评论(0)

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

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

1亿VIP精品文档

相关文档