51单片机的定时任务

51单片机定时任务中有两个寄存器理解,TMOD和TCON;掌握了TMOD和TCON功能后,就可以游刃有余的进行定时与计数,同时可以控制定时与计数任务的开与关。

TMOD是设置使用什么类型的寄存器,设置多少计数与定时时间

TCON寄存器是表示寄存器的开与关,以及什么时候被关掉

如下图是51单片机定时与计数使用到的相关寄存器;TMOD与TCON相互配合决定了定时器的模式选择与啥时候开与关闭。

其中计算时钟,比如从某个数数到FFFFH这个值时,是要通过Timer 0和Timer 1寄存器来完成的。

我们又知道,如果单片机从比如 FFH 数到 FFFFH 时间时可以计算的,且时间间隔是稳定的,比如频率12M Hz,每次机器周期等于1 us(一个机器周期等于12个时钟周期),所以这样就达到了定时效果。
在这里插入图片描述

TMOD寄存器

定时/计数器模式控制寄存器TMOD,TMOD是"time mode"的缩写,意思是定时/计数器模式。 TMOD寄存器能够存放是一个字节8位数据,每个位表达了不同的功能,如下图是不同的位表的不同的功能表。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

TCON寄存器

TCON是“Time control”的缩写,“定时/计数的控制” 意思。
在这里插入图片描述
在这里插入图片描述

根据时钟频率计算运行中需要的时间

在这里插入图片描述
在这里插入图片描述

定时的模式

模式有0, 1, 2, 3。

如下图是计时器工作在 模式1 的简述。
模式1的Timer
模式1的计数器汇编代码实例

    ORG 00H

START:
    MOV TMOD, #01H

LOAD:
    MOV TL0, #78H
    MOV TH0, #0ECH
    CPL P0.0        ;P0.0口电平取反
    CALL TIME_DELAY
    JMP LOAD

TIME_DELAY:
    SETB TR0        ;TR0口置1

CHECK:
    JNB TF0, CHECK
    CLR TR0
    CLR TF0
    RET

END

模式0设置与模式一相同,只不过是13位的,是设置x的值数到1FFFH。
之所以是1FFFH,是因为十六进制的1FFF等于 0001 1111 1111 1111 ,恰好是13位的数据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模式三的设置方式与程序
在这里插入图片描述

总结:

本文中总结了,计数器\计时器 的计时是在Timer 0和Timer 1寄存器 中存放的数据进行数数(就是小娃娃那种那种数数);又可以得出Timer 0和Timer 1寄存器中存在THx, TLx寄存器,该THx,TLx就是存放需要数数的起始位置。

也总结了TMOD和TCON寄存器,它哥两的配合,决定了定时或者计时,以及是啥样的定时;TCON决定了该任务是啥时候停止与开始。

Timer 0, Timer 1,TMOD,TCON寄存器的相互配合完成了定时任务。

定时器与中断的的代码可以下载(免费无限次共享,放心下载https://download.csdn.net/download/Hello_Ray/41141041

本文的图片全部来自于 《51单片机应用从零开始》 杨欣版本

Guess you like

Origin blog.csdn.net/Hello_Ray/article/details/120732599