⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard.c

📁 用89C51做的一个简单的电子钟
💻 C
字号:
/*
 keyboard.c file
 Created by Computer-lov. Date: 2005.5.31
 Last edited date:2005.5.31
 Copyright (c) 2005 Computer-lov
 version 1.0
 All rigths reserved
 欢迎访问我的blog:  http://computer00.21ic.org
*/

#include "keyboard.h"

unsigned char key,key_old,key_new,key_pressed_time;

void scan_keyboard(void)                //键盘扫描
{
 if(key)return;
 if((KEY_INPUT & KEY_PIN)==KEY_PIN)    //按键释放
  {
   if(!key_old)                        //如果上次无按键按下
    {
     return;                           //返回
    }
   else                                //如果上次有按键按下
    {
     if(key_pressed_time>100)          //按键时间超过一秒,长按键码
      {
//       key=key_old+0x80;               //长按键码等于普通按键码加0x80
      }
     else if(key_pressed_time>1)
      {
       key=key_old;                     //按键值
      }
     key_old=0;
    }
   return;
  }
 else                                  //按键按下
  {
   key_new=0;
   if(FUNCTION_KEY)key_new=KEY_FUNCTION;        //MENU键按下
   if(DOWN_KEY)key_new=KEY_DOWN;                //DOWN键按下
   if(UP_KEY)key_new=KEY_UP;                    //UP键按下
   if(key_new==key_old)                         //如果按键按下长于10ms
    { 
     if(key_pressed_time>80)                   //如果按键按下超过1s
      {
       key_pressed_time-=5;                     //则自动按键。相当于每隔50ms按一次
       key=key_new;
       return;
      }
     else
      {
       key_pressed_time++;                      //按键按下计时加一
      }
    }
   else
    {
     key_pressed_time=0;                       //如果本次按下跟上次按下不一样,则按键按下时间清零
    }
   key_old=key_new;                            //保存本次按键值
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -