MCS-51单片机定时器/计数器详解

需积分: 0 0 下载量 52 浏览量 更新于2024-06-30 收藏 2.8MB PDF 举报
"MCS-51单片机的定时器/计数器功能及工作原理" 在MCS-51系列单片机中,定时器/计数器是其核心功能之一,对于嵌入式系统设计和应用至关重要。在本课程的第六部分,主要讲解了MCS-51的定时器/计数器T0和T1的基本结构、功能以及工作方式。 首先,MCS-51单片机内建两个16位的定时器/计数器,即T0和T1。这两个定时器都可以被配置为定时模式或计数模式,并且还能用作串行接口的波特率发生器。8032系列单片机更进一步,额外提供了一个增强型的定时器/计数器T2,支持16位重装载模式、加/减计数模式,功能更为丰富。 定时器/计数器T0由TH0和TL0两个特殊功能寄存器组成,而T1则由TH1和TL1组成。它们的工作模式通过TMOD(工作方式控制寄存器)和TCON(定时器/计数器控制寄存器)进行设置。TMOD寄存器不能进行位寻址,但可以通过字节地址89H来整体设置T0和T1的工作模式,包括方式0、方式1、方式2和方式3。 在计数器模式下,外部事件通过T0(P3.4)和T1(P3.5)引脚输入,每当这些输入引脚从1变为0时,计数器会加1。CPU会在每个机器周期的S5P2拍节检测外部脉冲,如果连续两个周期检测到高低电平变化,即视为有效计数脉冲,在下一个S3P1拍节进行计数。因此,最高计数频率受限于振荡频率的1/24。 而在定时器模式下,计数器的输入来自内部时钟发生器,每个机器周期(12个振荡周期)计数器自动加1。若单片机的时钟频率为12MHz,那么计数频率就是1MHz,意味着每微秒计数器增加1次。 定时器/计数器T0和T1的四种工作方式有着不同的特点和应用场景: 1. 方式0:8位定时器/计数器,只使用TL0或TL1,每次溢出时TH0或TH1会被重置为预设值。 2. 方式1:16位定时器/计数器,TH0和TL0一起工作,形成16位计数器。 3. 方式2:8位自动重装定时器,TL0用作8位计数器,当其溢出时,TH0的值会被复制到TL0,实现自动重载。 4. 方式3:仅对T1有效,将T1设置为两个独立的8位定时器/计数器。 TCON寄存器则用于控制定时器的启动、停止以及中断请求标志。其中,TF0和TF1标志位分别用于指示T0和T1是否发生溢出,TR0和TR1则用来开启或关闭T0和T1。 了解并熟练掌握MCS-51单片机的定时器/计数器功能,对于编写实时控制系统、延时程序、波特率设置等应用至关重要。通过灵活配置工作方式和巧妙利用中断机制,可以实现各种复杂的定时和计数任务。