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

📄 keboard.c

📁 压缩包中包括多个常用的汇编
💻 C
字号:
/****************************************************************************/
/*                                                                          */
/*                Copyright (c) 2005, 老树工作室                            */
/*                     All rights reserved.                                 */
/*                                                                          */
/*      Email:laoshu0902@163.com                                            */
/*      www.laoshu0902.bokee.com                                            */
/*                                                                          */
/****************************************************************************/
/****************************************************************************/
/* 文件名:keyboard.c                                                       */
/* 版  本:Version 1.0                                                      */
/* 描  述:按键检测代码                                                     */
/* 作  者:spot                                                             */
/* 函  数:                                                                 */
/*         delay_key                                                        */
/*         system_init                                                      */
/*                                                                          */
/* 历史记录:                                                               */
/*  spot          2005-06-20     Creat Inital version. (Version 1.0)        */
/****************************************************************************/

#include <reg52.h>
#include <absacc.h>

typedef unsigned char u_char;
typedef unsigned int  u_int;

/* 键码定义 */
#define BUTTON_1  0xEE
#define BUTTON_2  0xDE
#define BUTTON_3  0xBE
#define BUTTON_4  0x7E
#define BUTTON_5  0xED
#define BUTTON_6  0xDD
#define BUTTON_7  0xBD
#define BUTTON_8  0x7D
#define BUTTON_9  0xEB
#define BUTTON_10 0xDB
#define BUTTON_11 0xBB
#define BUTTON_12 0x7B
#define BUTTON_13 0xE7
#define BUTTON_14 0xD7
#define BUTTON_15 0xB7
#define BUTTON_16 0x77
/* 定义结束 */

void delay_key(void);	  /* 按键检测延时子程序 */
void system_init(void);   /* 系统上电初始化 */

/* 按键检测延时子程序 */
void delay_key(void)
{
    u_char i;
    for(i=200; i>0; i--);
}

/* 反转法检测按键,行1:P2.0,列1:P2.4*/
u_char scan_key(void)
{
    u_char key_code = 0xFF;
    P2 = 0xF0;
    if ((P2&0xF0) != 0xF0) /* 有键按下 */
    {

        delay_key();
        key_code = P2;     /* 读入列值 */

        P2 = 0x0F;
        key_code |= P2;    /* 读入行值,与列值相或得到键码 */           
    }
    return(key_code);
}


/* 系统上电初始化 */
void system_init(void)
{
    EA = 0;
    P0 = 0xFF;
}

void main(void)
{
    u_char key_code = 0xFF;

    system_init();

    while(1)
    {
        key_code = scan_key();
        switch(key_code)
        {
            case BUTTON_1:
                 P1 = 0x00;
                 key_code = 0xFF;
                 break;

            case BUTTON_2:
                 P1 = 0xFF;
                 key_code = 0xFF;
                 break;

            case BUTTON_3:
                 P1 = 0xFE;
                 key_code = 0xFF;
                 break;

            case BUTTON_4:
                 P1 = 0xFD;
                 key_code = 0xFF;
                 break;

            case BUTTON_5:
                 P1 = 0xFB;
                 key_code = 0xFF;
                 break;

            case BUTTON_6:
                 P1 = 0xF7;
                 key_code = 0xFF;
                 break;

            case BUTTON_7:
                 P1 = 0xEF;
                 key_code = 0xFF;
                 break;

            case BUTTON_8:
                 P1 = 0xDF;
                 key_code = 0xFF;
                 break;

            case BUTTON_9:
                 P1 = 0xBF;
                 key_code = 0xFF;
                 break;

            case BUTTON_10:
                 P1 = 0x7F;
                 key_code = 0xFF;
                 break;

            case BUTTON_11:
                 P1 = 0xAA;
                 key_code = 0xFF;
                 break;

            case BUTTON_12:
                 P1 = 0x55;
                 key_code = 0xFF;
                 break;

            case BUTTON_13:
                 P1 = 0x5A;
                 key_code = 0xFF;
                 break;

            case BUTTON_14:
                 P1 = 0xA5;
                 key_code = 0xFF;
                 break;

            case BUTTON_15:
                 P1 = 0xF0;
                 key_code = 0xFF;
                 break;

            case BUTTON_16:

                 P1 = 0x0F;
                 key_code = 0xFF;
                 break;

            default:
                 break;
        }
    }
}


⌨️ 快捷键说明

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