一、什么是守时器/计数器
在51单片机中,守时器/计数器是用来完结守时功用,而且具有计数的功用,来完结对外部信号的计数。
二、守时器/计数器有什么类型
在51单片机中,分为软件守时器,不行编程硬件守时器,可编程守时器。
软件守时:CPU每履行一条指令时,是需求固守时刻的,所以,经过履行空指令能够到达延时的作用,这姿态做的价值是占用CPU时刻,所以一般很少这么做。
不行编程硬件守时器:是由电路和硬件来完结守时功用的,一般选用基电路,外接守时部件(电阻和电容),经过改动电阻的阻值和电容的电容值来修正守时值,一量确认后件不能经过软件修正,这姿态做的长处是不需求占用CPU时刻。
可编程守时器:通软件来确认守时值及其规模,可编程守时器功用强大,灵活性高。这是本文具体解说的守时器。
三、守时器的内部结构及作业原理
8051单片机有守时器0(T0)和守时器1(T1)两个守时器。
守时器0(T0)和守时器1(T1)是两个16位加法计算器。
守时器0是由TH0和TH1两个8位计数器组成的,守时器1也是相同。
守时器内部还有以下寄存器:
8位的方法寄存器(TMOD)
8位操控寄存器(TCON)
挑选守时器形式寄存器(C/T)
发动方法寄存器(GATE)
作业方法及宣布发动信号寄存器(TR0或TR1)
四、守时器作业方法
守时器的作业方法主要是经过THOD低4位是守时器0的作业方法操控位,高4位为守时器1的作业方法操控方法。均为M1M0
作业方法M1M0功用00013位计数器10116位计数器2108位计数器,初值主动装入311T0分红两个8位计数器,T1停止作业五、运用守时器
TImer_count.c
#include
unsigned char i;
sbit LED0 = P1^0;
void main(void)
{
TMOD = 0x01;
TH0 = 0;
TL0 = 0;
ET0 = 1;
TR0 = 1;
EA = 1;
while(1);
}
void t0_delay(void) interrupt 1
{
i++;
TR0 = 0;
TH0 = 0;
TL0 = 0;
if(i == 20)
{
i = 0;
LED0 = ~LED0;
}
TR0 = 1;
}