C51独立按键的识别示例程序

每按一次独立键盘的S2键 , 与P1口相连的一个发光二极管往下移动一位 。
#include
sbit BY1=P3^4;      //定义按键的输入端S2键
unsigned char count; //按键计数,每按一下,count加1
unsigned char temp;
unsigned char a,b;
void delay10ms(void) //延时程序
{
【C51独立按键的识别示例程序】      unsigned char i,j;
      for(i=20;i>0;i--)
      for(j=248;j>0;j--);
}
key()          //按键判断程序
{
      if(BY1==0)  //判断是否按下键盘 , 当单片机上电时所有IO口为//高电平 , S2键一端接地另一端接P3.4 , 所以当键被按下时P3.4口//直接接地 , 此时检测P3.4肯定为低电平 。
      {
        delay10ms(); //延时,软件去干扰
        if(BY1==0)  //确认按键按下
        {
          count++;    //按键计数加1
          if(count==8) //计8次重新计数
          {
          count=0;    //将count清零
          }
      }
      while(BY1==0);//等待按键释放 , 如果键未释放则一直在此等待 。
      }
}
 move()        //广告灯向下移动移动函数
{
      a=temp<
      b=temp>>(8-count);//  _crol_()函数
      P1=a|b;
}
 
main()
{
 count=0;  //初始化参数设置
 temp=0