📄 key_unit.c
字号:
/*********************************************************************************************************
** 函数名称: msb to lsb
** 功能描述:
********************************************************************************************************/
uchar msb_turn_lsb( uchar ml )
{
mtol_a = ml;
b0 = a7;
b1 = a6;
b2 = a5;
b3 = a4;
b4 = a3;
b5 = a2;
b6 = a1;
b7 = a0;
return( mtol_b );
}
/*********************************************************************************************************
** 函数名称: read_key
** 功能描述: 读取楼层键值
********************************************************************************************************/
/*
void read_key()
{
uchar key_L;
uchar key_H;
MC573_5 = 1;
MC573_6 = 1;
MC573_7 = 1;
MC573_5 = 0;
_nop_();
_nop_();
_nop_();
key_L = DATA_PORT; // 读键低8位
MC573_5 = 1;
MC573_6 = 1;
MC573_7 = 1;
MC573_6 = 0;
_nop_();
_nop_();
_nop_();
key_H = DATA_PORT; // 读键高8位
key_L = ~key_L;
key_H = ~key_H;
key_code = msb_turn_lsb( key_L ); // 将6位键码存入key_code中
key_ctrl = msb_turn_lsb( key_H );
}
*/
void read_key()
{
uchar key_L;
uchar key_H;
MC573_5 = 1;
MC573_6 = 1;
MC573_7 = 1;
MC573_5 = 0;
_nop_();
_nop_();
_nop_();
key_L = DATA_PORT; // 读键低8位
MC573_5 = 1;
MC573_6 = 1;
MC573_7 = 1;
MC573_6 = 0;
_nop_();
_nop_();
_nop_();
key_H = DATA_PORT; // 读键高8位
key_L = ~key_L;
key_H = ~key_H;
key_L = msb_turn_lsb( key_L ); // 交换高底位
key_H = msb_turn_lsb( key_H );
key_code = key_L; // 将6位键码存入key_code中
key_code &= 0x3f;
key_ctrl = key_H & 0x03;
key_ctrl <<= 2;
key_ctrl |= key_L>>6; // 将4位特殊码存入key_ctrl中
// 判有无键输入
if(key_code==0 && key_ctrl==0) // 无键
{
;
} // brush dis buffer sw ctrl
if(key_code_temp_L == key_code && key_code_temp_H == key_ctrl)
{ // 有键但键码未变
floor_dis_flash_sw = 0;
}
else // 有键且键码已变
{
key_code_temp_H = key_ctrl;
key_code_temp_L = key_code;
floor_dis_flash_sw = 1;
}
}
/*********************************************************************************************************
** 函数名称: key_code_doing
** 功能描述: 将楼层键值key_code转换成定义的楼层值floor_h,floor_l;
********************************************************************************************************/
void key_code_doing( uchar c_to_f )
{
switch( c_to_f )
{
case 0 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 1 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 2 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 3 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 4 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 5 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 6 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 7 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 8 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 9 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 10 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 11 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 12 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 13 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 14 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 15 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 16 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 17 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 18 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 19 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 20 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 21 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 22 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 23 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 24 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 25 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 26 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 27 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 28 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 29 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 30 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 31 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 32 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 33 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 34 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 35 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 36 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 37 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 38 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 39 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 40 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 41 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 42 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 43 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 44 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 45 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 46 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 47 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 48 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 49 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 50 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 51 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 52 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 53 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 54 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 55 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 56 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 57 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 58 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 59 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 60 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 61 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 62 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 63 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
case 64 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
default : floor_l = 0x1; floor_l = 0x1; break;
//default : floor_l = 0xff; floor_h = 0xff; break; // send don't dis data
}
}
/*********************************************************************************************************
** 函数名称: key_ctrl_doing
** 功能描述: 将楼层键值key_ctrl转换成特殊信息:上,下箭头,始停,特殊服务
********************************************************************************************************/
void key_ctrl_doing()
{
switch( key_ctrl)
{
case 0 : { arrow_roll_flag = 0; clr_sbwhz_cn();stop(); } break;
case 8 : { arrow_roll_flag = 0; sbwhz_cn(); stop(); } break;
//if ( key_ctrl_0 == 0 && key_ctrl_2 == 1 ) { stop(); }
//if ( key_ctrl_1 == 0 && key_ctrl_2 == 1 ) { stop(); }
case 1 : { clr_sbwhz_cn();arrow_roll_flag = 0; up_arrow_stop(); } break; //静态,写一次即可
case 2 : { clr_sbwhz_cn();arrow_roll_flag = 0; down_arrow_stop(); } break;
case 5 : { clr_sbwhz_cn();arrow_roll_flag = 1; arrow_type = 0;} break; //arrow_type=0,it is up arrow //动态,需不停刷新故将其
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -