51单片机怎么用定时器记录两次外部中断的时间?C语言应该如何编程?

void counter(void) interrupt 0
{
EX0=0;
Delay10ms(1);
Count++;
Delay10ms(1);
EX0=1;
}
void Timer_0(void) interrupt 1
{
TH0=0x3c; //0.1s
TL0=0xb0;
t0++;
}

好像缺少了什么,不能实现功能

我51的时钟寄存器了解的不多,因此以概念形式来述说下。
第一需要定时器初始化:
a:中断寄存器初始化

b:计数寄存器初始化

c:重装填寄存器初始化(当计数寄存器计数完了后,使用这个寄存器,还原计数寄存器)

d:分频值 主频/2^分频值 =定时器的频率
e:使能
第二部需要根据中断向量设置中断函数
void Timer_0(void) interrupt 中断向量值//定时器中断函数的向量值参照芯片文档
{
你想做的处理;
SR寄存器复原;//进入中断的标志寄存器,不清除的话,立马又进中断
}
第三部调用
int main(){
系统时钟初始化函数();//设置主频
定时器初始化函数();
while(1){
每次到达你设定的时间就进入中断函数一次


希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-21
两次外部中断,间隔时间,大约是多少?

两次外部中断,一次,启动定时器;
另一次,停止定时器。

这样,即可得到:间隔时间。本回答被网友采纳