发布网友 发布时间:2022-04-22 04:56
共3个回答
热心网友 时间:2023-11-22 02:50
你现在的程序 INT0是1的话 while(!INT0);是不执行的所以直接执行了下边的程序 所以那三个灯亮了
热心网友 时间:2023-11-22 02:50
INT0检测到低电平时,置低P2其中3个脚。
下列程序,即可够用:
#include "reg51.h"
sbit LED1 = P2^1;
sbit LED2 = P2^2;
sbit LED3 = P2^3;
void main()
{
while (1) {
while (INT0); //check INT0
while (!INT0); //check INT0
LED1 = 0;
LED2 = 0;
LED3 = 0;
}
}
热心网友 时间:2023-11-22 02:51
#include "reg51.h"
#include "intrins.h"
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;
sbit LED4=P2^5;
sbit LED5=P2^6;
sbit LED6=P2^7;
//External interrupt0 service routine
void exint0() interrupt 0 //(location at 0003H)
{
LED1=0;
LED2=0;
LED3=0;
P1=P1+1;
}
void main()
{
IT0 = 0; //set INT0 int type (1:Falling 0:Low level)
EX0 = 1; //enable INT0 interrupt
EA = 1; //open global interrupt switch
LED1=1;
LED2=1;
LED3=1;
LED4=1;
LED5=1;
LED6=1;
while (1);
}