找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1263|回复: 3
收起左侧

单片机4*4键盘 已经尝试过很多次仍是错误 求解答

[复制链接]
ID:790623 发表于 2020-8-9 17:26 | 显示全部楼层 |阅读模式
#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);
  }
}

回复

使用道具 举报

ID:332444 发表于 2020-8-10 11:09 | 显示全部楼层
这样的矩阵扫描代码学习有困难的话,不妨学学其他的代码或许较易理解。可参https://blog.csdn.net/xianfajushi/article/details/80884859
回复

使用道具 举报

ID:812792 发表于 2020-8-10 11:36 | 显示全部楼层
我也是新手,请问编写这种键入代码需要注意些什么呢
回复

使用道具 举报

ID:790623 发表于 2020-8-12 12:24 | 显示全部楼层
xianfajushi 发表于 2020-8-10 11:09
这样的矩阵扫描代码学习有困难的话,不妨学学其他的代码或许较易理解。可参https://blog.csdn.net/xianfaju ...

好的 可以了 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表