定时器及应用教材

上传人:我** 文档编号:113737807 上传时间:2019-11-09 格式:PPT 页数:32 大小:946KB
返回 下载 相关 举报
定时器及应用教材_第1页
第1页 / 共32页
定时器及应用教材_第2页
第2页 / 共32页
定时器及应用教材_第3页
第3页 / 共32页
定时器及应用教材_第4页
第4页 / 共32页
定时器及应用教材_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《定时器及应用教材》由会员分享,可在线阅读,更多相关《定时器及应用教材(32页珍藏版)》请在金锄头文库上搜索。

1、定时器及应用,两个16位的定时器/计数器,即定时器0(T0)和定时器1(T1)。它们实际上都是16位加1计数器。 T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。 每个定时器都可由软件设置为 定时工作方式或 计数工作方式及其他灵活多样的可控功能方式。这些功能由特殊功能寄存器TMOD和TCON所控制。 定时器工作不占用CPU时间,除非定时器/计数器溢出,才能中断CPU的当前操作。 每个定时器/计数器还有四种工作模式。重点掌握方式1方式2.,图6-1 89C51定时器结构,6.2 定时器的控制,6.2.1 工作模式寄存器 TMOD(89H) 6.2.2 控制器寄存器 TC

2、ON(88H),图6-4 TMOD各位定义及具体的意义,表6-1 M1,M0控制的四种工作模式,6.2.2 控制器寄存器 TCON,TCON除可字节寻址外,各位还可位寻址。 8051系统复位时,TCON的所有位被清0。 TCON各位的定义格式如 图6-5所示。 TCON各位的功能: TCON各位定义及具体的意义归纳如 图6-6所示。,TF1,TR1,TF0,TR0,IE1,IE0,IT1,IT0,TCON (88H),8FH 8EH 8DH 8CH 8BH 8AH 89H 88H,控制寄存器TCON的位定义 TCON除可字节寻址外,各位还可位寻址。,图6-6 TCON各位定义及具体的意义,TC

3、ON各位的功能, TF1(TCON.7) T1溢出标志位。 当T1溢出时,由硬件自动使中断触发器TF1置1,并CPU申请中断。 当CPU响应中断进入中断服务程序后,TF1由被硬件自动清0。TF1也可以用软件清0。 TF0 (TCON.5)T0溢出标志位。 其功能和操作情况同TF1。, TR1(TCON.6)T1运行控制位。 可通过软件置1(TR1=1)或清0(TR1=0)来启动或 关闭 T1。 在程序中用指令“SETB TR1”使TR1位置1,定时器T1便开始计数。 TR0(TCON.4)T0运行控制位。 其功能和操作情况同TR1。,TCON各位的功能,三、模式 1 工作特点,该模式对应的是一

4、个16位的定时器/计数器。 在这种模式下,16位寄存器(TH0和TL0)用于装载计数/定时的初值。启动定时器后,当TL0的低8位溢出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0),并申请中断。 定时时间为: t=(216T0初值)振荡周期12 用于计数工作方式时,计数长度最大为: 216=65536(个外部脉冲),三、模式 1 的应用举例(例6-1),例6-1:设定时器T0选择工作模式1,定时时间为1ms,fosc=6MHz。试确定T0初值,计算最大定时时间T。,解:当T0处于工作模式1时,加1计数器为16位。 (1)试确定T0初值 设T0的初值位X。 则:(216X)

5、1/6 10-612=110-3 s X=FE0CH T0的低8位: (TL0)=0CH T0的高8位: (TH0)=FEH 另一种写法: TH0 = (65536-500)/256; TL0 = (65536-500)%256; (2)计算最大定时时间T T0的最大定时时间对应于16位计数器T0的各位全为1,即(TL0)=FFH,(TH0)=FFH. 则:T=2161/6 10-612=131.072ms,三、模式 1 的应用举例(例6-2),例6-2:设T0工作在模式1,定时时间为1ms,fosc=12MHz。编程实现其定时功能。定时时间到,P1.0取反。,三、模式 1 的应用举例(例6-

6、2),解:(1)选择工作模式 T0的模式字为TMOD=01H,即 M1M0=01,C/T=0,GATE=0,其余位为0。,三、模式 1 的应用举例(例6-2),(2)计算1ms定时时T0的初值 (216X)1/12 10-612=110-3 s X=FC18H T0的低8位: (TL0)=18H T0的高8位: (TH0)=FCH,三、模式 1 的应用举例(例6-2),(3)采用查询方式的程序 程序清单: MOV TMOD,#01H ;设置T0为模式1 MOV TL0,#18H ;送初值 MOV TH0,#0FCH SETB TR0 ;启动定时 LOOP:JBC TF0,NEXT ;查询定时时

7、间到否 SJMP LOOP NEXT:MOV TL0,#18H ;重装计数初值 MOV TH0,#0FCH CPL P1.0 ;取反 SJMP LOOP ;重复循环,/*用定时器0的方式1编程,采用查询方式*/ #include sbit P1_0=P10; void main(void) TMOD = 0x01; TH0=0xFC; TL0=0x18; TR0 =1; while(1) do while(!TF0); TF0=0; TH0=0xFC; TL0=0x18; P1_0=! P1_0; ,二、模式 2 工作特点,该模式把TL0(TL1)配置成一个可以自动重装载的8位定时器/计数器。

8、,在程序初始化时,TL0和TH0由软件赋予相同的初值。,用于定时工作方式时,定时时间为: t=(28TH0初值)振荡周期12,用于计数工作方式时,计数长度最大为:28=256(个外部脉冲),该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,适合于作串行口波特率发生器。,三、模式 2 的应用举例(例6-6),设T0工作在模式2,定时时间为500us,fosc=6MHz。编程实现其定时功能。定时时间到,P1.0取反。,#include sbit P1_0=P10; void main(void) TMOD = 0x02; TH0=0x06; TL0=0x06; TR0 =1; whil

9、e(1) do while(!TF0); TF0=0; P1_0=! P1_0; ,/*用定时器0的方式1编程,采用中断方式*/ #include sbit P1_0 = P10; void timer0(void) interrupt 1 using 1 P1_0=!P1_0; void main (void) TMOD =0x02; P1_0=0; TH0 =0x06; TL0 =0x06; EA=1; ET0=1; TR0=1; while(1) ,(3)采用查询方式的程序 程序清单: MOV TMOD,#02H ;设置T0为模式1 MOV TL0,#06H ;送初值 MOV TH0,#

10、06H SETB TR0 ;启动定时 LOOP:JBC TF0,NEXT ;查询定时时间到否 SJMP LOOP NEXT:CPL P1.0 ;取反 SJMP LOOP ;重复循环,设计定时器,每隔一秒的时间,计时器自动加一,计时器个位满十向高位进位,累计计时99秒即清0重新计数。 计数过程中,能够响应外部中断命令,实现计时器清零或暂停功能。 数码块显示字表:table =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;,#include sbit P1_0 = P10; unsigned char table=0x3f,0x06,0x5b,

11、0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; unsigned char i= 0 ; unsigned char j=0; unsigned char counter=10;,采用中断方式清零功能实现: void ext_int0(void) interrupt 0 using 2 P2=table0; P1=table0; i=0; j=0; ,中断方式实现99秒计时显示: void timer0(void) interrupt 1 using 1 TH0 =0x3C; TL0 =0xB0; counter-; if(counter=0) counter = 10

12、; i+; if(i=10) i=0; j+; if(j=10) j=0; P2 =tablej; P1=tablei; ,程序的初始化:,void main (void) TMOD =0x01; P2=table0; P1=table0; TH0 =0x3C; TL0 =0xB0; EA=1; EX0=1; IT0=1; ET0=1; TR0=1; while(1) ,#include void delay(void) unsigned int i; for(i=0;i30000;i+); void main(void) unsigned char tmp=0xfe; while(1) P1= tmp; delay(); tmp = (tmp1)|1); if(tmp=0xff) tmp=0xfe; ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号