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

📄 functions.c

📁 凌阳实现4*4键盘的源码
💻 C
字号:
#include"SPCE061A.h"

////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//                                         4X4键盘扫描测试程序
//
////////////////////////////////////////////////////////////////////////////////////////////////////////

int key;
const int LED7CODE[16]={//七段码编码(待定)
	0x3F00,		// 0
	0x0600,		// 1
	0x5B00,		// 2
	0x4F00,		// 3
	0x6600,		// 4
	0x6D00,		// 5
	0x7D00,		// 6
	0x0700,		// 7
	0x7F00,		// 8
	0x6F00,		// 9
	0x7700,		// A
	0x7C00,		// B
	0x3900,		// C
	0x5E00,		// D
	0x7900,		// E
	0x7100		// F
	};
 	
void delay(int i);


void key_scan()
{//键盘扫描程序。。。。
	
	key=-1; 
	
	*P_IOA_Data = 0x00f0;
	if((*P_IOA_Data & 0x00f0)==0x00f0)return;//如果没有键按下,退出程序key_scan
	
	
	//如果有键按下了,,,,,
	delay(100);
	
//扫描第一行,
	*P_IOA_Data=0x00fe;
		
	switch(*P_IOA_Data&0x00f0)
	{
		case 0x0070:key=0;break;
		case 0x00b0:key=1;break;
		case 0x00d0:key=2;break;
		case 0x00e0:key=3;break;
	}
	if(key>=0)return;
	
//扫描第二行,
	*P_IOA_Data=0x00fd;
		
	switch(*P_IOA_Data&0x00f0)
	{
		case 0x0070:key=4;break;
		case 0x00b0:key=5;break;
		case 0x00d0:key=6;break;
		case 0x00e0:key=7;break;
	}
	if(key>=0)return;
		
//扫描第三行,
	*P_IOA_Data=0x00fb;
		
	switch(*P_IOA_Data&0x00f0)
	{
		case 0x0070:key=8;break;
		case 0x00b0:key=9;break;
		case 0x00d0:key=10;break;
		case 0x00e0:key=11;break;
	}
	if(key>=0)return;
		
//扫描第四行,
	*P_IOA_Data=0x00f7;
		
	switch(*P_IOA_Data&0x00f0)
	{
		case 0x0070:key=12;break;
		case 0x00b0:key=13;break;
		case 0x00d0:key=14;break;
		case 0x00e0:key=15;break;
	}

	
}


////////////////////////////
void key_display()
{
	*P_IOA_Data=LED7CODE[key];
}

void delay(int i)
{
	while(i--)*P_Watchdog_Clear=1;
}

⌨️ 快捷键说明

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