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

📄 scankey.c

📁 智能打铃系统(MCU)端程序
💻 C
字号:
#include <REG52.H>

void delay_ms(unsigned int ms);

unsigned char  ScanKey(void)
{
	unsigned char uc_Temp_1,uc_Temp_2,key;
	P1=0xff;                    //P1口置高电平,准备输入
	P1=0x0f;					//P1口高4位作为输出,输出0,低四位作为输入					
	if((P1&0x0f) != 0x0f)           //如果按键有反应
	{
		delay_ms(5);       //延时去抖
		P1=0x0f;	
		if((P1&0x0f) != 0x0f)       //如果为真,则确实有按键按下
		{
			uc_Temp_1=P1;		//把这时P1口状态保存在一个变量中												
			P1=0xf0;			//把P1口高四位置输入,低四位作为输出,注意:这就是'线翻转' (即输入输出翻转)的本质所在						
			uc_Temp_2=P1;       //把这时P1口状态保存在一个变量中
			key=(uc_Temp_1|uc_Temp_2);
			while(P1!=0xf0);
			switch (key)
			{
				case 0xE7:	return (0);
				case 0xEE:	return (1);
				case 0xDE:	return (2);
				case 0xBE:	return (3);
				case 0xED:	return (4);
				case 0xDD:	return (5);
				case 0xBD:	return (6);
				case 0xEB:	return (7);
				case 0xDB:	return (8);
				case 0xBB:	return (9);
				default:	return key;
			}																	
		}
	}
	return (0xff);
}

⌨️ 快捷键说明

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