⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.c

📁 进行单片机与LCD的接口通讯与显示。使用清华的液晶。
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
extern void msec(uint);
uchar scankey();
extern KeyState;
extern KeyFuncIndex;
 sbit P3_5=P3^5;

float idata keycount=0;	/* used for exit the menu when no key action */
int keybutton=0;

uchar scankey()
  { 	uchar idata keyb;
      keycount++;
    if( keycount>=80000)
    {keycount=0;
    P3_5=0;
     KeyState=1;
     KeyFuncIndex=4;
     }
        keyb=P1&0xff;
        if(keyb!=0xff)
          { //msec(50);
            keyb=P1&0xff;
            keybutton=1;
            KeyState=1;
            keycount=0;
	  }
        else
        {keybutton=0;}
	switch (keyb)
	  {
		case 0xfe : keyb=1;   /* S1 */
		break;
		case 0xfd : keyb=2;   /* S2 */
		break;
		case 0xfb : keyb=3;   /* S3 */
		break;
		case 0xf7 : keyb=4;   /* S4 */
		break;
		case 0xef : keyb=5;   /* S5 */
		break;
                case 0xdf : keyb=6;   /* S6 */
		break;
                case 0xbf : keyb=7;   /* S7 */
		break;
                case 0x7f : keyb=8;   /* S8 */
		break;
		default   : keyb=0;
                break;
	  }
/*	if(keycount>=60){
	  keyb=1;	 exit if no key in action after 60 secondes
	  keycount=0;
        }   */
    if(keyb==0)
   {     keyb=P3&0x0c;
        if(keyb!=0x0c)
          { //msec(50);
            keyb=P3&0x0c;
            keybutton=1;
            KeyState=1;
	  }
        else
        {keybutton=0;}
	switch (keyb)
	  {
		case 0x08 : keyb=9;   /* S9 */
		break;
		case 0x04 : keyb=10;   /* S10 */
		break;
                default   : keyb=0;
                break;
           }
    }
	return (keyb);
}

⌨️ 快捷键说明

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