>_<:16位定时器自动重装,60ms定时周期,LED闪烁
>_<:连接方式:将任意一个LED的引脚和P1.2相连
>_<:实验现象:LED以60ms为周期闪烁。
1 /*-----------------------------------------------
2 名称:定时器2
3 论坛:www.doflye.net
4 编写:shifang
5 内容:通过定时让LED灯闪烁
6 ------------------------------------------------*/
7 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
8
9 sbit LED=P1^2; //定义LED端口
10
11 /*------------------------------------------------
12 定时器初始化子程序
13 ------------------------------------------------*/
14 void TIM2Inital(void)
15 {
16 RCAP2H = (65536-60000)/256;//晶振12M 60ms 16bit 自动重载
17 RCAP2L = (65536-60000)%256;
18 ET2=1; //打开定时器中断
19 EA=1; //打开总中断
20 TR2=1; //打开定时器开关
21 }
22 /*------------------------------------------------
23 主程序
24 ------------------------------------------------*/
25 main()
26 {
27 TIM2Inital();
28 while(1);
29 }
30
31 /*------------------------------------------------
32 定时器中断子程序
33 ------------------------------------------------*/
34 void TIM2(void) interrupt 5 using 1//定时器2中断
35 {
36 TF2=0;
37 LED=~LED; //指示灯反相
38 }