#include<reg51.h> //使用的是stc12c4052ad
sbit led1 = P1^7; // LED1接P1.7脚
sbit led2 = P1^6; // LED2接P1.6脚
sbit led3 = P1^5; // LED3接P1.5脚
sbit led4 = P1^4; // LED4接P1.4脚
sbit button = P1^0; // 按钮接P1.0脚
void s(unsigned int a) 、// 延时函数
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<600;j++);
}
void main(void)
{
unsigned char key=0; //按钮状态判断变量
led1=led2=led3=led4=1; //led初始均为关闭
button=1; //按钮初始化为按下
while(1){
if(button==0){
key+=1; //单击key值为1
s(20);
if(button==0){
key+=1; //双击key值为2
s(20);
if(button==0){
key+=1; //三击key值为3
s(20);
if(button==0){
key+=1; //四击key值为4
s(20);
if(button==0){
key+=1; //长按key值为5
s(100);
while(button==0);
}
}
}
}
}
switch(key){ //根据key值开关相应引脚的led灯
case 1:
led1=~led1;
break;
case 2:
led2=~led2;
break;
case 3:
led3=~led3;
break;
case 4:
led4=~led4;
break;
default:
break;
}
}
}
|