89C51定时器工作原理与应用

需积分: 37 3 下载量 125 浏览量 更新于2024-08-17 收藏 2.54MB PPT 举报
"C51定时器的使用方法和中断服务程序示例" 在单片机编程中,89C51系列芯片具有两个16位的定时器/计数器,即定时器0(T0)和定时器1(T1),它们可以作为计数器或者定时器工作。定时器在C51编程中起着至关重要的作用,用于实现延时、脉冲计数、定时中断等功能。本课件主要关注T0中断服务程序及其相关知识。 在定时器的四种工作模式中,模式0、1和2对于T0和T1是相同的,而模式3则有所不同。模式0是13位定时器模式,模式1是16位定时器模式,模式2是8位自动重装载定时器模式,模式3是两个独立的8位计数器模式。选择哪种模式通常取决于具体的应用需求。 在89C51中,定时器的工作原理是计数内部振荡器的时钟周期,当达到预设值后产生溢出中断。例如,在定时工作方式下,如果使用12MHz的晶振,每个机器周期为1μs,定时器计数频率为1MHz。而在计数工作方式下,定时器会捕获外部输入脉冲的下降沿,最高计数频率受限于晶振频率的1/24。 关于中断服务程序,例如标题中提到的";T0中断服务程序(由000BH转来)",这表明中断服务程序是由000BH地址的中断向量跳转而来。在给定的代码中,我们看到TOINT中断服务程序的内容: 1. 重装定时器T0的初值,即将TL0和TH0分别设置为#0B0H和#3CH。 2. 使用DJNZ指令检查软件计数器R7是否为0。如果不是0,则继续执行,否则进入下一步。 3. 当计数器R7归零,表示定时周期到达,将R7重新赋值为40,这通常与定时器的溢出周期有关。 4. 控制P1.7引脚电平翻转,可能是用来驱动外部设备,如LED灯,以显示中断发生。 5. 最后,使用RETI指令执行中断返回,恢复正常的程序执行。 控制定时器的工作模式和状态通常通过两个特殊功能寄存器完成:TMOD和TCON。TMOD用于设定定时器的工作模式,其低4位(GATE、C/T、M1、M0)用于设置T0,高4位用于设置T1。TCON寄存器则包含中断标志位(TF0、TF1)和其他控制位,如启动/停止定时器的位(TR0、TR1)。 总结,89C51的定时器是通过特定的工作模式、中断服务程序和控制寄存器来实现各种定时和计数功能的。在编写C51程序时,理解和掌握这些知识点至关重要,以便有效地利用定时器资源来实现系统的定时和控制功能。