完成守时和计数的办法一般有:软件守时、专用电路和可编程守时器/计数器 三种办法。
软件守时:履行一个循环程序进行时刻延迟。守时准确,不需要外加硬件电路,但会添加CPU开支。
专用硬件电路守时:能够完成请准确的守时和计数,但参数调理不方波。
可编程守时器/计数器:不占用CPU时刻,能与CPU并行作业,完成准确的守时和计数,又能够经过变成设置其作业方式和其他参数,运用方便。
以下阐明仅试用宏晶的STC89C52!!
守时器2:
T2MOD,T2CON,TH2,TL2,RC2H,RC2L.
T2MOD:0C9H(不行位寻址)
0 | 0 | 0 | 0 | 0 | 0 | T2OE | DCEN |
T2OE:守时器输出使能位
DECN:向上/向下计数使能位。守时器2可配制成向上/向下计数器。
0:向上计数(形式状况) 1:向下计数(尽量不运用)
T2CON:0XC8H(可位寻址)
TF2 | EXF2 | RCLK | TCLK | EXEN2 | TR2 | C/T2 | CP/RL2 |
TF2:7 上/下 溢出标志位,守时器2溢出时置位,有必要有用软件清零!当RCLK或TCLK=1时,TF2将不会置位。
EXF2:6 守时器2外部标志,当EXEN2=1且T2EX的负跳变发生捕获或重装时,EXF2置位。守时器2中止使能时,EXF2=1将使CPU从中止向量处履行守时器2中止子程序。EXF2位有必要用软件清零。在递加/递减计数器形式(DCEN=1)中,EXF2位不会引起中止。
RCLK:5 接纳时钟标志。RCLK置位时,守时器2的溢出脉冲作为串口形式1和形式3的接纳时钟。RCLK=0时,将守时器1的溢出脉冲作为串口形式1和形式3的接纳时钟。
TCLK:4 发送时钟标志位。TCLK置位时,守时器2的溢出脉冲作为串口形式1和形式3的发送时钟。TCLK=0时,将守时器1的溢出脉冲作为串口形式1和形式3发送时钟。
EXEN2:3 守时器2外部使能标志。当其置位且守时器2未作为串口时钟时,答应T2EX的负跳变发生捕获或重装。EXEN2=0时,T2EX的跳变对守时器2无效。
TR2:2 守时器2 发动/中止操控位。置1时发动守时器。
C/T2:1 守时器/计数器挑选(守时器2)
0 = 内部守时器(SYS_CLK/12或SYS_CLK/6)
1 = 外部事情计数器(下降沿触发)
CP/RL2:0 捕获/重装标志。EXEN2=1时,T2EX的负跳变发生捕获。EXEN2=0时,守时器2溢出或T2EX的负跳变都能够使守时器主动重装。RCLK=1或TCLK=1时,该位无效且守时器强制为溢出时主动重装。
守时器2有三种操作形式:捕获,主动从头装载(递加或递减计数)和波特率发生器,这三种形式由T2CON中的位进行挑选:
守时器2的作业方式:
RCLK+TCLK | CP/RL2 | TR2 | 形式 |
0 | 0 | 1 | 16位主动重装 |
0 | 1 | 1 | 16位捕获 |
1 | x | 1 | 波特率发生器 |
x | x | 0 | 封闭 |