AT89S51单片机定时器/计数器工作模式详解

需积分: 13 6 下载量 95 浏览量 更新于2024-08-19 收藏 498KB PPT 举报
"AT89S51单片机的定时器/计数器功能、工作方式和寄存器配置" 在8051系列单片机中,AT89S51内置了两个可编程的定时器/计数器T1和T0,它们在工业控制和检测领域中广泛应用于计数和定时任务。这两个定时器/计数器都有定时器和计数器两种工作模式,并且支持4种不同的工作方式。 定时器/计数器的结构主要包括特殊功能寄存器TMOD和TCON。TMOD寄存器用于设置T0和T1的工作模式和方式,而TCON寄存器则用来控制定时器的启动、停止以及状态监控。 TMOD寄存器的高4位用于控制T1,低4位控制T0。其中,GATE位决定定时器运行的控制方式。如果GATE为0,定时器仅受TRx(x = 0, 1)运行控制位的影响;当GATE为1时,外中断引脚INT0*或INT1*的电平将与TRx一起决定定时器是否运行。 M1和M0是工作方式选择位,它们的不同组合(00, 01, 10, 11)对应4种工作方式: 1. 方式0:13位定时器/计数器,TLx低5位和THx高8位组成13位计数器,溢出时自动重装载预设值。 2. 方式1:16位定时器/计数器,TLx和THx组合成16位计数器,溢出时需手动重装载预设值。 3. 方式2:8位自动重装载定时器,仅TLx作为8位计数器,当达到预设值时,自动将THx的内容复制到TLx并重新计数。 4. 方式3:两个独立的8位定时器/计数器,每个8位部分(TL0和TH0,或TL1和TH1)单独操作。 TCON寄存器包含TR0和TR1,分别用于启动和停止T0和T1的计数。此外,还有TF0和TF1标志位,表示T0和T1是否已发生溢出,可用于中断触发。 在定时器模式下,T0和T1会根据内部时钟经过12分频后的脉冲进行计数,这使得我们可以根据计数值计算定时时间。而在计数器模式,它们会对外部输入的脉冲(T0通过P3.4,T1通过P3.5)进行计数。 在编程中,我们可以通过设置TMOD和TCON寄存器来控制定时器的工作方式和启动/停止。例如,设置M1和M0为01,即方式1,可以使定时器工作在一个16位的计数周期内。而当需要在特定中断条件下启动定时器时,可以设置GATE位为1。 总结来说,AT89S51的定时器/计数器提供了一套灵活的机制,以适应各种计数和定时需求。理解并熟练掌握TMOD和TCON寄存器的配置,是有效利用这些功能的关键。在实际应用中,结合C51语言编程,可以实现精确的定时和计数任务,以满足控制系统的需求。