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

📄 keyscan.c

📁 单片机实现计算器程序
💻 C
字号:
//#include <lcd.c>
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void lcd_wr(char a);
//sbit dc=P2^0;
//sbit rw=P2^1; 
//sbit cs=P2^4;

void delay(uint i)
{while(i--);}	

uchar keyscan(void)
{uchar rcode , lcode;
 P0=0xf0;
 if((P0&0xf0)!=0xf0)
 	{delay(500);
	 if((P0&0xf0)!=0xf0)
	 	{rcode = 0xfe;
		 while((rcode&0x10)!=0)
		 	{P0 = rcode;
			 if((P0&0xf0)!=0xf0)
			 	{lcode = P0&0xf0;
				 rcode = rcode&0x0f;
				 return(rcode+lcode);
				 }
				 else
				 	rcode = (rcode<<1)|0x01;
			}
		}
	}
	return(0);
	}
	
 /*void  lcd_wr(uchar a)
 {
  P0 = a;
  }	 */
 
 void main(void)
 {uchar key;
  while(1)
  	{
	 key = keyscan();
	 switch(key)
	 {
	  case 0xee:lcd_wr('0');
	  case 0xde:lcd_wr('1');
	  case 0xbe:lcd_wr('2');
	  case 0x7e:lcd_wr('3');
	  case 0xed:lcd_wr('4');
	  case 0xdd:lcd_wr('5');
	  case 0xbd:lcd_wr('6');
	  case 0x7d:lcd_wr('7');
	  case 0xeb:lcd_wr('8');
	  case 0xdb:lcd_wr('9');
	  case 0xbb:lcd_wr('+');
	  case 0x7b:lcd_wr('-');
	  case 0xe7:lcd_wr('*');
	  case 0xd7:lcd_wr('%');
	  case 0xb7:lcd_wr('=');
	  case 0x77:lcd_wr('0');
	  default :break;
	  }
	 delay(500);
	 }
  	  
  }

 
							 

⌨️ 快捷键说明

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