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

📄 key.c

📁 51单片机游戏程序包括图纸
💻 C
字号:
#include <AT89X52.h>
#include "typedef.h"

#define Nothing 100
//端口定义
sbit C1 = P2^3;
sbit C2 = P2^4;
sbit C3 = P3^2;
sbit C4 = P3^3;

sbit R1 = P3^4;
sbit R2 = P3^5;
sbit R3 = P3^0;
sbit R4 = P3^1;

uchar Key=Nothing;		  //键盘缓冲寄存器(公有数据)
uchar Fn_Key;			 //功能键

//*********************************************************************
//= 函数原型: void KEYPAD_Scan(char* const Key, char* const Fn_Key)
//= 功    能: 扫描键盘
//= 参    数: 普通键New_Key,功能键New_FuncKey,缓存器的指针
//= 返 回 值:
//= 函数性质:私有函数
//**********************************************************************

void KEYPAD_Scan(char* const Key, char* const Fn_Key)
{

   C1 = 0; 
      if (R1 == 0) *Fn_Key = 'o'; //ON键
      if (R2 == 0) *Key    =  0;
      if (R3 == 0) *Fn_Key = '=';
      if (R4 == 0) *Key    = '+';
   C1 = 1;

   C2 = 0; 
      if (R1 == 0) *Key = 1;
      if (R2 == 0) *Key = 2;
      if (R3 == 0) *Key = 3;
      if (R4 == 0) *Key = '-';
   C2 = 1;

   C3 = 0; 
      if (R1 == 0) *Key = 4;
      if (R2 == 0) *Key = 5;
      if (R3 == 0) *Key = 6;
      if (R4 == 0) *Key = '*';
   C3 = 1;

   C4 = 0; 
      if (R1 == 0) *Key = 7;
      if (R2 == 0) *Key = 8;
      if (R3 == 0) *Key = 9;
      if (R4 == 0) *Key = '/';   

   C4 = 1;

}
//*********************************************************************
//= 函数原型: void KEY_Update()
//= 功    能: 键盘缓冲寄存器更新程序. 普通键Key, 功能键Fn_Key
//= 参    数: 
//= 返 回 值:
//= 函数性质:公有函数
//**********************************************************************
void KEY_Update() 
{
   static uchar delay=20;		//去抖动延时
   static bit delaying=0;		//标识是否正在延时

   if(delaying==0)
   {
       if(Key==Nothing)		   //如果Key缓存器中的数据未被读取,则不扫描键盘
	   {
	      KEYPAD_Scan(&Key,&Fn_Key);	   //扫描键盘
		  if(Key!=Nothing)
		  {
		     delaying=1; 
			 Key=Nothing; 

		   }
		}
   }
   else
   {
      if(delay==0)				 //延时结束
	  {
	     KEYPAD_Scan(&Key,&Fn_Key);	   //读取键盘
		 delay=20;
		 delaying=0;
	  }
	  else   delay--;			//延时减一
   }
}						   


  


    

⌨️ 快捷键说明

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