AT89S51单片机定时器/计数器详解

需积分: 13 6 下载量 56 浏览量 更新于2024-08-19 收藏 498KB PPT 举报
"本章介绍了AT89S51单片机的定时器/计数器T1和T0的结构、功能、工作模式以及相关寄存器TMOD和TCON的使用。" 在微控制器领域,定时器和计数器是至关重要的组成部分,特别是在工业检测与控制中,它们广泛用于计数外部脉冲和实现精确的定时任务。AT89S51单片机内置了两个可编程的定时器/计数器——T1和T0,这两个定时器都可以作为定时器或计数器工作,并且有四种不同的工作方式。 6.1 定时器/计数器的结构 AT89S51的定时器/计数器由两个特殊功能寄存器组成:TH0和TL0构成T0,TH1和TL1构成T1。每个定时器都有两种基本模式:定时器模式和计数器模式。在计数器模式下,它们通过P3.4(T0)和P3.5(T1)引脚接收外部脉冲进行计数;而在定时器模式下,它们则对内部的时钟信号(经过12分频后的机器周期)进行计数,从而实现定时功能。 6.1.1 工作方式控制寄存器TMOD TMOD寄存器用于设定定时器的工作模式,其高4位控制T1,低4位控制T0。其中,GATE位决定定时器是否受外部中断引脚INT0*或INT1*的电平影响,M1和M0位则决定了定时器的工作方式: - GATE=0时,定时器的运行仅由TRx位控制。 - GATE=1时,运行状态取决于TRx位和INT0*或INT1*的电平。 - M1和M0的组合(00、01、10、11)分别对应工作方式0至3。 工作方式0至3的特性如下: - 方式0:13位定时器/计数器,THx用于存放高5位,TLx存放低8位。 - 方式1:16位定时器/计数器,THx和TLx组合成16位计数器。 - 方式2:8位自动重装载定时器,TLx用作低8位计数器,当计满溢出时,会自动从THx重新加载。 - 方式3:4位定时器/计数器,每两个位作为一个独立的8位定时器,T0使用TH0和TL0,T1使用TH1和TL1。 6.1.2 控制寄存器TCON TCON寄存器用于控制定时器的启动和停止,以及获取它们的状态。它包含TR0和TR1位,分别用于启动和停止T0和T1。此外,TF0和TF1位表示定时器溢出标志,当计数达到最大值并溢出时,这些位被置位,可以通过软件清除。 在C51编程中,可以利用这些特性来实现各种定时和计数功能,例如延时、脉冲宽度调制、频率测量等。实际应用时,通常需要初始化TMOD和TCON寄存器,设置合适的工作模式和初始计数值,然后根据需求启动或停止定时器,并处理溢出事件。 总结来说,AT89S51的定时器/计数器提供了灵活的定时和计数解决方案,通过配置TMOD和TCON寄存器,可以适应多种应用场景,是单片机控制系统中的关键组件。