📄 keboard.c.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 + -