单片机独立按键代码


```c
#include 
#include 
void delayms(unsigned char ms)
{
  unsigned char i;
  while(ms--)
  {
    for(i=0;i<250;i++);
  }
}
//main()
//{
//  unsigned char LED;
//
//  P2=0XFF;
//  LED=0XFE;
//  P2=LED;
//  while(1)
//  {
//    delayms(250);
//	LED=_cror_(LED,1);
//	P2=LED;
//  }
  void main()
  {
  int i;
  unsigned char LED;
  int led[]={0XFF,0XE7,0XC3,0X81,0X00};
  while(1)
  {
    for(i=0;i<5;i++)
	{
	  P2=led[i];
	  delayms(250);
	}
	P2=0XFF;
    LED=0XFE;
    P2=LED;
   for(i=0;i<8;i++)
    {
    delayms(250);
	LED=_crol_(LED,1);
	P2=LED;
    }
   P2=0XFF;
   LED=0X7F;
   P2=LED;
   i=0;
	for(i=0;i<8;i++)
    {
    delayms(250);
	LED=_cror_(LED,1);
	P2=LED;
    }
	for(i=0;i<5;i++)
	{
   	 P2=0X55;
	 delayms(250);
	 P2=0xAA;
	 delayms(250);
	 }

  }
  }
   
  				     

22222

#include//51单片机寄存器定义的头文件
sbit S1=P3^0;//定义S1按键与单片机P3.0位相连
sbit S2=P3^1;//定义S2按键与单片机P3.1位相连
sbit S3=P3^2;//定义S3按键与单片机P3.2位相连
sbit S4=P3^3;//定义S4按键与单片机P3.3位相连
void delay(void)//定义延时函数用于按键去抖动,延时10ms
	{
	unsigned char i,j;
	for(i=0;i<20;i++)
	for(j=0;j<250;j++);
	}
void main(){
P3=0xff;//对S1-S4按键复位。
P2=0xff;//对8个LED灯复位
while(1)//是否有按键按下循环监测
{if(S1==0)//判断是否S1按键按下
{delay();//去抖动处理
if(S1==0)//确认S1按键按下
{P2=0xfc;//给P0口置数点亮LED1和LED2
	}
}if(S2==0)//判断是否S2按键按下
{delay();//去抖动处理
if(S2==0)//确认S2按键按下
{P2=0xf3;//给P0口置数点亮LED3和LED4
}
}
if(S3==0)//判断是否S3按键按下
{delay();//去抖动处理
if(S3==0)//确认S3按键按下
{P2=0xcf;//给P0口置数点亮LED5和LED6
}
}if(S4==0)//判断是否S4按键按下
{delay();//去抖动处理
if(S4==0)//确认S4按键按下
{P2=0x3f;//给P0口置数点亮LED7和LED8
}
}
}
}

你可能感兴趣的:(嵌入式硬件)