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

📄 1797 04main_t

📁 计算机ps.2 计算机ps.2
💻
字号:
#include <head.c>
#include<order.h>
bit scan_on,last_f;
unsigned char data last_key;
extern unsigned char data delay_count,send_delay,count;

unsigned char bdata clu;
sbit clu0=clu^0;

//按键位置定义,18行8列
unsigned char code kb_mark[18][8]={
    _NULL,_NULL,_NULL,_LGUI,_NULL,_NULL,_NULL,_NULL,
    _NULL,_NULL,_NULL,_NULL,_RGUI,_NULL,_NULL,_NULL,
    _LCTRL,_F5,_PAUSE,_NULL,_NULL,_NULL,_NULL,_RCTRL,
    _WAVE,_1,_Q,_TAB,_A,_ESC,_NULL,_Z,
    _F1,_2,_W,_CAPS,_S,_NULL,_NULL,_X,

    _F2,_3,_E,_F3,_D,_F4,_NULL,_C,
	_5,_4,_R,_T,_F,_G,_B,_V,
	_6,_7,_U,_Y,_J,_H,_N,_M,
    _C_ADD,_8,_I,_R_BRACE,_K,_F6,_NULL,_C_CAMMA,
	_F8,_9,_O,_F7,_L,_NULL,_APPS,_C_PERIOD,
	_C_SUB,_0,_P,_L_BRACE,_C_SEMICOLON,_C_QUOTATION,_C_QUESTION,_NULL,
	_NULL,_PRINTSCRN,_SCROLL,_NULL,_NULL,_LALT,_RALT,_NULL,
	_F9,_F10,_NULL,_BKSPACE,_C_OBLIQUE_LINE,_F11,_F12,_ENTER,
	_DELETE,_NULL,_KP7,_KP4,_KP1,_SPACE,_DOWN,_NUM,
	_INSE,_NULL,_KP8,_KP5,_KP2,_KP0,_RIGHT,_KP_D,
    _PGUP,_PGDN,_KP9,_KP6,_KP3,_KP_DEL,_KP_S,_KP_M,
    _HOME,_END,_KP_A,_NULL,_KPENTER,_UP,_LEFT,_NULL,
    _NULL,_NULL,_NULL,_LSHIFT,_RSHIFT,_NULL,_NULL,_NULL
};

unsigned char scankb(unsigned char row)
{
  unsigned char i,j;
  i=row/8;
  switch(i)
    {
	  case 0:
		j=1;
	    j=j<<row;
		P1=0xff;
		P0=~j;
		P2=0xff;
		Row16=1;
		Row17=1;
		break;
	  case 1:
	    j=0x80;
	    j=j>>(row-8);
		P1=0xff;
		P0=0xff;
		P2=~j;
		Row16=1;
		Row17=1;
		break;
	  case 2:
	    P0=P2=P1=0xff;
		if(row==16) {Row16=0;Row17=1;}
		else {Row16=1;Row17=0;}
	}
   return P1;
}

void scan(void)
{
  unsigned char data dire,kb_code;
  unsigned char data i=0,j=0;
  bit l_bit;
  for(i=0;i<18;i++)
   {
     set_timer1();			  
     clu=scankb(i);
     if(clu==0xff)continue;
     while(delay_count<XIAODOU_DELAY)
       if(command_s())
	     return ;//receive_process();
     clu=scankb(i);
     if(clu==0xff)continue;
       for(j=0;j<8;j++)
        {
         l_bit=clu0;
		 clu=clu>>1;
	     if(l_bit==1) continue;
	     kb_code=kb_mark[i][j];
		 if(kb_code==_NULL)
		   continue;
	 	 dire=exist(kb_code);
		 if(dire==255)	//第一次按下
		   {
		    last_key=kb_code;
		    last_f=1;
                send_delay=0;
		    insert(kb_code,1); 
		   }
         else  set_flag(dire);
	    }
   }
}
bit secret_f;
extern unsigned char data S_No;
void main()
{
//定时01初始化
 IP=0;
 IE=0;
 EA=1;
 if(bat())
    send(0xfd);
 else send(0xaa);
 set_default();
 ini_timer01();
 scan_on=1; 
 secret_f=0;
 S_No=0;
 while(1)
   {
     if(command_s())
   	   receive_process();
     if(scan_on)
	   scan();
     send_buf();
     if(secret_f)
      {
       if(count==100)
        {
		 if(S_No) 
          set_led(S_No);
         else set_led(2);
        }
	 else if(count==200)
	   {
        if(S_No)
          set_led(0);
        else
	      set_led(5);
	    count=0;
       }
     }
   }
}

⌨️ 快捷键说明

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