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

📄 keyscan.c

📁 这个是安防用的控制键盘C源程序,采用KEIL C51开发.用于控制前端解码器!
💻 C
字号:

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



unsigned char data keydata;
extern keybuffer;

void keyscan(void)
{
 unsigned char data keytmp;
 keydata=0;
 P0=0xFE;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_0;
	 break;
   case 2:
     keydata = K_8;
	 break;
   case 4:
     keydata = K_mon;
	 break;
   case 8:
     keydata = K_salvo;
	 break;
   case 16:
     keydata = K_f1;
	 break;
   default:
     break;
  }

 P0=0xFD;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
 {
   case 1:
     keydata = K_1;
	 break;
   case 2:
     keydata = K_9;
	 break;
   case 4:
     keydata = K_cam;
	 break;
   case 8:
     keydata = K_run;
	 break;
   case 16:
     keydata = K_f2;
	 break;
   default:
     break;
  }

 P0=0xFB;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_2;
	 break;
   case 2:
     keydata = K_close;
	 break;
   case 4:
     keydata = K_on;
	 break;
   case 8:
     keydata = K_hold;
	 break;
   case 16:
     keydata = K_prog;
     break;
   default:
     break;
  }

 P0=0xF7;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_3;
	 break;
   case 2:
     keydata = K_open;
	 break;
   case 4:
     keydata = K_off;
	 break;
   case 8:
     keydata = K_b;
	 break;
   case 16:
     keydata = K_arm;
     break;
   default:
     break;
  }

 P0=0xEF;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_4;
	 break;
   case 2:
     keydata = K_near;
	 break;
   case 4:
     keydata = K_shot;
	 break;
   case 8:
     keydata = K_time;
	 break;
   case 16:
     keydata = K_last;
     break;
   default:
     break;
  }

 P0=0xDF;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_5;
	 break;
   case 2:
     keydata = K_far;
	 break;
   case 4:
     keydata = K_patran;
	 break;
   case 8:
     keydata = K_a;
	 break;
   case 16:
     keydata = K_next;
     break;
   default:
     break;
  }

 P0=0xBF;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_6;
	 break;
   case 2:
     keydata = K_wide;
	 break;
   case 4:
     keydata = K_aux;
	 break;
   case 8:
     keydata = K_ack;
	 break;
   case 16:
     keydata = K_vcr;
     break;
   default:
     break;
  }

 P0=0x7F;
 keytmp = ~(P2) & 0x1f;

 switch(keytmp)
  {
   case 1:
     keydata = K_7;
	 break;
   case 2:
     keydata = K_tele;
	 break;
   case 4:
     keydata = K_clear;
	 break;
   case 8:
     keydata = K_lock;
	 break;
   case 16:
     keydata = K_user;
     break;
   default:
     break;
  }

 // return keydata;
}



























⌨️ 快捷键说明

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