0%

单片机定时器

定时器方式2

手动重装初值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <atmel/REGX52.H>

void main(void)
{
// GATE C/T M1 M0 GATE C/T M1 M0
TMOD = 0X01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
EA = 1;
ET0 = 1;
TR0 = 1;
P0_0 = 1;
while(1);
}

void timer0() interrupt 1
{
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
P0_0 = ~P0_0;
}