然后我感觉那个k2,和K1都没有用,
你看一下我改的程序
#include "reg51.h"
sbit led1=P2^4;
sbit led2=P2^5;
sbit led3=P2^6;
sbit led4=P2^7;
sbit k3=P3^2;
sbit k4=P3^3;
unsigned char presskeynum=0;
void delay(unsigned int i)
{
unsigned int j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void key()
{
if(presskeynum==1) //开关按下1次
{
delay(30);
led1=0; //P2^4灯亮
delay(30);
led2=0; //亮
}
if(presskeynum==2) //按下2次 按下两次怎么判断啊
{
delay(10);
led3=0; // P2^6灯亮
delay(10);
led4=0;
led1=~led1;
led2=~led2;
}
}
void Int0INit() //外部中断必须要的三个条件
{
IT0=1; //外部中断触发方式选择0:低电平触发;1:下降沿触发
EX0=1;
EA=1; //总
}
void main()
{
led1=1;
led2=1;
led3=1;
led4=1; //全是暗的
Int0INit();
while(1);
}
void Int0() interrupt 0
{
delay(100); //消抖
if(k3==0)
{
presskeynum++;
if(presskeynum==3)
presskeynum=0;
else key();
}
}
功能跟你的想象的可能有点不一样 |