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

📄 jianpanshumaxianshi.c

📁 适用于单片机ARM等控制器的键盘程序
💻 C
字号:
#include<stdio.h>    //通用4*4小键盘程序,可以用数码管显示键值
#include<at89x52.h>  //可用于51单片机,晶振频率11.0592MHZ

#define uchar unsigned char
#define uint  unsigned int

int Hang;
int Lie;
int Mazhi[4][4]={{1,2,4,3},{5,6,8,7},{9,0,11,10},{12,13,15,14}};
/**************************************************************/
//      0    1    3   2

//      1    2    3   4     .........
//      5    6    7   8     ......... .
//      9    0    .   >     ......... .  P2接通用四乘四小键盘   
//     EXE  MENU  ESC <     .........

//     |-----|        
//     |     |              ........
//     |-----|              ........ . 
//     |     |              ........ .  P3 接数码管显示
//     |-----| .            ........

//    .-.                          .
//   . ? .                  ..........  P2_0接LED显示按下状态
//    .=.                          .

//程序作者:王庆波,黑龙江大学电子工程学院06级,爱好者工作室,borlittle,Q:634172943      
/*************************************************************/
int mz;
uchar code dis_7[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x7F,0x88,0xc6,0xa1,0x86,0x83};
/*对应键值为          0     1     2    3    4   5     6    7    8    9    .    A     C    D     E   B  */
int Key_scan();
void Delay();

void main()
{
  int key;
  P1=0x00;
  P0_0=0;
  while(1)
  {
  key=Key_scan();
  if(key==1)
  {
  mz=Mazhi[Lie][Hang]; //获取码值
  P3=dis_7[mz];        //查表输出段码
  P1=0x80;
  }
  Delay();
  P1=0x00;
   }
}

void Delay()               //延时子程序
{
long i;
for(i=5000;i>0;i--);
}
int Key_scan()
{
	P2=0xF0;               //行扫描
	if((P2&0xF0)!=0xF0)
	{
	switch(P2)
	{
	case 0x70:
		Hang=0;
		break;
	case 0xB0:
		Hang=1;
		break;
	case 0xD0:
		Hang=2;
		break;
	case 0xE0:
		Hang=3;
		break;
	default:
		break;
	}
	Delay();
	P2=0x0F;                //列扫描
	if((P2&0x0F)!=0x0F)
	{
		switch(P2)
		{
	case 0x07:
		Lie=0;
		break;
	case 0x0B:
		Lie=1;
		break;
	case 0x0D:
		Lie=2;
		break;
	case 0x0E:
		Lie=3;
		break;
	default:
		break;
		}
	return 1;
	}
}
	else
	{
	return 0;
	}
}




⌨️ 快捷键说明

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