C51单片机定时器/计数器工作原理与应用

3星 · 超过75%的资源 需积分: 9 26 下载量 111 浏览量 更新于2024-08-02 收藏 289KB PDF 举报
"C51的定时器与计数器详细解析" C51单片机中的定时器/计数器是其重要的硬件组成部分,用于实现定时和计数功能。定时器通常用于产生延时,而计数器则用于计算外部脉冲的个数。在C51中,定时/计数器主要由两个16位的寄存器组成,分为高8位(THx)和低8位(TLx),x代表0或1,分别对应两个独立的定时/计数器T0和T1。 1. 工作方式寄存器TMOD TMOD寄存器用于设置定时/计数器的工作模式,其中M1和M0位决定了工作模式,C/T位用于选择定时器或计数器模式,GATE位则与外部中断有关,允许外部信号控制定时器的启停。 2. 控制寄存器TCON TCON寄存器包含TR0和TR1,用于启动或停止定时器,TF0和TF1则作为溢出标志,当定时/计数器计数值达到最大并回零时,这些标志位会被置1,如果中断允许,会触发中断请求。 3. 工作原理 - 内部定时模式:定时器接收到系统时钟经过12分频后的脉冲,每来一个脉冲计数器加1,直到计数值达到最大后重置,并设置溢出标志。定时时间可以通过计数值乘以机器周期(Tcy)计算得出。 - 外部计数模式:外部脉冲通过T0或T1引脚输入,每个机器周期的特定时刻(S5P2)采样引脚电平,若检测到电平变化,计数器加1。 4. 模式选择 - 方式0:13位定时器/计数器,只使用低8位(TL0或TL1)作为计数器,高5位自动预置为0。 - 方式1:16位定时器/计数器,高8位和低8位组合成一个16位计数器。 - 方式2:8位自动重装载定时器,低8位计数,溢出时将高8位的内容装载到低8位。 - 方式3:仅对T1有效,低8位作为8位定时器,高8位作为波特率发生器。 5. 扩展定时/计数器 当内置的定时/计数器不足以满足需求时,可以通过连接外部可编程定时器芯片来扩展功能,这些芯片允许更灵活地设定定时值和范围。 6. 中断处理 溢出标志TF0和TF1被置1后,如果对应的中断允许位(如EA)也被置1,CPU会响应中断,执行相应的中断服务程序。中断处理后,通常需要清除溢出标志,以便下一次计数。 综上,C51的定时器/计数器在实际应用中具有广泛的功能,可以根据不同的工作模式和配置,适应各种定时和计数任务,是单片机系统设计中的重要工具。