全站数据
8 4 2 0 5 8 1

51单片机中的定时器中断是怎么用的

雪梨说造价 | 简单学习,快乐成才!         
问题更新日期:2024-10-12 07:06:08

问题描述

51单片机中的定时器中断是怎么用的急求答案,帮忙回答下
精选答案
最佳答案

所以中断的使用:

1.开全局中断 51是 EA = 1

2.对应中断使能 比如定时器1 ET1 = 1、定时器0 ET0 = 1

3.定时器工作方式配置: 有三种方式 双8位定时 16位定时 还有捕捉方式 定时器2有4种 ,具体不介绍了 TMOD 是定时器0和定时器1方式配置的寄存器 TMOD = 0x01,定时器0工作在方式1(16位计数)

4.打开定时器 TR0 = 1;定时器1打开是 TR1 = 1;

5.中断服务程序:就是定时时间到,你要处理的事务。

例子://50ms定时 void main(void) { TMOD = 0x01; //配置方式 TH0 = 0x3C; //计数时间 TL0 = 0xB0; TR0 = 1; //开启定时器 EA = 1; //全局中断打开 ET0 = 1; //定时器0中断打开 for(;;) } void Timer0_ISR(void) intterupt 1 //中断服务程序 { TH0 = 0x3C; //计数时间 TL0 = 0xB0; P1 = 0x11; //定时到,要执行的动作 }

其他回答

利用一个变量做标志来做处理,外部中断出发后将这个标志置1,然后在主函数里面判断这个变量,如果标志为1,那么TR0或者TR1就等于1(运行定时器),再次出发外部中断后,标志置0,此时标志为0,那么TR0,TR1等于0(停止运行定时器)。

在外部中断函数中可以如设置一个全局变量为标志位 static bit FLAG=0; 然后 FLAG=!FLAG 就可以完整出发外部中断后的标志位切换。

其他回答

首先设置定时器工作方式,给计数器赋初值,然后开总中断,开定时/计数器中断,启动定时器,然后你该干嘛干嘛,没嘛干就死循环等待中断。在中断里你想干嘛干嘛,但是不能有返回值。下面一C语言为例说明:

#include