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

📄 timer.c

📁 51开发板的源程序
💻 C
字号:
#include "c51base.h" 


static uint time_20ms;


static bit is_key;
static uchar key_value;

void TimerInit()
{
	TH0 = 0X88;
	TL0 = 0X00;
	TMOD = 0X21;
	TR0 = 1;
	ET0 = 1;
}

sbit KEY_1 = P2^3;
sbit KEY_2 = P2^2;
sbit KEY_3 = P2^1;
sbit KEY_4 = P2^0;


void TimeInter() interrupt 1
{
	static uchar last_value;
	static uint back_time;
	uchar temp;
	TH0 =0x88;
	TL0 =0x00;
	time_20ms++;
	if(time_20ms - back_time>=1000)
			BACK_LIGHT = 1;

	temp=0;
	KEY_1 = KEY_2 = KEY_3 = KEY_4 = 1;
	KEY_1 = 0;
	if(!KEY_3)
		temp = temp+1;
	temp<<=1;
	if(!KEY_4)
		temp = temp+1;
	KEY_2 = 0;
	temp<<=1;
	if(!KEY_3)
		temp = temp+1;
	temp<<=1;
	if(!KEY_4)
		temp = temp+1;
	temp<<=1;
	if(temp!=0 && last_value != temp)
	{
		key_value = temp;
		is_key = 1;
		BACK_LIGHT = 0;
		back_time = time_20ms;
	}
	last_value = temp;
}

bit IsKeyCheck(void)
{		
	return is_key;
}

uchar ReadKey(void)
{
	uchar temp;
	is_key = 0;	
	switch(key_value)
	{
		case 2:temp = 'd';
		break;
		case 4:temp = 'x';
		break;
		case 20:temp = 'e';
		break;
		case 10:temp = 'u';
		break;
		default:
		break;
	}
	return temp;
}

uchar WaitKey(uint time_out)
{
	uchar i;
	time_out = time_out*6;
	while(time_out--)
	{
		WDTReset_SM89516();
		for(i=0;i<=112;i++)
			;
		if(IsKeyCheck())
			return ReadKey();
	}
	return 0xff;
}

⌨️ 快捷键说明

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