单片机-12_定时器.ppt

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

图11.12 T4 方式1 原理框图 图11.13 T4 方式2 原理框图 22.3 定时器3 定时器3 是一个16 位的计数器/定时器,由两个8 位的SFR 组成:TMR3L(低字节)和TMR3H(高字节)。 定时器3 的时钟输入可以是外部振荡器(8 分频)或系统时钟(不分频或12 分频,由定时器3 控制寄存器TMR3CN 中的定时器3 时钟选择位T3M 指定)。 定时器3 总是被配置为自动重装载方式定时器,重载值保存在TMR3RLL(低字节)和TMR3RLH(高字节)中。 定时器3 的外部时钟源特性提供了实时时钟(RTC)方式。当T3XCLK(TMR3CN.0)位被设置为逻辑‘1’时,定时器3 用外部振荡器输入(8 分频)作为时钟,而与系统时钟选择无关。 这种独立的时钟源配置允许定时器3 使用精确的外部源,而系统时钟取自高速内部振荡器。 当T3XCLK 为逻辑0 时,定时器3 的时钟源由T3M 位(TMR3CN.1)指定。 定时器3 可用于启动ADC 数据转换、SMBus 定时,或作为通用定时器使用。 定时器3 没有计数器方式。 TMR3CN:定时器3 控制寄存器 位7: TF3:定时器3 溢出标志 当定时器3 从0xFFFF 到0x0000 溢出时由硬件置位。 当定时器3 中断被允许时,该位置‘1’使CPU 转向定时器3 的中断服务程序。 该位不能由硬件自动清0,必须用软件清0。 位6-3: 未用。读=0000b,写=忽略。 位2: TR3:定时器3 运行控制 该位允许/禁止定时器3 0:定时器3 禁止。 1:定时器3 允许。 位1: T3M:定时器3 时钟选择 该位控制提供给计数器/定时器3 的系统时钟的分频数。 0:计数器/定时器3 使用系统时钟的12 分频。 1:计数器/定时器3 使用系统时钟。 TMR3CN:定时器3 控制寄存器 位0: T3XCLK:定时器3 外部时钟选择 该位选择外部振荡器输入的8 分频作为定时器3 的时钟源。 当T3XCLK 为逻辑‘1’时,T3M(TMR3CN.1)位被忽略。 0:定时器3 的时钟源由T3M(TMR3CN.1)位定义。 1:定时器3 的时钟源外部振荡器输入的8 分频。 TMR3CN:定时器3 控制寄存器 TMR3L:定时器3 低字节 位7-0: TMR3L:定时器3 的低字节 TMR3L 寄存器为定时器3 的低字节。 TMR3H:定时器3 高字节 位7-0: TMR3H:定时器3 的高字节 TMR3H 寄存器为定时器3 的高字节。 TMR3RLL:定时器3 重载寄存器低字节 位7-0: TMR3RLL:定时器3 重载寄存器的低字节 定时器3 被配置为自动重装载定时器。该寄存器保存重载值的低字节。 TMR3RLH:定时器3 重载寄存器高字节 位7-0: TMR3RLH:定时器3 重载寄存器的高字节 定时器3 配置为自动重装载定时器。该寄存器保存重载值的高字节。 例:若单片机的时钟频率为12MHz,使用系统时钟的12分频作为计数源,请计算定时2ms所需的定时器初值,并给出定时器的初始化程序。 12MHz/12=1MHz,1uS 定时器加1 假设用定时器T0/T1 方式2:最大定时时间256uS,定时器必须工作在方式0或方式1下 若采用方式0,假设定时器初值为Y,则有: [(2^13)-Y]*1uS=2mS Y=6192=1830h=0001 1000 0011 0000B TH0=c1H,TL0=10H 若采用方式1,假设定时器初值为Y,则有: [(2^16)-Y]*1uS=2mS Y=63536=f830h TH0=f8H,TL0=30H 图11.2 T0 方式0 原理框图 下面给出T0方式1对应的初始化程序 void T0_mode1_2ms_init() { CKCON=0xf7; TMOD=0x01; TH0=0xf8; TL0=0x30; TCON|=0X10; } 最后一句可以采用TR0=1;代替。 给定时器赋初值也可以采用如下方法: TH0=(65536-2000)/256; TL0 =(65536-2000)%256;或 TH0=-2000/256; TL0 =-2000%256; 例:假设时钟频率f=12MHz,T1工作在方式1,产生50ms的定时中断,TF1为高级中断源。试编写主程序和中断服务子程序,使P1.0产生周期为1s的方波。 分析: 要在p1.0上产生周期为1s的方波,让p1.0周期性地每隔500ms取反一次即可实现。500ms的定时时间可以有定时器实现,但由前面所学可知,定时器的单此定时时间

文档评论(0)

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

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

1亿VIP精品文档

相关文档