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

📄 key_74165.c

📁 C语言单片机编程的代码及教程文献
💻 C
字号:
#define KEY_74165_GLOBALS
#include<reg51.h>
#include"Key_74165.h"
#include"lcd1062.h"
delay(uint16 u)
{
     while(u--);
	 }
/*******************************************************************
函数名称:GetKey
即时返回扫描到的键值
********************************************************************/ 
uint8 GetKey(void)
{
	uint8 i,buf;
	Key_CS =1;
	Key_CLK=1;
	Key_SL =0;
	Key_SL =1;
	Key_CS =0;
	buf=0x00;
	for(i=1;i<17;i++)		   //读入键值
	{
		Key_CLK=1;
		Key_CLK=0;
		if(Key_OUT==0)return i;
		buf<<=1;
	}
	return 0;//没有读到键值,返回0 
}
/*******************************************************************
函数名称:GetOneKey
扫描键盘,等用户释放再返回键值,ASCII码:0~f
********************************************************************/
uint8 GetOneKey(void)
{
	uint8 key1=0;
	uint8 key2=0;
	while(key1==0)key1=GetKey();
	key2=GetKey();
	while(key1==key2)key2=GetKey();
	delay(1000);
	if(key1<10)return key1+'0';
	else return (key1+'a'-10);
}
/*******************************************************************
函数名称:
扫描键盘,等用户释放显示并返回键值
********************************************************************/
uint8 KeyGet()
{
    
	uint8 key1=0;
	uint8 key2=0;
	while(key1==0)key1=GetKey();
	key2=GetKey();
	while(key1==key2)key2=GetKey();
	delay(1000);
	switch(key1)
	{
	case 1:key1=7;break;
	case 2:key1=8;break;
	case 3:key1=9;break;
	case 4:key1='a';break;
	case 5:key1=4;break;
	case 6:key1=5;break;
	case 7:key1=6;break;
	case 8:key1='b';break;
	case 9:key1=1;break;
	case 10:key1=2;break;
	case 11:key1=3;break;
	case 12:key1='c';break;
	case 13:key1='+';break;
	case 14:key1=0;break;
	case 15:key1='-';break;
	case 16:key1='d';break;
	}
	if((key1&0xf0)==0)
	printf1(key1+'0');
	return key1;
}

⌨️ 快捷键说明

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