猿问

直接看代码吧 关于矩阵按键的 逐行扫描

#include<reg51.h>
#include<stdio.h>
#define MDE P0
#define LED1 P1
void delay(int a)
{
 while(a--);
}
void main()
{
 while(1)
 { 
 int n,i=0x80,a;
 int x,k;
 MDE=0x7f;
 do
 { 
 a=MDE;//没有直接用MED,好像会有问题
 x=a%0x10;//就是这里来使步骤减少。有问题???
 switch(x)
 {
  case 0x07:k=1;break;
  case 0x0B:k=2;break;
  case 0x0D:k=3;break;
  case 0x0E:k=4;break;
  default:k=0;  
 }
  i/=0x02;
  a+=i;
  MDE=a;
 }while(a<=0xEF&&k==0);
 a-=i;
  do
  {
   n-=1;
  if(a<=0xEF)
  {
   a/=0x10;
   LED1=a;
   delay(10000);
  }
   LED1=0xFF;
   delay(10000);
  }while(n>=0);
 }
} //本来用了一些定义函数调用,后来还是写在了一起

逐行扫描  4*4的矩阵键盘 想法是按不同的键后面四个灯会熄灭不同和次数不同
可是烧入单片机没有这样。。。求指导,编这个码其实也可以看出我是想偷懒,不然就要写16种结果,。在线等大神。。
qq_慕虎1308833
浏览 1535回答 0
0回答
随时随地看视频慕课网APP
我要回答