📄 keyboard16.c
字号:
#include "..\inc\44b.h"#include "..\inc\def.h"#include "..\inc\Keyboard16.h"U16 FunctionKey=0xffff;//功能键扫描吗,0有效U8 keyBoard_KeyMap[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};U16 GetScanKey(){ U16 key; U32 i,temp; for(i=1;i<0x10;i<<=1){ rPDATE|=0xf0; rPDATE&=~(i<<4); key<<=4; Delay(1); temp=rPDATC; key|=(temp&0xf); } return key;}U32 GetKey(){ int i; U16 key,tempkey=1; static U16 oldkey=0xffff; static U8 keystatus=0; U8 keycnt=0; U32 temp; while(1){ key=0xffff; while(1){ key=GetScanKey(); if((key&FunctionKey)!=FunctionKey)//有按键按下 break; Delay(200); oldkey=0xffff; } //Delay(800); Delay(500); if(key!=GetScanKey()) continue; if(oldkey!=key){ keystatus=0; } if(keystatus==0){ //第一次按下此键 keycnt=0; keystatus=1; } else if(keystatus==1){ //第二次重复此键 keycnt++; if(keycnt==20) keystatus=2; else continue; } oldkey=key; break; } for(i=0;i<16;i++){ //查找按键,不包括功能键 if((key&tempkey)==0 && (FunctionKey&tempkey)!=0) break; tempkey<<=1; } temp=~(key|FunctionKey); return (temp<<16)|keyBoard_KeyMap[i];}void SetFunctionKey(U16 Fnkey) //设定功能键扫描码,1有效 比如ctrl alt{ FunctionKey&=~Fnkey;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -