MCS51单片机定时器T0&T1初始化与初值计算

需积分: 0 0 下载量 180 浏览量 更新于2024-07-01 收藏 1.26MB PDF 举报
"本章节主要介绍了MCS51单片机中的定时器/计数器T0与T1的初始化及计数初值的计算方法。内容包括不同工作方式下的最大计数值,以及如何根据需求设定定时器的工作模式、初值、中断控制,并给出了定时模式和计数模式下计数初值的计算公式。通过实例展示了如何利用定时器T0在方式1下生成周期为2ms的方波。" 在MCS51单片机中,定时器/计数器T0和T1是重要的硬件模块,它们能够执行定时或计数任务。初始化这两个定时器的步骤主要包括以下几个方面: 1. **选择工作模式**:通过编程TMOD寄存器来设定定时器的工作方式。TMOD寄存器的低四位用于设定T0的工作方式,高四位用于设定T1。方式0、1、2、3分别对应不同的计数范围和功能。 2. **设置计数初值**:根据选定的工作方式和所需的计数时间,计算出合适的初值并直接写入TH0、TL0或TH1、TL1寄存器。例如,方式0的最大计数值为2^8=8192,方式1为2^16=65536,方式2和方式3为2^8=256。 3. **控制启动方式**:通过编程TCON寄存器中的TR0和TR1位,可以启动或停止定时器。如果需要通过外部中断引脚启动,还需要设置相应的启动电平。 4. **中断设置**:根据应用需求,可以通过编程IE和IP寄存器来开启或关闭CPU和定时器的中断。 计数初值的计算公式如下: - **计数模式**:计数初值X=2^n-计数值,其中n为计数器位数,计数值为所需外部脉冲的数量。 - **定时模式**:定时初值X=2^n-计数值=(2^n-t/T),其中t为定时时长,fosc为系统时钟频率,T为机器周期,即T=1/fcont,fcont=fosc/12。 举例说明,如果使用定时器T0在方式1下,系统时钟频率fosc为6MHz,要生成周期为2ms的方波,每1ms中断一次,可以通过以下步骤实现: 1. 计算机器周期:T=1/fosc=1/(6MHz)=1/6us=0.1667us。 2. 计算定时初值:t=1ms,X=2^16-(1ms/0.1667us)=2^16-6000。 通过这种方式,定时器T0在每次溢出时触发中断,中断服务程序中改变P1.0的状态,从而在P1.0引脚上生成周期为2ms的方波。 了解并掌握这些知识,开发者可以灵活地利用MCS51单片机的定时器/计数器功能,实现各种定时和计数任务,为嵌入式系统的设计提供基础支持。