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

📄 keyscan.c

📁 扫描键盘
💻 C
字号:
#include <reg52.h>
#define uchar unsigned char

bit bdata KeyFlag;	
	
void Delay10ms(void)
{
	uchar i,j,k;

	for(i=5; i>0; i--)
		for(j=4; j>0; j--)
			for(k=248; k>0; k--);
}

uchar KeyScan(void)
{
	uchar PreRead;					/*first read key value*/
	uchar ReRead;					/*second read key value*/
	uchar RowTemp;
	uchar ColTemp;
	
	KeyFlag = 0;

	P2 = 0xf0;
	RowTemp = P2 & 0xf0;			/*read row value*/
	if(RowTemp == 0xf0) return(0xff);

	P2 = 0x0f;
	ColTemp = P2 & 0x0f;			/*read column value*/

	PreRead = RowTemp|ColTemp;		/*get keyboard scan value*/
	
	Delay10ms();

	P2 = 0xf0;
	RowTemp = P2 & 0xf0;			/*reread row value*/
	if(RowTemp == 0xf0) return(0xff);

	P2 = 0x0f;
	ColTemp = P2 & 0x0f;			/*reread column value*/

	ReRead = RowTemp|ColTemp;		/*re-get keyboard scan value*/

	if(PreRead==ReRead)
	{
		KeyFlag = 1;
		//P2 = 0xf0;
		return(~ReRead);
	}
}

main()
{
	uchar GetKeyValue;
	uchar KeyValue;
	GetKeyValue=KeyScan();
	if(KeyFlag = 1)
		KeyValue = GetKeyValue;
}

⌨️ 快捷键说明

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