小白关于中断不是很理解 求大神分析下程序

2019-07-16 03:31发布

当到外部中断时 定时器不是应该不能再申请中断了吗 这里是哪个中断先发生


#include<reg52.h>
unsigned char num;//定义采集的的周期
unsigned int number;//脉冲计数
unsigned char time_Flag=0;//计时标志位
void main(void)
{unsigned int speed;
TMOD = 0X01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
EA= 1;
TR0 = 1;
ET0 = 1;
EX0 = 1; //开启外部中断0
IT0 = 1; //下降沿触发
while(1)
{
if(Time_Flag==1)
   {Time_Flag=0;
   speed=number;
    number=0;}
}

}
void Time0() interrupt 1
{TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
num++;if (num == 20)//定时采集周期大约 1s
{num = 0;
Time_Flag=1;
}

}
void In0() interrupt 0
{

number++;

}




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lstcspring
1楼-- · 2019-07-16 07:03
 精彩回答 2  元偷偷看……
hbr
2楼-- · 2019-07-16 10:27
lstcspring 发表于 2012-11-26 19:51
中断执行时间很短,可以设置优先级,如果同时来先响应高优先级,后响应低优先级 ...

麻烦请就这个程序分析下中断的执行

月光之子
3楼-- · 2019-07-16 12:11
这好像是测速的程序,由高优先权的外部中断设定1秒的中断次数,低优先权的定时器用于计时,最后得出SPEED是1秒内被外部中断的次数。

一周热门 更多>