keyboard.c

来自「弹片机的行列式(矩阵式)键盘」· C语言 代码 · 共 111 行

C
111
字号
#include <reg51.h>
Uart_Init();
sbit P10=0x87;
sbit P11=0x86;
sbit P12=0x85;
sbit P13=0x84;
sbit P14=0x80;
sbit P15=0x81;
sbit P16=0x82;
sbit P17=0x83;
sbit ii=0xb0;
int nkeynumber;

void getkeynumber();

main()
{ 	
	
	
	Uart_Init();
	while(1)
	{ nkeynumber=0xFF;
		getkeynumber();
		 
	
			switch(nkeynumber)
			{	
			        case(0xff):;
				                        break;
				case(0x00):;
							break;
				case(0x01):;
							break;
				case(0x02):;
							break;
				case(0x03):;
							break;
				case(0x04):;
							break;
				case(0x05):;
							break;
				case(0x06):;
							break;
				case(0x07):;
							break;
				case(0x08): ;
							break;
				case(0x09):;
							break;
				case(0x0a):;
							break;
				case(0x0b):;
							break;
				case(0x0c):;
							break;
				case(0x0d):;
							break;
				case(0x0e):;
							break;
				case(0x0f):;
							break;
			
			}

	}
}
Uart_Init()
	{SCON = 0x52;    /* 设置串行口控制寄存器SCON*/
	 TMOD = 0x20;    /* 12M时钟时波特率为2400  */
	 TCON = 0x69;    /* TCON */
	 TH1 =  0xf3;    /* TH1 */
	}
void getkeynumber()
{
P14=0;
{
  if(P13==0) nkeynumber=0x00;
  if(P12==0) nkeynumber=0x01;
  if(P11==0) nkeynumber=0x02;
  if(P10==0) nkeynumber=0x03;
  if(nkeynumber!=0xff)
  return;
  }P14=1;
P15=0;
{
  if(P13==0) nkeynumber=0x04;
  if(P12==0) nkeynumber=0x05;
  if(P11==0) nkeynumber=0x06;
  if(P10==0) nkeynumber=0x07;
  if(nkeynumber!=0xff)
  return;
  }P15=1;
P16=0;
{
  if(P13==0) nkeynumber=0x08;
  if(P12==0) nkeynumber=0x09;
  if(P11==0) nkeynumber=0x0a;
  if(P10==0) nkeynumber=0x0b;
  if(nkeynumber!=0xff)
  return;
  }P16=1;
P17=0;
{
  if(P13==0) nkeynumber=0x0c;
  if(P12==0) nkeynumber=0x0d;
  if(P11==0) nkeynumber=0x0e;
  if(P10==0) nkeynumber=0x0f;
  if(nkeynumber!=0xff)
  return;
  }P17=1;
}

⌨️ 快捷键说明

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