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

📄 keyboard.c

📁 嵌入式实时操作系统uc/OS-II于s3c2410的开发测试程序3源代码
💻 C
字号:
#include	"..\INC\includes.h"               /* uC/OS interface */

void Read_value(int data);

volatile U16 value=16;
volatile U32 keyend;					   						   
unsigned char Scandata[4][4]={15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};
                             
U16 Test_keyboard()
{
	int i;
	keyend=0;	
	
	rGPECON=rGPECON & 0xffC03d45;	
	rGPECON=rGPECON | 0x145;    //GPE0\1\3\4:Output;GPE2,GPE7~GPE10:Input
	rGPEUP=rGPEUP | 0x1b;	    //GPE0\1\3\4 pull-up DISABLE	
	rGPEDAT = rGPEDAT & 0xffe4; //GPE0\1\3\4:Output0   

	     rGPEDAT = rGPEDAT & 0xfffe;//置GPE0为低,扫描键盘第四行
	  	 rGPEDAT = rGPEDAT | 0x1a;	//GPE1、3、4为高
	  	 i=3;	//KEY 0 1 2 3 	
	  	 Read_value(i);
	  	 rGPEDAT = rGPEDAT & 0xfffd;//置GPE1为低,扫描键盘第三行
	  	 rGPEDAT = rGPEDAT | 0x19;	//GPE0、3、4为高
	  	 i=2;   //KEY 4 5 6 7 
	  	 Read_value(i);
		 rGPEDAT = rGPEDAT & 0xfff7;//置GPE3为低,扫描键盘第二行
	  	 rGPEDAT = rGPEDAT | 0x13;	//GPE0、1、4为高
	  	 i=1;   //KEY 8 9 A B 
	  	 Read_value(i);
	  	 rGPEDAT = rGPEDAT & 0xffef;//置GPE4为低,扫描键盘第一行
	  	 rGPEDAT = rGPEDAT | 0x0b;	//GPE0、1、3为高
	  	 i=0;   //KEY C D E F
	  	 Read_value(i);
	  	 return value;
	  	 	
}
			  	               
void Read_value(int data)
{   
	 unsigned int keydata1,keydata2;
	 
	 keydata1=(rGPEDAT>>7) & 0xf;
	 Delay(10);
	 keydata2=(rGPEDAT>>7) & 0xf;	
	 if(keydata1==keydata2)
	 
	 {
	 switch(keydata1)
	 	  {
	 		
	 	    case(0x7)://KEY 0 4 8 C
	   		         
	   			value=Scandata[data][3];
	   			break;
	   			
	   		case(0xb)://KEY 1 5 9 D
	    
	   			value=Scandata[data][2];
	   			break;
	   			
	   		case(0xd)://KEY 2 6 A E
	   		
	   			      
	   			value=Scandata[data][1];	
	   			break;
	   			
	   		case(0xe)://KEY 3 7 B F
	   		      
	   			value=Scandata[data][0];
	   			break;	
	   		
	   		default:
	   			break;   	
	   		}				 	
	  } 	  
}

⌨️ 快捷键说明

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