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

📄 key_scan.c

📁 这是一个我以前用AT89S52单片机做的128-64液晶屏的驱动显示程序
💻 C
字号:
#include <reg52.h>
#include <intrins.h>

#define TIMER0_COUNT 1000
#define uchar unsigned char


extern void delay(unsigned int ms);

code uchar key_code[]={0xee,0xed,0xeb,0xe7,	 //0.1.2.3.
						0xde,0xdd,0xdb,0xd7, //4.5.6.7.
						0xbe,0xbd,0xbb,0xb7,  //8.9.a.b.
						0x7e,0x7d,0x7b,0x77}; //c.d.e.f.

code ksp[4]={0xfe,0xfd,0xfb,0xf7};


uchar keypad_scan()
{
	uchar key,i;
	P1=0xf0;

	while(P1!=0xf0);

	do
	{
	 	for(i=0;i<4;i++)
		{
			P1=ksp[i];

			if(P1!=ksp[i])
			{
				delay(20);

				key=P1;

				if(key!=ksp[i])
				{
					P1=0xff;			//		P1归1
					return(key);
				}
			}
		}
	}while(1);
}


uchar gotkey()
{
	uchar temp,i;

	temp=keypad_scan();

	for(i=0;i<=15;i++)
	{
		if(temp==key_code[i]) return(i);
	}

	return(16);
}









/* 
  		
void Timer0(void) interrupt 1 using 1
{
	TL0=0x00;
//	TH0=0x25;					 //	25ms
	 TH0=0x01;
//	if(p14==0) {p14_sign=1; EA=0;}
//	else  p14_sign=0;
	if(p15==0) {p15_sign=1; EA=0;}
	if(p16==0) {p16_sign=1; EA=0;}
//	if(p17==0) {p17_sign=1;	EA=0;}
//	else  p17_sign=0;
}

void Timer0_star()
{
	TMOD=0x01;
	TH0=0x4c;
	TL0=0x00;
	EA=1;
	ET0=1;
	TR0=1;
}

*/

⌨️ 快捷键说明

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