标题: 单片机4*4键盘 已经尝试过很多次仍是错误 求解答 [打印本页]

作者: 苏小白    时间: 2020-8-9 17:26
标题: 单片机4*4键盘 已经尝试过很多次仍是错误 求解答
#include<reg51.h>
#include<intrins.h>
unsigned char temp,key=16;
unsigned char code LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
                          0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};
void delay10ms()
{
  TH1=0xd8;
  TL1=0xf0;
  TR1=1;
  while(!TF1);
  TF1=0;
}
void delay(unsigned char t)
{
  unsigned char t1;
  for(t1=0;t1<t;t1++)
  delay10ms();
}
void main()
{
  unsigned char n;
  TMOD=0x10;
  while(1)
  {
    P2=0xf0;
        if(P2==0xf0)
        delay10ms();
        while(P2!=0xf0)
        {
          for(n=0;n<4;n++)
          {
            P2=0xfe;
                P2=_crol_(P2,n);
                temp=P2&0xf0;
                while(temp!=0xf0)
                {
                  switch(temp)
                  {
                    case 0xe0:key=n*4+0;break;
                        case 0xd0:key=n*4+1;break;
                        case 0xb0:key=n*4+2;break;
                        case 0x70:key=n*4+3;break;
                        default:key=16;
                  }
                }
          }
        }
        P1=LED[key];
        delay(200);
  }
}


作者: xianfajushi    时间: 2020-8-10 11:09
这样的矩阵扫描代码学习有困难的话,不妨学学其他的代码或许较易理解。可参https://blog.csdn.net/xianfajushi/article/details/80884859
作者: 张张不会单片机    时间: 2020-8-10 11:36
我也是新手,请问编写这种键入代码需要注意些什么呢
作者: 苏小白    时间: 2020-8-12 12:24
xianfajushi 发表于 2020-8-10 11:09
这样的矩阵扫描代码学习有困难的话,不妨学学其他的代码或许较易理解。可参https://blog.csdn.net/xianfaju ...

好的 可以了 谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1