当前位置:首页 > 单片机 > 单片机
[导读]>___

>_<:定时/计数器0使用16位定时模式,计数初值为0,计数到65536溢出,中断程序中LED取反,LED以65536*2个时钟周期为周期闪烁。


>_<:连接方式:将任意一个LED的引脚和P1.2相连


>_<:实验现象:LED以65536*2个时钟周期为周期闪烁。


1 /*-----------------------------------------------

2 名称:定时器0

3 论坛:www.doflye.net

4 编写:shifang

5 内容:通过定时让LED灯闪烁

6 ------------------------------------------------*/

7 #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

8

9 sbit LED=P1^2; //定义LED端口

10

11 /*------------------------------------------------

12 定时器初始化子程序

13 ------------------------------------------------*/

14 void Init_Timer0(void)

15 {

16 TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响

17 TH0=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出

18 TL0=0x00;

19 EA=1; //总中断打开

20 ET0=1; //定时器中断打开

21 TR0=1; //定时器开关打开

22 }

23 /*------------------------------------------------

24 主程序

25 ------------------------------------------------*/

26 main()

27 {

28 Init_Timer0();

29 while(1);

30 }

31 /*------------------------------------------------

32 定时器中断子程序

33 ------------------------------------------------*/

34 void Timer0_isr(void) interrupt 1 using 1

35 {

36 TH0=0x00; //重新赋值

37 TL0=0x00;

38

39 LED=~LED; //指示灯反相,可以看到闪烁

40 }



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭