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

📄 keyboard.txt

📁 本代码实现4×4键盘操作 对键盘进行扫描取得键入值
💻 TXT
字号:
#include <intrins.h>
#include <stdio.h>
#include <math.h>
//#include <copy12864.h>
#define uchar unsigned char
unsigned char code num [] ;
void delay(void)
{
	uchar i;
	for(i=300;i>0;i--){};
}



uchar keyscan(void)
 
{
	uchar scancode , tempcode ;
	P2 = 0xf0 ;
	if((P2 & 0xf0)!=0xf0)
{																								   
		delay();
		if((P2&0xf0)!=0xf0)
		{
			scancode = 0xfe ;
			while((scancode & 0x10)!=0)
			{
				P2=scancode;
				if((P2 & 0xf0)!= 0xf0)
				{
					tempcode = (P2 & 0xf0)|0x0f;
					return((~scancode) + (~tempcode));
				}
				else scancode =(scancode<<1) | 0x01;
			}
		}
	}
	return(0);
}

uchar getvalue () 
{
	uchar i , j , k , value , number [ 10 ] ;
	j = 0 ;
	i = keyscan () ;
	value = 0 ;
	while ( i != 0 )
	{
		switch( i )
   		{
      		case 0x11 :						// 1行1列,数字0
						number [ j ++ ] = 0 ;
						break ;
			case 0x21 :						// 1行2列,数字1
						number [ j ++ ] = 1 ;
						break ;			
			case 0x41 :						// 1行3列,数字2
						number [ j ++ ] = 2 ;
						break ;
     		case 0x81 :						// 1行4列,数字3
						number [ j ++ ] = 3 ;
						break ;
			case 0x12 :						// 2行1列,数字4
					   	number [ j ++ ] = 4 ;
						break ;
			case 0x22 :						// 2行2列,数字5
						number [ j ++ ] = 5 ;
						break ;
			case 0x42 :						// 2行3列,数字6
						number [ j ++ ] = 6 ;					   	
						break ;
			case 0x82 :						// 2行4列,数字7
					   	number [ j ++ ] = 7 ;
						break ;
			case 0x14 :						// 3行1列,数字8
						number [ j ++ ] = 8 ;
						break ;
			case 0x24 :						// 3行2列,数字9
						number [ j ++ ] = 9 ;
						break ;
			default : 	break ;
		}
	}
	for ( k = 0 ; k < j ; k ++ )
	{
		value = value + num [ j -- ] * ( 10 ^ i ) ;
	}
	return ( value ) ;
}

⌨️ 快捷键说明

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