key.c

来自「此程序是基于c8051f020单片机的c语言程序」· C语言 代码 · 共 115 行

C
115
字号
#include<c8051f020.h>
#define uchar unsigned char
#define uint unsigned int
delay (uchar);
uchar temp,num;
uchar KeyEn()
{
        num=0;
	    P1=0xfe;
		temp=P1;
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			delay(1000);
			if(temp!=0xf0)
			{
				switch (temp)
				{
					case 0xe0: num=0;
					     break;
					case 0xd0: num=1;
					     break;
					case 0xb0: num=2;
					     break;
					case 0x70: num=3;
					     break;
				}
			}
		}
		 while(temp!=0xf0)
					{
						temp=P1;	
						temp=temp&0xf0;	
					}
		P1=0xfd;
		temp=P1;
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			delay(1000);
			if(temp!=0xf0)
			{
				switch (temp)
				{
					case 0xe0: num=4;
					     break;
					case 0xd0: num=5;
					     break;
					case 0xb0: num=6;
					     break;
					case 0x70: num=7;
					     break;
				}
			}
		}
		while(temp!=0xf0)
					{
						temp=P1;
						temp=temp&0xf0;
					}
		P1=0xfb;
		temp=P1;
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			delay(1000);
			if(temp!=0xf0)
			{
				switch (temp)
				{
					case 0xe0: num=8;
					     break;
					case 0xd0: num=9;
					     break;
					case 0xb0: num=10;
					     break;
					case 0x70: num=11;
					     break;
				}
			}
		}
		while(temp!=0xf0)
					{
						temp=P1;
						temp=temp&0xf0;
					}
		P1=0xf7;
		temp=P1;
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			delay(1000);
			if(temp!=0xf0)
			{
				switch (temp)
				{
					case 0xe0: num=12;
					     break;
					case 0xd0: num=13;
					     break;
					case 0xb0: num=14;
					     break;
					case 0x70: num=15;
					     break;
				}
			}
		}
		while(temp!=0xf0)
					{
						temp=P1;
						temp=temp&0xf0;
					}
  	
     return(num);
}

⌨️ 快捷键说明

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