key.c

来自「基于51和D12实现电脑的红外遥控」· C语言 代码 · 共 52 行

C
52
字号
#include "Key.h"
#include "my_type.h"

uint16 idata KeyMapOk;
uint8 KeyMapCanChange;

#define KeyIO P1

/*************************定时器0初始化***************************************/
void InitTimer0(void)
{
 TMOD&=0xF0;
 TMOD|=0x01;
 TH0=0xD8;                 //定时10MS
 TL0=0XEF;
 ET0=1;
 TR0=1;
}
/******************************************************************************/

/*************************定时器0中断处理***************************************/
void Timer0Isr(void) interrupt 1
{ 
 uint8 temp;
 TR0=0;
 TH0=0xD8;
 TL0=0XEF;	 //定时器0重装
 TR0=1;
 KeyIO=0x0F;
 if(KeyMapCanChange)
 {
 if((KeyIO&0x0F)==0x0F)  //如果现在没有按键按下
  {
   KeyMapOk=0;   //没有键按下
  }
 else
  {
   	  switch(KeyIO)
	  {
	      case 0x01:KeyMapOk=1;
		             break;
		  case 0x02:KeyMapOk=2;
		             break;
		  case 0x04:KeyMapOk=4;
		             break;
		  case 0x08:KeyMapOk=8;
		             break;
	  }
  }
  } 
}
/******************************************************************************/

⌨️ 快捷键说明

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