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

📄 keyboard16.c

📁 自已写的lwip+ucos程序已调通
💻 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 + -