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

📄 fun.h

📁 从零开始学51单片机源代码
💻 H
字号:
//定义端口寄存器
sfr P0M0 = 0X93;
sfr P0M1 = 0X94;
sfr P1M0 = 0X91;
sfr P1M1 = 0X92;
sfr P2M0 = 0X95;
sfr P2M1 = 0X96;  
sfr P3M0 = 0Xb1;
sfr P3M1 = 0Xb2; 

//定义P0口输出二进制状态码 
const unsigned char led_bin[16] = {0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
									0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0};

//定义延时函数
void ms_delay(unsigned int t)
{
	unsigned  int  i;
	for (t; t > 0; t--)	//外层循环t次	 
		for (i = 110;i > 0; i--)	//内层循环110次		   
		;
}

//定义检测键盘函数 
unsigned char query_key()
{
	unsigned char temp, keycode;
	keycode = 255;

	P1 = 0xef;			 //将第一列置低 
	temp = P1;
	temp &= 0x0f;				//检测行线的值 
	//如果该列有按键按下,则p1不等于0x0f 
		switch (temp)
		{
			case 0x0e:
				keycode = 0; 			//1行1列 
				break;
			case 0x0d:
				keycode = 4; 			//2行1列 
				break;
			case 0x0b:
				keycode = 8; 			//3行1列 
				break;
			case 0x07:
				keycode = 12;			//4行1列 
				break;
			default:
				keycode = 255;
		}

	P1 = 0xdf; //将第二列置低 
	temp = P1;
	temp &= 0x0f;//检测行线的值 
	//如果该列有按键按下,则p1不等于0x0f 
		switch (temp)
		{
			case 0x0e:
				keycode = 1;	//1行2列 
				break;
			case 0x0d:
				keycode = 5;    //2行2列 
				break;
			case 0x0b:
				keycode = 9;   //3行2列 
				break;
			case 0x07:
				keycode = 13;  //4行2列 
				break;
			default:
				keycode = 255;
		}

	P1 = 0xbf; //将第三列置低 
	temp = P1;
	temp &= 0x0f;//检测行线的值 
	//如果该列有按键按下,则p1不等于0x0f 
		switch (temp)
		{
			case 0x0e:
				keycode = 2;	//1行3列 
				break;
			case 0x0d:
				keycode = 6;    //2行3列 
				break;
			case 0x0b:
				keycode = 10;   //3行3列 
				break;
			case 0x07:
				keycode = 14;  //4行3列 
				break;
			default:
				keycode = 255;
		}

	P1 = 0x7f; //将第四列置低 
	temp = P1;
	temp &= 0x0f;//检测行线的值 
	//如果该列有按键按下,则p1不等于0x0f 
		switch (temp)
		{
			case 0x0e:
				keycode = 3;	//1行4列 
				break;
			case 0x0d:
				keycode = 7;    //2行4列 
				break;
			case 0x0b:
				keycode = 11;   //3行4列 
				break;
			case 0x07:
				keycode = 15;  //4行4列 
				break;
			default:
				keycode = 255;
		}
	return keycode;
}

//定义点亮led函数 
void showled(unsigned char n)
{
	if (n != 255)
	{ //如果有按键按下 
	   P0 = led_bin[n];
	}
}

⌨️ 快捷键说明

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