- 打开独立按键
#include<STC15F2K60S2.H> void main (void) { P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序 while(1) { if(P30==0)P00=0; if(P31==0)P01=0; if(P32==0)P02=0; if(P33==0)P03=0; } }
- 按键控制流水
#include<STC15F2K60S2.H> void LiuShuiDeng(void); void Delayms(int ms); void main(void) { P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序 while(1) { if(P30==0) LiuShuiDeng(); } } void LiuShuiDeng() { unsigned char LED; while(LED!=8) { for(LED=0;LED < 8;LED++) { P0=~(0X01<<LED); Delayms(1000); } P07=1; } } void Delayms(int ms) { int i,j; for(i = 0;i < ms;i++) for(j = 845; j > 0;j--); }
- 按键控制流水灯,消抖检测,按下走一步
#include<STC15F2K60S2.H> unsigned char LED=0; void Delayms(int ms); void main(void) { P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序 while(1) { if(P30==0) { Delayms(5); if(P30==0) { P0=~(0X01<<LED) ; LED++; if(LED==8)LED=0; } while(!P30); } } } void Delayms(int ms) { int i,j; for(i = 0;i < ms;i++) for(j = 845; j > 0;j--); }
- 按键控制流水灯,抬手检测,按键松开走一步
#include<STC15F2K60S2.H> unsigned char LED=0; unsigned char LED_FLAG=0; void Delayms(int ms); void main(void) { P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序 while(1) { if(P30==0) { Delayms(5); if(P30==0) { LED_FLAG=1; } while(!P30); } if(LED_FLAG==1) { LED_FLAG=0; P0=~(0X01<<LED); LED++; if(LED==8)LED++; } } } void Delayms(int ms) { int i,j; for(i = 0;i < ms;i++) for(j = 845; j > 0;j--); }
5. 按键控制流水灯,四个按键
#include<STC15F2K60S2.H>
unsigned char LED=0;
unsigned char LED_FLAG=0;
unsigned char LED_RUN=0;
void Key_Scan(void);
void Delayms(int ms);
void main(void)
{
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序
while(1)
{
Key_Scan();
if(LED_FLAG==1)
{
LED_FLAG=0;
P0=~(0X01<<LED);
LED++;
if(LED==8)LED++;
}
if(LED_RUN==1)
{
P0=~(0X01<<LED);
LED++;
if(LED==8)LED=0;
Delayms(1000);
}
}
}
void Delayms(int ms)
{
int i,j;
for(i = 0;i < ms;i++)
for(j = 845; j > 0;j--);
}
void Key_Scan(void)
{
if(P30==0) //按键S7
{
Delayms(5);
if(P30==0)
{
LED_FLAG=1;
}
while(!P30);
}
if(P31==0) //按键S6
{
Delayms(5);
if(P31==0)
{
LED_RUN=1;
}
while(!P31);
}
if(P32==0) //按键S5
{
Delayms(5);
if(P32==0)
{
P00=0;
}
while(!P32);
}
if(P33==0) //按键S4
{
Delayms(5);
if(P33==0)
{
P00=1;
}
while(!P33);
}
}