51单片机怎样外部中断后让单片机从主程序开始?
如果没有rtos那就是从main开始,中断只是打断一阵而已,之后会回来继续跑。
这个了解,其实我是想这样的按键控制led花样的,要一按下就换状态,可是我写的程序总是要等一会才换状态,下面是我的程序,大家帮帮忙:#include<reg51.h>
#include "delay5ms.h"
sbit KEY=P3^2; //按键端口
int i,num=0;
void init();
void main()
{
init();
while(1)
{
if(num==1)
{
P2=0x99; //P2口接共阳led灯
delay5ms(100);
P2=0x11;
delay5ms(100);
P2=0x99;
delay5ms(100);
P2=0x11;
delay5ms(100);
}
else if(num==0)
{
P2=0x00;
delay5ms(100);
P2=0xff;
delay5ms(100);
P2=0x00;
delay5ms(100);
P2=0xff;
delay5ms(100);
}
}
}
void init()
{
EA=1;
IT0=1; //外部中断0
EX0=1;
}
void exint0 () interrupt 0
{
if(KEY==0)
{
delay5ms(1);
if(KEY==0)
{
num++;
if(num==2)
{
num=0;
}
while(!KEY);
}
}
}
如何才能一按健就能换 状态~
51有复位按钮呀~~按下复位按钮进复位,从main函数开始
你用switch语句试试
按键按下不能马上变换状态~~~~~~~