MCS-51单片机定时计数器的复合应用技巧

需积分: 9 1 下载量 135 浏览量 更新于2024-10-09 收藏 249KB PPT 举报
"MCS-51定时计数器的应用" MCS-51系列单片机中的定时/计数器是其核心功能之一,对于各种实时控制和信号处理任务至关重要。定时/计数器可以通过不同的工作模式实现不同时间间隔的定时或对外部脉冲的计数,从而极大地提升了单片机的灵活性和实用性。 在MCS-51中,定时器T0和T1都提供了四种工作模式:0、1、2和3。工作模式0和1是13位定时器,模式2是8位自动重装载定时器,模式3是两个8位定时器组合成的16位定时器。每种模式对应的时间间隔上限不同,如在6MHz的晶振频率下,模式0和1的最大定时时间为16.384ms,模式2为131.07ms,而模式3则达到131.07ms。对于超过这些限制的定时需求,通常需要采用复合定时的方式,即结合多个定时器或工作模式来实现。 例如,【实验1】中提到的任务是利用T0定时和T1计数,使得LED每秒闪烁一次。由于实验要求的1秒间隔超出了单个定时器的最大定时范围,因此需要T0先设定时100ms,然后T1作为计数器,接收由T0产生的脉冲,计数5次,总共100ms+100ms×5=1000ms,即1秒。在这种情况下,TMOD寄存器的设置至关重要。TMOD寄存器用于控制定时器的工作模式,其中T0设为方式1,T1设为方式2。因此,TMOD的初始值应为61H,表示T0为定时方式1,T1为自动重装载的计数方式2。 计算定时/计数初值是应用定时器的关键步骤。对于T0,如果需要定时100ms,初值X应满足(2^16 - X) * 2μs = 100ms,解得X=15536,即3CB0H,其中3CH装入TH0,B0H装入TL0。对于T1,由于在方式2下是8位计数器,计数5次,所以初值为(2^8 - 5) = 251,即FBH,该值同时装入TH1和TL1。 在定时/计数结束后,系统可以通过中断或软件查询的方式来响应。当定时器溢出标志(如TF0或TF1)被设置时,如果中断已开启,就会触发中断服务程序;如果不使用中断,程序可以周期性地检查这些标志位,一旦标志位被置1,就执行相应的处理代码。这种方式称为非中断驱动的定时/计数,虽然减少了中断处理的开销,但可能会增加主循环的复杂性。 MCS-51的定时计数器功能强大且灵活,能够适应多种应用场景。通过选择合适的工作模式、计算并设置初值以及决定是否使用中断,可以实现精确的定时和计数任务,这对于单片机的众多应用,如LED控制、脉冲测量、电机控制等,都是至关重要的。