找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1975|回复: 5
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:276690 发表于 2018-1-16 18:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问一个单片机问题:通过一个按键,进入一个无限延时的中断,能不能再通过这个按键,再恢复中断?

按下按键  中断  再次按下  恢复现场
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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);
}
...
}
}

回复

使用道具 举报

5#
ID:276524 发表于 2018-1-17 09:57 来自手机 | 只看该作者
可以的,定义整形一个变量,初始值设为0.按键按一次,变量加一,在按一次再加一。通过查询变量的值,来判断执行哪段程序
回复

使用道具 举报

6#
ID:277171 发表于 2018-1-17 21:55 | 只看该作者
有一点你需要注意:中断里面是不能延时的,这是写程序的大忌
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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