📄 key.c
字号:
////////////////////////////////////*/
/* */
/* Hot_Box */
/* Version_2 */
/* AHTL_2007_11 */
/* */
/* */
/* KEY.C */
/* */
////////////////////////////////////*/
#include <absacc.h>
#include <reg52.H>
#include <key.h>
#include <lcd.h>
//
// 2 X 16 LCD display port and BCD port each bit function
//
// LCD PORT BCD PORT
//
// P17 P16 P15 P14 P13 P12 P11 P10 ___ NC SEL1
// | | | | | | |_________ NC SEL2
// | | | | | |_____________ RS NC
// | | | | |_________________ Enable1 NC
// | | | |_____________________ D4 D4
// | | |_________________________ D5 D5
// | |_____________________________ D6 D6
// |_________________________________ D7 D7
//
/*--------------------------------------------------------*/
unsigned char keyprow_buf;
char _scan_key ()
{
unsigned char i = 0;
if (keyprow_buf)
{
P1 = 0xf6; //sel1=0;
keyprow_buf = 0;
_delay500us(8);
switch(P1&0xf0)
{
case 0x50 :
i = KP_COPY;
break;
case 0x70 :
i = KP_MENU;
break;
case 0xb0 :
i = KP_EXIT;
break;
case 0xd0 :
i = KP_SAVE;
break;
case 0xe0 :
i = KP_ENTER;
break;
}
if(i==KP_SAVE)
{
_delay500us(200);
}
else
{
while ((P1&0xf0) != 0xf0)
{
_delay500us(32);
}
}
}
else
{
P1 = 0xf5; //sel2=0
keyprow_buf = 1;
_delay500us(8);
switch(P1&0xf0)
{
case 0x70 :
i = KP_LEFT;
break;
case 0xb0 :
i = KP_RIGHT;
break;
case 0xd0 :
i = KP_INC;
break;
case 0xe0 :
i = KP_DEC;
break;
}
while ((P1&0xf0) != 0xf0)
{
_delay500us(32);
}
}
P1 = 0xf7;
_delay500us(16);
return i;
}
/*-------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -