key.c

来自「飞利浦10碟VCD控制程序」· C语言 代码 · 共 68 行

C
68
字号
#include <REG52.H>
#include <constant.h>
#include <Function.h>

extern unsigned char KeyValue;
extern unsigned char PressKey;
extern unsigned int keypresstime;

void ReadKey(void)
{
	unsigned char tmpkey;
	P2=0xFF;
	tmpkey=P2;
	tmpkey&=0x1f;
    if(tmpkey!=0x1F)
    {
	    Delay(255);
	    Delay(255);
	    Delay(255);
	    Delay(255);
	    Delay(255);
		P2=0xFF;
		tmpkey=P2;
		tmpkey&=0x1f;
		if(KeyValue==0 && tmpkey!=0x1f)
		{
			switch(tmpkey)
			{
				case 0x1E:
                                        KeyValue=KEY1;
					break;
				case 0x1D:
                                        KeyValue=KEY2;
					break;
				case 0x1B:
                                        KeyValue=KEY3;
					break;
				case 0x17:
                                        KeyValue=KEY4;
					break;
				case 0x0F:
                                        KeyValue=KEY5;
					break;
				default:
					KeyValue=KEYNONE;
					break;
			}
                        if(KeyValue!=KEYNONE)
                             keypresstime=0;
           	}
		else if(tmpkey==0x1F)   //没有按键,抖动
                {
			KeyValue=KEYNONE;
//                        PressKey=KEYNONE;
                }
	        else
                {
                if(PressKey==KEYNONE)PressKey=KeyValue;
                KeyValue=KEYPRESS;
                }
        }
	else //没有按键
	{
        	KeyValue=KEYNONE;
                PressKey=KEYNONE;
        }
}

⌨️ 快捷键说明

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