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

📄 key.c

📁 电子称重的程序
💻 C
字号:
#include<head.h>
#include "key.h"
BOOL keydd_Flag;
Uchar key_old;

/*******************************************************
*             按键驱动程序
**********************************************************/
/*******************************************************
*       函数原型:void key_init(void)
*       用途:按键复位
**********************************************************/
void key_init(void)
{
  TMOD&=0xf0;
  TMOD|=0X01;
  TL0=(0x10000-(SYSCLK/1200))&0x00ff;
  TH0=(0x10000-(SYSCLK/1200))>>8;
  TR0=1;
  ET0=1;
  EA=1;
  key_old=0;
}

/*******************************************************
*       函数原型:T0_int()(void)
*       用途:t0中断,获得按键值
*       出口:无
**********************************************************/
void T0_int(void) interrupt 1
{
 Uchar key_temp=0;
 Uchar key_check=0;
 Uchar i=0;
 TL0=(0x10000-(SYSCLK/1200))&0x00ff;
 TH0=(0x10000-(SYSCLK/1200))>>8;

 KC=0x0f;
 key_temp=(~KC)&0x0f;
 if(key_temp!=key_old)
 {
  if(keydd_Flag)
  {
    key_check=1;
    while(key_check!=0x10)
    {
      if(key_temp&key_check)
      {
       if(!(key_old&key_check))
       {
        if((key_temp&CTRL)&&(key_check!=CTRL))i|=CTRLF;
        if((key_temp&SHIFT)&&(key_check!=SHIFT))i|=SHIFTF;
        PostMessage(M_KEYDOWN,key_check|i);
       }
      }
      else  if(key_old&key_check)
      {
       if(key_temp&CTRL)i|=CTRLF;
       if(key_temp&SHIFT)i|=SHIFTF;
       PostMessage(M_KEYUP,key_check|i);
      }
       key_check<<=1;
    }
    key_old=key_temp;
    keydd_Flag=FALSE;
  }
  else
  {
   keydd_Flag=TRUE;
  }
 }
 else
 {
   keydd_Flag=FALSE;
 }
}


⌨️ 快捷键说明

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