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

📄 isr.c

📁 DS1820智能温控系统,使用1602液晶显示,51单片机控制,KEIL开发
💻 C
字号:
#include "hardware.h"
#include "ISR.H"
 /*void beer()
 {	  unsigned char j;
  	  int i=100;
  while(i--)
  {
     P3_0=0;
	 for(j=0;j<70;j++);
	 P1_0=1;
	 for(j=0;j<70;j++);
   }
  }	  */
unsigned char key_old=0,key_new=0,key=0,key_pressed_time=0,time_out=0;
void Count_2_interrupt(void) interrupt 5
{
 TF2=0;
 P2=1;
 if(key)return;                        //如果上次按键未处理,则返回
 KEY_IN=0xFF;                          //释放IO
                    
 if((KEY_IN&0x0F)==0x0F)               //按键释放
  {
   if(!key_old)                        //如果上次无按键按下
    {
    
     return;                           //返回
    }
   else                                //如果上次有按键按下
    {
     if(key_pressed_time>100)          //按键时间超过一秒,长按键码
      {
       key=key_old+0x80;               //长按键码等于普通按键码加0x80
      }
     else if(key_pressed_time>0)
      {
       key=key_old;
      }
     key_old=0;
    }
  
   return;
  }
 else                                  //按键按下
  {
   key_new=0;
   if(!ENTER)key_new+=KEY_ENTER;       //ENTER键按下
   if(!DOWN)key_new+=KEY_DOWN;         //DOWN键按下
   if(!UP)key_new+=KEY_UP;             //UP键按下
   if(!MENU)key_new+=KEY_MENU;         //MENU键按下
   if(key_new==key_old)                //如果按键按下长于10ms
    { 
     if(key_pressed_time>100)          //如果按键按下超过1s
      {
       
       return;
      }
     else
      {
       key_pressed_time++;
      }
    }
   else
    {
	// beer();
	 
     key_pressed_time=0;
    }
   key_old=key_new;                    //保存本次按键值
  }

}

⌨️ 快捷键说明

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