📄 isr.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 + -