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

📄 keboard.c.bak

📁 压缩包中包括多个常用的汇编
💻 BAK
字号:
/****************************************************************************/
/*                                                                          */
/*               Copyright (c) 2005, 老树工作室                             */
/*                   All rights reserved.                                   */
/*                                                                          */
/*      http://www.saintone.net      Email:hxm0902@163.com                  */
/*      QQ:112431149                 Tel:010-62966630                       */
/*                                                                          */
/****************************************************************************/
/****************************************************************************/
/* 文件名: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>
#include "../includes/types.h"
#include "keyboard.h"
/* 按键检测延时子程序 */
void delay_key(void)
{
    u_int i;
    for(i=1000; i>0; i--);
}

/* 反转法检测按键,行1:P2.0,列1:P2.4*/
u_char scan_key(void)
{
    u_char key_code = 0xFF;
    u_int i = 0;
    P2 = 0xF0;
    if ((P2&0xF0) != 0xF0) /* 有键按下 */
    {
        delay_key();             
        if ((P2&0xF0) != 0xF0) /* 有键按下 */
        {
            key_code = P2;     /* 读入列值 */
            P2 = 0x0F;
            key_code |= P2;    /* 读入行值,与列值相或得到键码 */
            
            
            while ( ((P2&0x0F) != 0x0F) && (i<20000) ) /* 等待按键抬起 */ 
            {
                i++;
                WDI = ~WDI;
            }
        }
    }
    return(key_code);
}


⌨️ 快捷键说明

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