1、独立按键:S7开灯,S6关灯
#include <STC15F2K60S2.h>
#include <intrins.h>
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
//***************初始化系统*********************
void init_system()
{
P2=0XA0;
P0=0X00;
P2=0X80;
P0=0XFF;
P2=0X00;
}
//*******************5毫秒延时消抖******************
void Delay5ms() //@11.0592MHz
{
unsigned char i, j;
i = 54;
j = 199;
do
{
while (--j);
} while (--i);
}
//***************按键控制led*********************
void key_pess()
{
P3=0XFF;//将P3口都接到高电平
if(S7==0)
{
Delay5ms();
if(S7==0)
{
P2=0X80;
P0=0X00;//开灯
P2=0X00;
}
while(S7==0);
}
if(S6==0)
{
Delay5ms();
if(S6==0)
{
P2=0X80;
P0=0Xff;//关灯
P2=0X00;
}
while(S6==0);
}
if(S5==0)
{
Delay5ms();
if(S7==0)
{
}
}
if(S4==0)
{
Delay5ms();
if(S7==0)
{
}
}
}
void main()
{
init_system();
while(1)
{
key_pess();
}
}
2、矩阵按键:S7开灯,S6关灯
#include <STC15F2K60S2.h>
#include <intrins.h>
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
//***************初始化系统*********************
void init_system()
{
P2=0XA0;
P0=0X00;
P2=0X80;
P0=0XFF;
P2=0X00;
}
//*******************5毫秒延时消抖******************
void Delay5ms() //@11.0592MHz
{
unsigned char i, j;
i = 54;
j = 199;
do
{
while (--j);
} while (--i);
}
//***************按键控制led*********************
void key_pess()
{
P3=0X7F;//0111 1111
if(S7==0)
{
Delay5ms();
if(S7==0)
{
P2=0X80;
P0=0X00;//开灯
P2=0X00;
}
while(S7==0);
}
if(S6==0)
{
Delay5ms();
if(S6==0)
{
P2=0X80;
P0=0Xff;//关灯
P2=0X00;
}
while(S6==0);
}
if(S5==0)
{
Delay5ms();
if(S7==0)
{
}
}
if(S4==0)
{
Delay5ms();
if(S7==0)
{
}
}
}
void main()
{
init_system();
while(1)
{
key_pess();
}
}