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

📄 key.c

📁 这是一个基于ARM44B0X的键盘扫描实验程序.
💻 C
字号:
#include <stdlib.h>
#include <string.h>
#include "Option.h"
#include "def.h"
#include "44b.h"
#include "44blib.h"
#include "key.h"


void Main(void)
{

  int key_vual;
    Port_Init();
    Uart_Init(0,115200);
    Uart_Select(0); //Select UART0//

   while(1)
	{	
	key_vual=Get_Key();
		if(key_vual!=0xff)
		{
			Uart_Printf("\nKey vual= :%x",key_vual);
		}
	Delay(200);
	};
}
U8 Key_Old=0xff;

U8 Get_Key(void)
{

    U8 Key_Vual;
			while(1){
			Key_Vual=Key_Scan();
			if(Key_Vual!=0xffff)
				break;
			Delay(100);
			Key_Old=0xff;
			}
		Delay(50);
		if(Key_Vual==Key_Scan())
			{
			if(Key_Vual!=Key_Old)//禁止相同按键。
				{
				Key_Old=Key_Vual;
				return	Key_Vual;
				}
			}
		return	0xff;	
}

U8 Key_Scan(void)
{
  U8 data,i,Key_Buf;
  U8	Scan[8][8]={0x3,0x2,0xff,0x1,0xff,0xff,0xff,0x0,
		    0x7,0x6,0xff,0x5,0xff,0xff,0xff,0x4, 
		    0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
		    0xb,0xa,0xff,0x9,0xff,0xff,0xff,0x8,
		    0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 
		    0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
		    0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
		    0xf,0x0e,0xff,0xd,0xff,0xff,0xff,0xc};
     
	data=0x1;
	for(i=0;i<4;i++)
		{
		aVKEY=data<<16;
		Key_Buf=(aHKEY&0xf0000)>>16;
		if(Key_Buf!=0)
			return Scan[data-1][Key_Buf-1];
		data=data<<1;
		}
	return	0xff;
}

⌨️ 快捷键说明

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