51初学者——从数据手册到定时器/计数器

张开发
2026/6/9 19:16:37 15 分钟阅读
51初学者——从数据手册到定时器/计数器
这一篇主要讲述我如何阅读数据手册配置好STC89C52RC的定时器外设的。定时器/计数器是两张不同的东西他们的本质都是对脉冲进行计数只不过脉冲的来源不同定时器的脉冲来源是系统的时钟计数器的脉动来源是外部引脚具体的工作模式是每隔一定时间会发送一个脉冲然后计数器加一。下面是定时器0和1的相关寄存器我们将对这些寄存器赋值以实现我们对应的目的控制寄存器TCONTCON里面有着控制外部中断源的寄存器也有着控制定时器0/1的寄存器我们不要搞混了定时器是有着他单独的中断源的。工作模式是寄存器发送脉冲让计数器计数每发送一个脉冲计数器加一当计数器到达上限溢出后便会将中断标志位置1从而向CPU请求中断。从图中我们可以看到TR1/0TF1/0这些分别对应着定时器1或0。本次我们要用到的是定时器0由于TCON这个寄存器是可为选址的所以我们直接配置相应的位就好了。TF0就是中断标志位我们需要配置是TR0我们将TR0配为1使定时器开始计数即可GATE是默认为0的。配置完控制寄存器后我们将配置工作模式寄存器TMODTMOD是不可位寻址要我们配置一个8位的二进制数我们只需要用到定时器0所以高四位直接配为默认的0即可。CT配为0我们要用到的是模式一所以按要求配好即可。这是定时器0模式一的结构体。这个图很好的解释了我们之前配置的寄存器有什么作用比如C/TTR0等等。我们之前说过定时器结合中断系统的工作模式就是定时器每发送一个脉冲计数器TL0HE和TH0都会加1嗯定时器计数溢出后会触发中断那么我们该怎么设定我们想要的时间触发中断呢我们可以给计数器赋上初值每触发一次中断后再重新赋上初值这样就可以控制触发中断的时间从而实现一些简单的功能。这样我们这次的定时器外设就配置好了调用外设的本质就是在配置寄存器即往某些地址写入特定的数据。配置好定时器写好中断函数中的中断任务设置需要的计数器初值便可以实现我们想要的功能。

更多文章