找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2296|回复: 7
收起左侧

51单片机利用外部中断暂停流水灯的程序问题

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
ID:900875 发表于 2021-11-13 01:32 | 显示全部楼层 |阅读模式
我想添加按键让流水灯关闭为什么这样写进不去中断呢,按下按键没有反应

#include "stdio.h"
#include "reg51.h"        
#include "intrins.h"

#define led P2

typedef unsigned int u16;     
typedef unsigned char u8;

sbit k3=P3^2;        
bit start=0;


void delay(u16 i)
{
        while(i--);        
}



void Int0Init()
{
IT1=1
EX1=1
EA=1
}



void main()
{   
          u8 i=0;
          led=0x00;
          Int0Init();
          keypros();
          while(1)
                {
                for(i=0;i<8;i++)
                   {
                   led=_cror_(led,1);
                   delay(10000);
                   }
              }
}




void Int0() interrupt 0
{
delay(1000);
if(k3==0)
{
led=0xff;
}
}


回复

使用道具 举报

ID:213173 发表于 2021-11-13 05:10 | 显示全部楼层
void Int0Init()
{
        IT0=1;
        EX0=1;
        EA=1;
}
回复

使用道具 举报

ID:339654 发表于 2021-11-13 08:02 | 显示全部楼层
外部中断配置错了
回复

使用道具 举报

ID:956872 发表于 2021-11-13 08:20 来自手机 | 显示全部楼层
你这中断初始化的是外部中断1.用的是外部中断0
回复

使用道具 举报

ID:8455 发表于 2021-11-13 08:55 | 显示全部楼层
你的按键写在中断内部,你用什么触发中断,所以没办法进入中断.按键应写在中断外面。
回复

使用道具 举报

ID:397211 发表于 2021-11-13 09:11 | 显示全部楼层
ymt 发表于 2021-11-13 08:55
你的按键写在中断内部,你用什么触发中断,所以没办法进入中断.按键应写在中断外面。

外部中断是可以不用定义的,只要开启了对应的中断,当对应的按键按下就会直接进入中断,在中断中配置自己想要执行的东西就可以了
回复

使用道具 举报

ID:57657 发表于 2021-11-13 13:12 | 显示全部楼层
外部中断对应的IO口是不可更改的,也不需要sbit定义,不同的IO口都有不同的特殊功能,具体见数据手册。
回复

使用道具 举报

ID:900875 发表于 2021-11-13 17:40 | 显示全部楼层
懂了 谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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