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

📄 ps_2_kb.h

📁 C52-PS2.rar
💻 H
字号:
#ifndef _PS_2_KB_H
#define _PS_2_KB_H

#include <AT89X51.H>

#define KB_CLK P3_3
#define KB_DATA P3_4

uchar Get_Key(void);
uchar Key_Scan(void);

uchar Key_Scan(void)
{
	uchar i,key_temp;
	KB_CLK=1;   //输入
	KB_DATA=1;
	key_temp=0;
	while(KB_CLK);   //第一次为0
	for(i=0;i<8;i++)
	{   
		key_temp>>=1;   
		while(!KB_CLK); //下沿,第一位   
		while(KB_CLK);   
		_nop_();   
		if(KB_DATA)   
		{    
			key_temp|=0x80; //低位在前   
		}
	}
	while(!KB_CLK);   //校验位
	while(KB_CLK);  
	while(!KB_CLK);   //停止位
	while(KB_CLK);
	while(!KB_CLK);
	return key_temp;
}
//由于make_code和第二个break_code一样,就取break_code第二个作为键码
uchar Get_Key(void)
{
	uchar Key_Code;
	Key_Code=Key_Scan(); //make_code 
	Key_Code=Key_Scan(); //break_code 1
	Key_Code=Key_Scan(); //break_code 2
	switch(Key_Code)
	{   
		case 0x1c: return 'A';break;   
		case 0x32: return 'B';break;   
		case 0x21: return 'C';break;   
		case 0x23: return 'D';break;   
		case 0x24: return 'E';break;   
		case 0x2b: return 'F';break;   
		case 0x34: return 'G';break;   
		case 0x33: return 'H';break;   
		case 0x43: return 'I';break;   
		case 0x3b: return 'J';break;   
		case 0x42: return 'K';break;   
		case 0x4b: return 'L';break;   
		case 0x3a: return 'M';break;   
		case 0x31: return 'N';break;   
		case 0x44: return 'O';break;   
		case 0x4d: return 'P';break;   
		case 0x15: return 'Q';break;   
		case 0x2d: return 'R';break;   
		case 0x1b: return 'S';break;   
		case 0x2c: return 'T';break;   
		case 0x3c: return 'U';break;   
		case 0x2a: return 'V';break;   
		case 0x1d: return 'W';break;   
		case 0x22: return 'X';break;   
		case 0x35: return 'Y';break;   
		case 0x1a: return 'Z';break;   
		case 0x45: return '0';break;   
		case 0x16: return '1';break;   
		case 0x1e: return '2';break;   
		case 0x26: return '3';break;   
		case 0x25: return '4';break;   
		case 0x2e: return '5';break;   
		case 0x36: return '6';break;   
		case 0x3d: return '7';break;   
		case 0x3e: return '8';break;   
		case 0x46: return '9';break;   
		default: return 0xff; break;
	}
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -