📄 scan_key.c
字号:
#include <SPCE061V004.H>
//变量声明
extern unsigned int key_value;
unsigned int set_bit=0; //光标闪动位置
unsigned int set_sign=0; //电流符号(方向)
unsigned int set_value=0; //电流设定值
unsigned int set_mode=0; //设定标志位,set_mode=0时处于非设定状态
// set_mode=1时处于设定状态
//函数声明
void keyboard(void);
void scankey(void);
//=========================================================================================
//
//=========================================================================================
void scankey(void)
{
keyboard();
switch (key_value)
{
case 0: break; //没按键
case 1:
if (set_mode)
switch (set_bit)
{
case 0: set_value=(set_value+1)%2001;break;
case 1: set_value=(set_value+10)%2001;break;
case 2: set_value=(set_value+100)%2001;break;
case 3: set_value=(set_value+1000)%2001;break;
case 4: set_sign=(set_sign+1)%2;
default:break;
}
asm("INT OFF");
LCD_Set_Num();
asm("INT IRQ");
key_value=0;
break;
case 2:
if (set_mode)
switch (set_bit)
{
case 0: set_value=(set_value-1+2001)%2001;break;
case 1: set_value=(set_value-10+2001)%2001;break;
case 2: set_value=(set_value-100+2001)%2001;break;
case 3: set_value=(set_value-1000+2001)%2001;break;
case 4: set_sign=(set_sign+1)%2;
default:break;
}
asm("INT OFF");
LCD_Set_Num();
asm("INT IRQ");
key_value=0;
break;
case 3:
if (set_mode)
{
set_bit=(set_bit+1)%5;
asm("INT OFF");
LCD_Set_Shift();
asm("INT IRQ");
}
key_value=0;
break;
case 4:
if (set_mode)
{
set_bit=(set_bit-1+5)%5;
asm("INT OFF");
LCD_Set_Shift();
asm("INT IRQ");
}
key_value=0;
break;
case 5:
set_mode=(set_mode+1)%2;
if (set_mode)
{
set_bit=0;
asm("INT OFF");
LCD_Set_Ini();
asm("INT IRQ");
}
else
asm("INT OFF");
LCD_Set_Finish();
asm("INT IRQ");
key_value=0;
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -