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

📄 keyscan.c

📁 单片机51环境下的字库代码122*32点阵的液晶显示
💻 C
字号:
#include "AT89X51.H"


//unsigned code MaxScanTime=3;
extern void delay(long time);/////////int time////1000//////
unsigned char LastKeyScanState=0,KeyScanState=0,KeyScanTime=0;
unsigned char PreKeyScan()
{
  unsigned char Key;

  P2=(P2&0x81)+0x20+0x1e;
  Key=0;
  if (P2_4==0)Key+=0x01;
  if(P2_3==0)Key+=0x02;	    
  if(P2_2==0)Key+=0x04;
  if(P2_1==0)Key+=0x08;

  P2=(P2&0x81)+0x40+0x1e;
  if (P2_4==0)Key+=0x10;
  if(P2_3==0)Key+=0x20;	    
  if(P2_2==0)Key+=0x40;
  if(P2_1==0)Key+=0x80;

  return Key;
}
unsigned char KeyScan()
{

	KeyScanState=PreKeyScan();
	if(KeyScanState)
	{
		delay(10);
		if(KeyScanState!=PreKeyScan())return 0;		
		delay(10);
		if(KeyScanState!=PreKeyScan())return 0;
		delay(10);
		if(KeyScanState!=PreKeyScan())return 0;

		return KeyScanState;
	}
	else return 0;
}

unsigned char  KeyUpScan()
{
	unsigned char Key,UpKey;
	Key=KeyScan();
	if(Key)
	{
		UpKey=Key;	
		while(1)
		{
			if(Key!=0)UpKey=Key;
			else if(PreKeyScan()==0)return UpKey;
			Key=KeyScan();			
		}
	}
	else 
	{
		return 0;
	}
}

⌨️ 快捷键说明

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