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

📄 44clock.c

📁 可以用4*4矩阵键盘调整的数字钟
💻 C
字号:
#include <reg51.h>
#define unchar unsigned char

unsigned int real_key=0;
unsigned char num[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xa0,0x83,0xa7,0xa1,0x84,
0x8e};

void hold_on( unsigned int delay)
{
	while(delay--);
}

unsigned int get_key()
{
	int key;
	if( P1 == 0xf0 ) return 0;
	else
 	{
		key = P1;

		hold_on(30000);

		P1 = 0x0f;

		if( P1 == 0x0f ) return 0;
		else
		{
			hold_on(30000);
			key = P1 ^ key;
		}		
	}

	switch(key)
	{
		case 0xee: return 1; break; 
		case 0xde: return 2; break; 
		case 0xbe: return 3; break; 
		case 0x7e: return 4; break; 
		case 0xed: return 5; break; 
		case 0xdd: return 6; break; 
		case 0xbd: return 7; break; 
		case 0x7d: return 8; break; 
		case 0xeb: return 9; break; 
		case 0xdb: return 10; break; 
		case 0xbb: return 11; break; 
		case 0x7b: return 12; break; 
		case 0xe7: return 13; break; 
		case 0xd7: return 14; break; 
		case 0xb7: return 15; break; 
		case 0x77: return 16; break; 
		default: return 0;
	}
}
unsigned int scan_key()
{
	unsigned int key;

	P1 = 0xf0;
	key = get_key();
	if( !key )
	{
 		return 0;	
	}

	else
	{
		hold_on(300);
		P1 = 0xf0; 
		real_key = get_key();
 	   if( key == real_key )
	   {
	   		return real_key;
	   }
	}
}

void main()
{
	unsigned int key;
	P2 = 0x0f;
	while(1)
	{
		key = scan_key();
		if( key != 0 )
		{
			P0 = num[key-1];
			hold_on(30000);
			hold_on(30000);
			hold_on(30000);
			hold_on(30000);
		}
	}
}

⌨️ 快捷键说明

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