📄 keyboard16.c
字号:
/*--- include files ---*/
//#include"..\inc\44blib.h"//#include "..\startup\option.h"//#include"..\inc\def.h"
#include "../includes.h"
#include "../uhal/uhal.h"
#include "../arm44box/44b.h"
#include "../arm44box/Keyboard16.h"
#include "../arm44box/8led.h"
//INT16U FunctionKey=0xffff;//功能键扫描吗,0有效//INT8U keyBoard_KeyMap[]={1,4,7,10,2,5,8,0,3,6,9,11,12,13,14,15};//10-退格,11-*/.,12-↑,13-↓,14-确定,15-取消;INT16U key;
INT8U pic,col,row;
//INT32U TEMPPDAT;
INT8U kb_hit(void)
{
//INT8U TURN;
rPDATE&=0x10f;
rPDATF|=0x1fc;
//TEMPPDATF=rPDATF|0x1fc;
if((rPDATF&0x1fc)==0x1fc)return(0);
//Delay(1500);
OSTimeDly(90);
//P2=0x00;P0=0XFF;
//if(P0==0XFF)return((bit)0);
//delay(1000);
rPDATF|=0x1fc;
//P0=0XFF;
if((rPDATF&0x1fc)==0x1fc)return(0);
return(1);
}
INT8U get_ch(void)
{
INT8U i;
//INT8U pic,col,row;
i=0;pic=0;col=0;row=0;
//uchar i=0;uchar pic=0,col=0,row=0;
if(!kb_hit())return(0);
//RD=1;
//TEMPPDAT=rPDATE;
rPDATE=(rPDATE&0x10f)|0xe0;
//P2=0xfe;
for(i=0;i<4;i++)
{
if((rPDATF&0x1fc)!=0x1fc)goto findrow;
rPDATE=(rPDATE&0x10f)|((rPDATE<<1)&0xf0);
row++;
}
// for(i=0;i<4;i++){if(P0!=0xff)goto findrow;
// P2=P2<<1;row++;}
findrow:key=rPDATF;key=~key;
for(i=0;i<7;i++){if(key&0x100)goto findcol;
key=key<<1;col++;}
findcol:pic=row*8+col;
//while(P0!=0xFF)RD=1;
//RD=0;
if(pic<10)pic=pic+'0';
else if(pic<32)pic=pic+'A'-10;
else pic=pic+'A'-14;
return(pic);
}
void onkey(INT8U nkey)
{
switch(nkey)
{
case 50:testlamp(COMPUTER);break;
case 51:testlamp(NOTBOOK);break;
case 53:testlamp(DIGZANTAI);break;
case 52:testlamp(ZANTAI);break;
case 65:testlamp(DVD);break;
case 66:testlamp(VCR);break;
case 68:testlamp(CAMER);break;
case 67:testlamp(CAPE);break;
case 0x25:testlamp(COMPUTER|NOTBOOK|DVD);break;
default:break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -