找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2756|回复: 5
收起左侧

单片机通过一个按键,进入一个无限延时的中断,能不能再通过这个按键,再恢复现场?

[复制链接]
ID:276690 发表于 2018-1-16 18:21 | 显示全部楼层 |阅读模式
问一个单片机问题:通过一个按键,进入一个无限延时的中断,能不能再通过这个按键,再恢复中断?

按下按键  中断  再次按下  恢复现场
回复

使用道具 举报

ID:84283 发表于 2018-1-16 21:58 | 显示全部楼层
外部中断  优先级最高
回复

使用道具 举报

ID:272269 发表于 2018-1-17 07:42 | 显示全部楼层
可以啊在中断里写一个while()中间写一个判断
按钮写一个中断优先于上一个中断
按钮是用来写一个while中的判断
这样就会出现你先要的结果
回复

使用道具 举报

ID:83690 发表于 2018-1-17 09:38 | 显示全部楼层
本帖最后由 醇酒美人醉修禅 于 2018-1-17 17:05 编辑

#include "reg52.h"
sbit KEY=P1^0;
bit key_flag=0;
void main()
{
...
while(1)
{
...
if(KEY==0)  key_flag=0;
while(key_flag==0)
{
if(KEY==0)  {
delay_ms(10);
if(KEY==0)  
{
key_flag=!key_flag;
}
}
delay_ms(200);
while(KEY==0);
}
...
}
}

回复

使用道具 举报

ID:276524 发表于 2018-1-17 09:57 来自触屏版 | 显示全部楼层
可以的,定义整形一个变量,初始值设为0.按键按一次,变量加一,在按一次再加一。通过查询变量的值,来判断执行哪段程序
回复

使用道具 举报

ID:277171 发表于 2018-1-17 21:55 | 显示全部楼层
有一点你需要注意:中断里面是不能延时的,这是写程序的大忌
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表