[6单片机c程序设计4定时器.pptVIP

  • 21
  • 0
  • 约 35页
  • 2017-01-05 发布于北京
  • 举报
[6单片机c程序设计4定时器

因为T1的TR1被占用,其启动和关闭较为特殊, 当设置好工作方式时,T1即自动启动。 若要停止,只需送入一个设置T1为方式3的方式字即可。 因为T1的TF1被占用,溢出后只能将溢出信号送到串行口! 因为T1的中断信号被占用,此时T1不能引起中断了! 定时器0在方式3时的逻辑结构 振荡器 ?12 控制 T0 TR0 GATE INT0 中断 TF0 TL0 (8 位 ) 12 1 f osc 中断 TF1 TH0 (8 位 ) TR1 C/T = 0 C/T = 1 12 1 f osc 12 1 f osc Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 定时器0方式3的应用场合 T1方式2自动重载! 通常情况下,T0不运行于工作方式3, 只有在T1处于工作方式2,并不要求中断的条件下才可能使用。 这时,T1往往用作串行口波特率发生器, TH0用作定时器, TL0定时器或计数器。 所以,方式3是为了使单片机有一个独立的定时器/计数器、 一个定时器以及一个串行口波特率发生器的应用场合而特地提供的。 这时,可把定时器1用于工作方式2,把定时器0用于方式3。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. TMOD ;选择方式 TH0/TH1 ;预置初值 TL0/TL1, EA ;根据需要开中断 ET0/ET1 TR0/TR1 ;启动定时器 1)初始化编程格式 注意:方式0(13位):TL0/TL1的低5位有效 方式2(8位) :TL0/TL1=TH0/TH1=X 4 定时器/计数器程序结构 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. … ;定时器初始化 TF0/TF1 ;检测溢出标志 TH0/TH1;重装初值 TL0/TL1 … ;溢出处理 2)溢出处理编程格式 查询方式:先查询定时器溢出标志,再进行溢出处理。 注意:方式2时,不必重装初值。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 4 定时器/计数器程序结构 1.在定时模式寄存器TMOD中加载相应的值,以指示采用哪个定时器, 以及选择哪种定时模式; 2.根据具体定时要求,设置THx、TLx的初始值; 3.在时间控制寄存器TCON中置TRx=1,启动定时器; 4.在程序中持续检查TCON中的定时器标志TFx,直至TFx=1; 5.清零TFx标志(TFx=0)并停止定时器(TRx=0),完成有关应用任务。 6.如循环定时,转到步骤2。 查询方式 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 查询检测弊端 查询检测方式,从代码中可以看到CPU一直都在检查定时器标志是否置位(TF0或TF1))。中断模式可以提高CPU的使用效率或降低系统功耗。Keil Cx51编译器对中断有很好的支持,只要简单地定义相关的中断服务例程(Interruption Sevice Routine),并在中断服务例程函数头中指明中断源和函数使用的寄存器组就可以了。堆栈处理、寄存器组切换、中断向量的产生等等由编译器负责处理。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. //000BH(001BH)T0/T1中断入口 对应interrupt 1/3 void XXX_ISR (void )interrupt 1/3 using 2 { TH0/TH1//重装初值(

文档评论(0)

1亿VIP精品文档

相关文档