8051单片机是MCS-51系列中的经典型号,它内置了两个定时/计数器,分别称为T0和T1。这两个定时/计数器都具有多种工作模式,使得它们能够适应不同的应用场景。 T0具有四种工作模式: 1. 方式0:13位定时/计数器,由TH0的8位和TL0的低5位组成,最大计数值为8192。 2. 方式1:16位定时/计数器,TH0和TL0共同组成,最大计数值为65536。 3. 方式2:8位定时/计数器,TL0作为加1计数器,TH0存储初值,特点是溢出后自动重载,适合连续定时应用。 4. 方式3:仅适用于T0,将T0的低8位作为一个独立的定时/计数器,而TH0作为一个独立的定时器,使用T1的TR1和TF1作为高8位定时器的控制和标志位。 T1同样有三种工作模式,与T0相同但不包含方式3。 选择工作模式是通过设置TMOD寄存器来实现的。TMOD的高四位控制T1,低四位控制T0。例如,设置TMOD = 0x02,意味着T0被设定为方式2。 关于定时时间,如果使用3MHz的晶振,机器周期为4us。对于T0,最大定时时间分别为: - 方式0:8192 * 4us = 32.768ms - 方式1:65536 * 4us = 262.144ms - 方式2:256 * 4us = 1024us 当T0作为计数器使用时,其计数频率不能超过晶振频率的1/24,即fosc/24。 在不同的工作模式下,T0和T1的特点各异。例如,方式2的T0因其自动重载特性,适用于需要精确定时且重复计数的应用场景。 当需要更长的定时时间时,可以利用两个定时器的串行定时。如举例所示,两个定时器都设置为方式1,当第一个定时器溢出时,触发第二个定时器计数,这样可以实现更大范围的定时。 程序示例展示了如何使用MCS-51单片机生成20kHz的方波。一种方法是采用查询方式,检查T0的溢出标志,然后翻转P1.0的电平。另一种方法是使用中断,当T0溢出时自动触发中断服务程序,同样改变P1.0的电平。 通过理解这些知识点,开发者能够灵活地利用8051单片机的定时/计数器功能来实现各种定时和计数任务,适应各种嵌入式系统的需求。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助