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

📄 key.c

📁 有价值的电子书
💻 C
字号:
//-----------------------------------------------------------------------------
//程序描述:
//  这个程序扫描:KEY1...KEY4,返回按相应的按键字符:'1','2','3','4'
//  并在LCD上显示出来(注:J18要短接给LCD供电).
//作者:ZDP
//时间:2005-11-30
//版本:V1.0
//-----------------------------------------------------------------------------

#include <c8051f020.h>                    // SFR declarations
sbit	key1=P2^0;
sbit	key2=P2^1;
sbit	key3=P2^2;
sbit	key4=P2^3;
unsigned long x;

void LCD_Init(void)
{
   P2 = 0X80;
   for(x=0;x<1000;x++);
   //P7 = 0x30;				/*一行显示*/
   P3 = 0x38;				/*两行显示*/
   P2 = 0X00;//0x08;
   P2 = 0X80;//0x09; 
   for(x=0;x<1000;x++);
   P3 = 0x0e;
   P2 = 0x00;
   P2 = 0x80;
   for(x=0;x<1000;x++);
   P3=  0x06;
   P2 = 0x00;
   P2 = 0x80;
   for(x=0;x<5000;x++);
   P3 = 0x01;
   P2 = 0x00;
   P2 = 0x80; 
   for(x=0;x<5000;x++);
}
void delay(void)
{
	int a=1000;
	while(a!=0)
	{
		a--;
	}
 }
/*----------------------------------------------------*/
//按键连接到p2.0、p2.1、p2.2、P2.3,均为开漏输出
unsigned char key_in(void)
{
	P2=0xff;
	if(key1==0)
	{
		key1=1;
		delay();//延时
		if(key1==0)
		{
			while(key1==0);
			return(0x31);//返回字符"1"表示按键SW1按下
		}
	}

	if(key2==0)
	{
		key2=1;
		delay();//延时
		if(key2==0)
		{
			while(key2==0);
			return(0x32);//返回字符"3"表示按键SW1按下
		}
	}

	if(key3==0)
	{
		key3=1;
		delay();//延时
		if(key3==0)
		{
			while(key3==0);
			return(0x33);//返回字符"3"表示按键SW1按下
		}
	}

	if(key4==0)
	{
		key4=1;
		delay();//延时
		if(key4==0)
		{
			while(key4==0);
			return(0x34);//返回字符"4"表示按键SW1按下
		}
	}
	return(0);//返回0,表示没有按键按下
}


void main(void) 
{	
	unsigned char data1;
	WDTCN = 0xde;                          // 关闭WDT
	WDTCN = 0xad;
    XBR2  = 0x40;						   //启用交叉开关
	while(1)
	{
		data1=key_in();						//读按键
		if(data1!=0)						//有按键按下,显示对应的按键
		{
			LCD_Init();                     //LCD初始化
			P2  = 0xA0;                     //准备送数据
			for(x=0;x<1000;x++);	
			P3 = data1; 					//写数据到端口
			P2 = 0X20;
			P2 = 0XA0;						//控制LCD	
			for(x=0;x<1000;x++);
		}
	}

}



⌨️ 快捷键说明

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