找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机无法进行第二次外部中断

[复制链接]
跳转到指定楼层
楼主
ID:442990 发表于 2021-8-4 07:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大伽:请教一个问题,问题如下:十分感谢!单片机按键中断执行中断程序,中断程序执行完后继续执行主程序,若再次按键,为什么单片机无法再次进入中断?原程序如下:

#include <reg52.h>
#include <intrins.h>
#define unit unsigned int
#define on 1
#define off 0

sbit Dr_Pls=P1^0;
sbit Dir_Pls=P1^1;

void delay(unit x)
{
unit i,j;
for (i=x;i>0;i--)
for(j=1000;j>0;j--);
}

void init(void)
{
IT0=1;
EX0=1;
EA=1;

}
void main()
{
init();
while (1)
{

Dr_Pls=on;
Dir_Pls=off;
delay(10);
Dr_Pls=off;
delay(10);

}

}

void exInt0(void) interrupt 0

{
unit k;
for (k==0;k<=50;k++)
{
Dr_Pls=on;
Dir_Pls=on;
delay(20);
Dr_Pls=off;
delay(20);
}

}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:934353 发表于 2021-8-4 10:16 | 只看该作者
for (k==0;k<=50;k++)这个写的有问题,==是做判断用的,=是赋值,for的条件里应该是先给k赋值,所以应该用=,改一下后再试试看
回复

使用道具 举报

板凳
ID:934353 发表于 2021-8-4 10:19 | 只看该作者
还有中断里面最好不要放延迟函数,也不用处理太多内容,如果你频繁的按按键的话,中断就可能响应不过来,因为只有处理了这个中断,才能响应下一次中断

评分

参与人数 2黑币 +25 收起 理由
admin + 20 回帖助人的奖励!
新乡家电维修 + 5 赞一个!

查看全部评分

回复

使用道具 举报

地板
ID:442990 发表于 2021-8-4 19:52 | 只看该作者
十分感谢以上两位大伽的回复!
回复

使用道具 举报

5#
ID:442990 发表于 2021-8-4 20:36 | 只看该作者

非常感谢!经过修改程序我的问题迎刃而解,再次感谢!!!
回复

使用道具 举报

6#
ID:849376 发表于 2021-8-13 18:17 | 只看该作者
中断别放延时最好,超出一定的中断会用不了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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