微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 小白关于中断不是很理解 求大神分析下程序

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

时间:10-02 整理:3721RD 点击:
当到外部中断时 定时器不是应该不能再申请中断了吗 这里是哪个中断先发生

#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++;
}


中断执行时间很短,可以设置优先级,如果同时来先响应高优先级,后响应低优先级

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

这好像是测速的程序,由高优先权的外部中断设定1秒的中断次数,低优先权的定时器用于计时,最后得出SPEED是1秒内被外部中断的次数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top