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

📄 key.c

📁 用ATmega88的一款温湿度仪的原程序
💻 C
字号:
#include <avr/io.h>
#include <util/delay.h>

unsigned char p_key;
unsigned int p_kcnt;
unsigned char Scankey(void)								//键盘扫描
{	unsigned int key;
	static unsigned int p_kold;
	key=(PINB&0xC1)|((PIND&0x80)>>1);			    	//读键盘口
	if(key) 
	{	
          if(key!=p_kold&&(key!=(p_kold&0xFD)))	{	p_kold=key;	p_kcnt=0;	}	//有新键按下
		else
		{	if(p_kcnt<300) p_kcnt++;
			if((p_kcnt==3)||(p_kcnt>30))				//键值确认
				if(!p_key||((p_key&0x02)==0&&p_kcnt>50))
					{
					if(p_kcnt>50) p_key=key|0x02;					
					else	p_key=key;
					return(1);
					}
		}
	}
	else	p_kold=p_kcnt=0;							//无键按下	
	return(0);
}

unsigned char Getkey(void)								//程序提取键值
{	unsigned int rkey;
	if(p_key&&p_kcnt==0)
	{
		rkey=p_key;		p_key=0;    // 短按键
		return(rkey);
	}
	else if(p_key&0x02)
	{	
		rkey=p_key;		p_key=0;
		return(rkey);
	}
	else return(0);
}

⌨️ 快捷键说明

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