keyscan.c

来自「这是一个用于视频切换的控制程序,采用AT89C51芯片,KEIL 51开发」· C语言 代码 · 共 113 行

C
113
字号

//scan the Alarm input
#include "reg52.h"
#include "main.h"



unsigned char data keydata;
extern keybuffer;

unsigned char keyscan(void)
{
 unsigned char data keytmp;
 keydata=0;
 COLUMN1_PIN = 0;
 COLUMN2_PIN = 1;
 COLUMN3_PIN = 1;
 keytmp = ~(P1) & 0x0f;

 switch(keytmp)
  {
   case 1:
     keydata = key1;
	 break;
   case 2:
     keydata = key2;
	 break;
   case 4:
     keydata = key3;
	 break;
   case 8:
     keydata = key4;
	 break;
   default:
     break;
  }

 COLUMN1_PIN = 1;
 COLUMN2_PIN = 0;
 COLUMN3_PIN = 1;
 keytmp = ~(P1) & 0x0f;

 switch(keytmp)
 {
   case 1:
     keydata = key5;
	 break;
   case 2:
     keydata = key6;
	 break;
   case 4:
     keydata = key7;
	 break;
   case 8:
     keydata = key8;
	 break;
   default:
     break;
  }

 COLUMN1_PIN = 1;
 COLUMN2_PIN = 1;
 COLUMN3_PIN = 0;
 keytmp = ~(P1) & 0x0f;

 switch(keytmp)
  {
   case 1:
     keydata = key9;
	 break;
   case 2:
     keydata = key10;
	 break;
   case 4:
     keydata = key11;
	 break;
   case 8:
     keydata = key12;
	 break;
   default:
     break;
  }
  COLUMN3_PIN=1;
  return keydata;
}



























⌨️ 快捷键说明

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