1.为什么要用计时器?
延时过程中,CPU时间被占用,无法进行其他任务,导致系统效率降低。延时时间越长,该
缺点便越明显,因此软件延时只适用于短暂延时,或简单项目。
工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
2.定时器操作步骤:
1.选择工作方式(设置M1,M0)
2.选择控制方式(设置GATE)
3.选择定时器还是计数器模式(设置C/T)
4.给定时/计数器赋初值(设置THx和TLx)
5.开启定时器中断(设置ET0或ET1)
6.开启总中断(设置EA)
7.打开计数器(设置TR1或TR0)
定时/计数器的作用
1、进行延时。
2、对外部信号的时间间隔进行精确测量。
3、对外部脉冲信号进行计数。
#include<reg52.h>
#include "bstv51.h"
void Init_timer0(void)
{
TMOD
|= 0X01;
TH0
=0X00;
TL0
=0X00;
EA
=1;
ET0
=1;
TR0
=1;
}
void main()
{
bstv51_init();
Init_timer0();
while(1)
{
;
}
}
void Timer0_isr(void)interrupt
1
{
TH0
=0x00;
TL0
=0x00;
L0
=~L0
;
}
#include<reg52.h>
#include "bstv51.h"
uint i
=0;
void Init_timer0(void)
{
TMOD
|= 0X01;
TH0
=0X4C;
TL0
=0X00;
EA
=1;
ET0
=1;
TR0
=1;
}
void main()
{
bstv51_init();
Init_timer0();
while(1)
{
if(i
==10)
{
L0
=~L0
;
i
=0;
}
}
}
void Timer0_isr(void)interrupt
1
{
TH0
=0x4C;
TL0
=0x00;
i
++;
}