學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > 鍵盤(pán)鼠標(biāo) > C語(yǔ)言矩陣鍵盤(pán)程序

C語(yǔ)言矩陣鍵盤(pán)程序

時(shí)間: 孫勝龍652 分享

C語(yǔ)言矩陣鍵盤(pán)程序

  大家在大學(xué)學(xué)習(xí)單機(jī)片時(shí),老師都會(huì)要求大家自己設(shè)計(jì)矩陣鍵盤(pán)程序,于是,小編在此為廣大學(xué)生寫(xiě)了一段最容易理解的矩陣鍵盤(pán)程序哦(C語(yǔ)言),希望能幫到大家。

  #define uchar unsigned char

  uchar temp;

  void delay(uchar x)

  {

  uchar y,z;

  for(y=x;y>0;y--)

  for(z=125;z>0;z--)

  ;

  }

  uchar keyscan()

  {

  P3=0xfe;

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  delay(5);

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  temp=P3;

  switch(temp)

  {

  case 0xee:num=1;

  break;

  case 0xde:num=2;

  break;

  case 0xbe:num=3;

  break;

  case 0x7e:num=4;

  break;

  }

  while(temp!=0xf0)

  {

  temp=P3;

  temp=temp&0xf0;

  }

  }

  }

  P3=0xfd;

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  delay(5);

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  temp=P3;

  switch(temp)

  {

  case 0xed:num=5;

  break;

  case 0xdd:num=6;

  break;

  case 0xbd:num=7;

  break;

  case 0x7d:num=8;

  break;

  }

  while(temp!=0xf0)

  {

  temp=P3;

  temp=temp&0xf0;

  }

  }

  }

  P3=0xfb;

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  delay(5);

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  temp=P3;

  switch(temp)

  {

  case 0xeb:num=9;

  break;

  case 0xdb:num=10;

  break;

  case 0xbb:num=11;

  break;

  case 0x7b:num=12;

  break;

  }

  while(temp!=0xf0)

  {

  temp=P3;

  temp=temp&0xf0;

  }

  }

  }

  P3=0xf7;

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  delay(5);

  temp=P3;

  temp=temp&0xf0;

  while(temp!=0xf0)

  {

  temp=P3;

  switch(temp)

  {

  case 0xe7:num=13;

  break;

  case 0xd7:num=14;

  break;

  case 0xb7:num=15;

  break;

  case 0x77:num=16;

  break;

  }

  while(temp!=0xf0)

  {

  temp=P3;

  temp=temp&0xf0;

  }

  }

  }

  return num;

  }

207788