8052定时器T2的用法 - 图文
更新时间:2024-03-07 11:05:01 阅读量: 综合文库 文档下载
定时器T2的用法
声明,定时器T2只有52以上的芯片才有,51没有的。
1 C- D- I; e# z7 i9 Y8 {:
, X- ?' h- F- |' f P\
捕捉模式
在捕捉模式时,两种操作模式由T2CON中的EXEN2位选择。如果EXEN2=0,Timer2作为一个16位向上定时或计数器,当溢出时将T2CON中的TF2置1。这个标志位可以产生一个中断。如果EXEN2=1,Timer2起同样的作用,但是,外部输入端T2EX上的下降延也可以使TH2和TL2中的值捕捉到RCAP2H和RCAP2L中,另外,T2EX上的下降延可以将EXF2置1,像TF2一样,也可以产生一个中断。捕捉模式详见图5。
自动重载模式
Timer2在指定为16为自动重载模式时可以编程为加计数或减计数,此功能由T2MOD中的DCEN位
决定。DCEN=0,计数器向上计数,默认置为0,DCEN=1时,Timer2的加或减由T2EX的值决定。
& H* p: |* l# t/ m1 W7 [7 t& Y
图6显示Timer2在DCEN=0时自动向上计数。在这个模式时,T2CON的EXEN2为可以选择两种操作。EXEN2=0,Timer2向上计数到0FFFFH时将TF2为置1,溢出可以把RCAP2H和RCAP2L中的16为值重新加载到定时寄存器中。捕捉模式时RCAP2H和RCAP2L中的值由软件预先设定。EXEN2=1,既可以由溢出重载也可以由T2EX引脚的下降延触发重载。TF2和EXF2都可以产生中断。设置DCEN=1时Timer2可以向上或向下计数,如图6所示,此模式下,T2EX脚控制计数方向。T2EX如果为1,Timer2向上计数。计数器到0FFFFH时溢出并将TF2置1。溢出可以使RCAP2H和RCAP2L中的16为值重新加载到定时寄存器中。T2EX如果为0,Timer2向下计数,当TH2和TL2中的值和RCAP2H和RCAP2L相等时向下溢出。溢出使TF2置1并将0FFFFH重新加载到计时寄存器中。
- s0 @5 E8 |2 N4 s
4 v- y: ^# ?/ f\q: O/ z) O8 k0 i
波特率发生器
通过设置T2CON中TCLK或RCLK位选择Timer2位波特窥测发生器Timer2作为发送和接收时可以应用于不同的波特率,设置TCLK或RCLK位使Timer2工作在波特率发生器模式,如图8所示。
波特率发生器模式和重载模式相似,TH2中值的溢出将使软件预设的16位寄存器值重载到计数器中。
波特率1、3模式由Timer2的溢出速率决定,由下面的等式表示 模式1、3波特率=(Timer2计数值)/16
定时器可以指定为计数或定时模式,在许多应用中,被设置成定时模式,Timer2的定时操作和波特率发生器的操作不同,作为定时器,它每机器周期(1/12个晶振周期)增加1,作为波特率发生器它每个状态时间(1/2晶振周期)增加1。波特率公式如下: 模式1、3=晶振频率
; f* w& A: @( \\7 |3 O8 s* z4 p
波特率
32×(65536-RCAP2H,RCAP2L)
这里(RCAP2H,RCAP2L)是RCAP2H和RCAP2L作为16为无符号整数。
Timer2作为波特率发生器如图8,这个只有在TCLK或者RCLK=1是才有效。需要注意的是TH2的的溢出不会将TF2置1,也不会产生中断,如果这时EXEN2置1,T2EX引脚的下降延将会使TF2置1并不会引发(RCAP2H,RCAP2L)到(TH2,TL2)的重载,那样,当Timer2作为波特率发生器时,T2EX可以作为一个外部中断使用。
当Timer2在波特率发生器模式作为定时器运行时(TR1=1),TH2,TL2不能进行读写,在这种情况下,计时器每个状态时间增加1,对其读写的结果将会不正确RACAP2寄存器可以读不可以写,因为写可能引起交迭重载或者重载出错。在处理Timer2的RACAP2寄存器前必须停止计时(TR2=0)。
3 e\S3 n% W; o\{9 n
可编程时钟输出
P1.0可以输出50%占空比的可编程时钟,如图9所示。这个引脚,除了作为普通的IO口,还有另外两个交替功能,它可以编程为Timer2的外部输入脚或者占空比50%的可变时钟输出,在晶振16M时频率范围从61Hz到4MHz。
Timer2指定为时钟发生器,必须将C/T2为清0并将T2OE位置1。TR2启动或停止计时器。输出频率取决于晶振频率和Timer2的捕捉寄存器的重载值,如下面公式所示。
时钟输出频率=晶振频率/4×(65536-(RCAP2H,RCAP2L))
在时钟输出模式,Timer2溢出不会产生中断,它可以同时作为波特率发生器和时钟输出使用,然而,当他们都使用(RCAP2H,RCAP2L)时,波特率和时钟输出频率不能取决于独自的设置参数。
8052 T2 用法详解
1、要精确定时,必须使用定时器的自动装载方式。本实验使用T2定时器,让它工作在16bit自动 装载方式,这时,有另一个位置专门装着16位预装载值,当T2溢出时,预装载值立即被装入, 这就保证了精确定时。
2、T2定时器是一个16位定时器,最长的溢出时间也就几十毫秒,要定时1秒,就需要用一个变量 来保存溢出的次数,积累到了一定的次数后,才执行一次操作。这样就可以累加到1秒或者更 长的时间才做一次操作。
3、当T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的。 4、T2定时器预装载值的计算:
设晶振为12MHz,每秒钟可以执行1000000(12000000/12)个机器周期。而T2每次溢出时最多 经过了65536个机器周期。我们应该尽量让T2定时器的溢出中断的次数最少,这样对主程序的干扰 也就最小。
选择每秒中断14次,每次溢出1000000/14=71428.57个机器周期,不为整数且超出65536个机器周期,无效。
选择每秒中断16次,每次溢出1000000/16=62500个机器周期,小于65536个机器周期,有效。 选择每秒中断20次,每次溢出1000000/20=50000个机器周期,小于65536个机器周期,有效。 通过上面的计算,我们可以发现,我们可以选择的方式有很多,但是最佳的是每秒中断16次,每次 溢出62500个机器周期,那么赋给T2定时器的初值应为65536-62500=3036,转换成十六进制值为 0x0BDC。
***************************************************************************************** /*********定时2中断服务子函数**************/ void timer2_init() { RCAP2L=(65536-62500)%6; RCAP2H=(65536-62500)/256; TR2=1; }
void isr_init() { ET2=1; EA=1; }
void Timer2_Server(void) interrupt 5 {
TF2=0;
deda++; //计数
if(deda<8){flag1=1;}else{flag1=0;} if(deda==16){sec++;deda=0;} if(sec==60){min++;sec=0;} if(min==60){hor++;min=0;} if(hor==24){hor=0;} }
在时钟输出模式,Timer2溢出不会产生中断,它可以同时作为波特率发生器和时钟输出使用,然而,当他们都使用(RCAP2H,RCAP2L)时,波特率和时钟输出频率不能取决于独自的设置参数。
8052 T2 用法详解
1、要精确定时,必须使用定时器的自动装载方式。本实验使用T2定时器,让它工作在16bit自动 装载方式,这时,有另一个位置专门装着16位预装载值,当T2溢出时,预装载值立即被装入, 这就保证了精确定时。
2、T2定时器是一个16位定时器,最长的溢出时间也就几十毫秒,要定时1秒,就需要用一个变量 来保存溢出的次数,积累到了一定的次数后,才执行一次操作。这样就可以累加到1秒或者更 长的时间才做一次操作。
3、当T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的。 4、T2定时器预装载值的计算:
设晶振为12MHz,每秒钟可以执行1000000(12000000/12)个机器周期。而T2每次溢出时最多 经过了65536个机器周期。我们应该尽量让T2定时器的溢出中断的次数最少,这样对主程序的干扰 也就最小。
选择每秒中断14次,每次溢出1000000/14=71428.57个机器周期,不为整数且超出65536个机器周期,无效。
选择每秒中断16次,每次溢出1000000/16=62500个机器周期,小于65536个机器周期,有效。 选择每秒中断20次,每次溢出1000000/20=50000个机器周期,小于65536个机器周期,有效。 通过上面的计算,我们可以发现,我们可以选择的方式有很多,但是最佳的是每秒中断16次,每次 溢出62500个机器周期,那么赋给T2定时器的初值应为65536-62500=3036,转换成十六进制值为 0x0BDC。
***************************************************************************************** /*********定时2中断服务子函数**************/ void timer2_init() { RCAP2L=(65536-62500)%6; RCAP2H=(65536-62500)/256; TR2=1; }
void isr_init() { ET2=1; EA=1; }
void Timer2_Server(void) interrupt 5 {
TF2=0;
deda++; //计数
if(deda<8){flag1=1;}else{flag1=0;} if(deda==16){sec++;deda=0;} if(sec==60){min++;sec=0;} if(min==60){hor++;min=0;} if(hor==24){hor=0;} }
正在阅读:
8052定时器T2的用法 - 图文03-07
铁路制梁场计算书02-29
2019辽宁省干部在线学习网络安全知识读本考试题及参考答案10-19
2022年广东海洋大学经济管理学院342农业知识综合四之04-18
辛亥革命观后感1500字12-11
比亚迪obd协议03-11
2017江西教师资格证考试《小学综合素质》专家命题卷及答案(1)07-10
行文格式规范要求06-26
十八大搞笑版新闻联播播音稿02-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 定时器
- 用法
- 图文
- 8052
- 双语生活与梦想
- 2019年最新4月份入党积极分子思想汇报范文精选:学习党章心得思
- 江苏省律师收费管理办法
- HCSC10环锤碎煤机说明书解析
- 最新整理泥浆护壁回转钻孔灌注桩工程技术交底 doc - 图文
- 医药销售试用期个人工作总结
- 电磁感应一章习题答案
- 生鲜电子商务O2O模式的现状分析及对策研究
- 简述我国电子商务发展的历程
- 2016年咨询工程师继续教育考试机械工业绿色制造技术课件
- 苏教版四年级数学上册教学反思
- 2019名师工作室工作计划
- 教师岗位分类管理
- 12泥浆护壁回转钻孔灌注桩工程7393718-精品文档 - 图文
- 全镇创建省级卫生镇实施方案
- 如何抓好班风建设
- 第十二章 货币供给与货币需求
- 上海交大网院薪酬管理第二次作业
- 普吉岛绝美珍珠海滩度假酒店(Absolute Sea Pearl Beach Resort)
- 2009学年度宝山区实验小学阳光体育大联赛