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

📄 keyscan.c

📁 15寸
💻 C
字号:
#include <at89x51.h>
#include "keyproc.h"

void delay(void)
{
	unsigned char i,j;
	for(i = 0;i<255;i++)
		{
			for(j = 0;j<255;j++){}
		}
}

void keyscan(void)
{
	bit a;
	unsigned char b;

//	P3_4 = 1;
	P1_7 = 0;
	a = P3_4;
	if(~a)
	{
		EA = 0;
		while(~P3_4){};
	  
		sendAddress_key();		
		EA = 1;
	} 

	P1 = 0x0fe;			//line1
	b = P1 & 0x0fe;
	if(b != 0x0fe)
	{
		EA = 0;				    //interrupt disable
		//b = b & 0x0fe;
		while((P1 | 0x0f) !=0xff){};
		switch(b)
		{						
			case 0x0ee:
			power_key();break ;
			case 0x0de:
			number_key(3,"3");break;
			case 0x0be:
			number_key(2,"2");break;
			case 0x7e:
			number_key(1,"1");break;
		}
		EA = 1;
	}

	P1 = 0x0fd;			//line2
	b = P1 & 0x0fd;
	if(b != 0x0fd)
	{
		EA = 0;				     //interrupt disable
		while((P1 | 0x0f )!= 0xff){};
		//b = b & 0x0fd;
		switch(b)
		{						
			case 0x0ed:
			menu_key();break  ;
			case 0x0dd:
			number_key(6,"6");break;
			case 0x0bd:
			number_key(5,"5");break;
			case 0x7d:
			number_key(4,"4");break;
		}
		EA = 1;
	}

	P1 = 0x0fb;					//line3
	b=	P1 & 0x0fb;
	if(b != 0x0fb)
	{
		EA = 0;
		delay();
		//a=a|0x0fb;
		if(b==0x0eb)
		{
			up_key();		
		}
		else
		{
		while((P1 | 0x0f) !=0xff){};	
		switch(b)
		{
		   	case 0x0db:
			number_key(9,"9");break;
			case 0x0bb:
			number_key(8,"8");break;
			case 0x7b:
			number_key(7,"7");break;
		}
		}

		EA = 1;
	}

	P1 = 0x0f7;					//line4
	b=	P1 & 0x0f7;
	if(b != 0x0f7)
	{
		EA = 0;
		delay();
		//a=a|0x0f7;
		if(b == 0x0e7)
		{
			down_key();
		}
		else
		{
		while((P1 | 0x0f) !=0xff){};
		switch(b)
		{	
			case 0x0d7:
			enter_key();break;
			case 0x0b7:
			del_key();break;
			case 0x77:
			number_key(0,"0");break;
		}
		}
		EA = 1;
	}
}

⌨️ 快捷键说明

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