📄 ps2.c
字号:
#include "bf5xx.h"
#include "types.h"
#include "scancodes.h"
#include <sys/exception.h>
/****************************************************************************
* 功能 :外部声明的变量
****************************************************************************/
extern volatile uint8_t key_up;
extern volatile uint8_t key;
extern volatile uint8_t key2;
extern volatile uint8_t key3;
/****************************************************************************
* 名称 : PS2_select
* 功能 : 选通PS2 键盘 245
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void PS_Clk_In()
{
*pCtrIner_Flag_OE =~KEY_SW_OE;//KEY_SW_OE=0
mdelay(500);
*pCtrOut_Flag_C = KEY_SW;//KEY_SW=1
mdelay(500);
}
/****************************************************************************
* 名称 : PS2_DAT_DIR
* 功能 : 接到PS2键盘数据口的 PF 口设置为输入
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void PS2_KEYDAT_DIR()
{
*pFIO_DIR = (*pFIO_DIR)&(~SCL); // 输入允许
*pFIO_INEN |= SCL;
*pCtrOut_Flag_A = PS_DAT_DIR;
mdelay(500);
}
/****************************************************************************
* 名称 : Decode
* 功能 : 键盘查表并打印函数
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
extern volatile uint8_t key;
void Decode(void)
{
int i;
if(key_up == 1)
{
if(key==key3)
{
for(i=0;i<59;i++)
{
if(key == UnShifted[i][0])
{
printf("THE KEY is %c!\r\n",UnShifted[i][1]);
key_up = 0;
key = 0;key2 = 0;key3 = 0;
}
}
}
else
{
key_up = 0;
key = 0;key2 = 0;key3 = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -