51单片机中的外部中断有什么作用?
假设我在外部中断引脚上接上开关,按下就实现中断我是不是一样可以用程序来实现?那外部中断是否就无意义了?...
假设我在外部中断引脚上接上开关,按下就实现中断 我是不是一样可以用程序来实现?那外部中断是否就无意义了?
展开
4个回答
展开全部
可以打个比方,每天上班你都随时需要知道你同事的工作进度情况,你是希望你不停地打个电话去问“你做完了吗”,还是希望他做完了主动打个电话给你讲“我做完了,我们谈谈吧”。这就是中断的意义,在不需要的时候不影响处理 器做其它的事情,提高效率,增强程序的实时性。
51单片机外部中断使用方法:
1、51单片机的外部中断int0对应的引脚为p3.2。
2、设置寄存器,打开终端并选择中断的触发方式。
EA为整体中断允许位,首先要将EA置1,打开中断。
EX0为外部中断INT0,置1开启。
IT0寄存器:置0为低电平触发,置1为下降沿触发。
3、编写中断函数,int0的中断编号为0,这里使用中断控制led的点亮与熄灭。
中断函数格式一般为:
void 函数名称(void) interrupt 中断编号 【using 寄存器组编号】{语句;}
4、编译程序,并导入单片机对程序进行测试。
展开全部
实际应用中这个开关什么时候按下去是不确定的,你能用程序实现吗?最简单的就是报警,比如电路中过流监测,你怎么知道什么时候什么时候电流会过大?如果你把过流产生的信号接到外部中断上,一旦过流,单片机就可以马上响应。
当然,你也可以用另一种方法,就是把过流产生的信号接到IO脚上(假设正常监测电路输出为高电平,过流时为低电平),单片机不断地判断这个引脚是不是变成了低电平,一旦变成了低就响应。这就是查询的方法。如果单片机只要干这件事,这种方法也是可行的,但往往它还有其它的很多事要处理,那么这种查询的方法就会浪费很多资源。
借用楼上的例子,一个老板(单片机) 每天有很多事要处理,他派一个员工(外部中断)看着仓库,说一旦仓库着火就告诉他(中断请求),他再派人去灭火(响应中断)
。这总比老板自己一直盯着仓库好吧。当然,老板比较闲的话,也可以在那儿一直盯着或者每过一会儿就去看看,不过这样工作与能力不匹配,就有点浪费老板的才干了。
当然,你也可以用另一种方法,就是把过流产生的信号接到IO脚上(假设正常监测电路输出为高电平,过流时为低电平),单片机不断地判断这个引脚是不是变成了低电平,一旦变成了低就响应。这就是查询的方法。如果单片机只要干这件事,这种方法也是可行的,但往往它还有其它的很多事要处理,那么这种查询的方法就会浪费很多资源。
借用楼上的例子,一个老板(单片机) 每天有很多事要处理,他派一个员工(外部中断)看着仓库,说一旦仓库着火就告诉他(中断请求),他再派人去灭火(响应中断)
。这总比老板自己一直盯着仓库好吧。当然,老板比较闲的话,也可以在那儿一直盯着或者每过一会儿就去看看,不过这样工作与能力不匹配,就有点浪费老板的才干了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以打个比方,每天上班你都随时需要知道你同事的工作进度情况,你是希望你不停地打个电话去问“你做完了吗”,还是希望他做完了主动打个电话给你讲“我做完了,我们谈谈吧”。这就是中断的意义,在不需要的时候不影响处理 器做其它的事情,提高效率,增强程序的实时性。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你没明白?外部中断——引脚、或者单片机本身是实现中断的硬件部分。但是中断发生后要处理怎样的事情,这就是程序的内容了。所以一个完整的中断时软件和硬件的结合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询