微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 最最简单的密码锁,求大神指点!

最最简单的密码锁,求大神指点!

时间:10-02 整理:3721RD 点击:

键盘输入1  5  9,led灯亮。
求大神指点,问题出在哪?
跪谢!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar  x=0,table[3];
uchar  table1[]={1,5,9};
void delayms(uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)
      for(j=110;j>0;j--);
}
    uchar  keyscan()
{
   uchar temp,key;
   P3=0xfe;
   temp=P3;
   temp=temp&0xf0;
   if(temp!=0xf0)
   {
      delayms(10);
   temp=P3;
   temp=temp&0xf0;
   if(temp!=0xf0)
   {
      temp=P3;
   switch(temp)
   {
     case 0xee:
     key=0;
     break;
     case 0xde:
     key=1;
     break;
     case 0xbe:
     key=2;
     break;
     case 0x7e:
     key=3;
     break;
         }
   while(temp!=0xf0)
   {
       temp=P3;
    temp=temp&0xf0;
   }
   
     return key;
   }
  }
     P3=0xfd;
  temp=P3;
  temp=temp&0xf0;
  if(temp!=0xf0)
  {
    delayms(10);
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
      {
     temp=P3;
     switch(temp)
     {
        case 0xed:
     key=4;
     break;
     case 0xdd:
     key=5;
     break;
     case 0xbd:
     key=6;
     break;
     case 0x7d:
     key=7;
     break;
           }
     while(temp!=0xf0)
     {
        temp=P3;
     temp=temp&0xf0;
     }
           return key;
  }
  
  }
       P3=0xfb;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
       delayms(10);
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
       temp=P3;
    switch(temp)
    {
       case 0xeb:
    key=8;
    break;
    case 0xdb:
    key=9;
    break;
     
   }
      while(temp!=0xf0)
   {
       temp=P3;
    temp=temp&0xf0;
   }
             return key;
     }
  }
  
     }
  void main()
   {
     while(1)
      {
        uchar keyscan();
        table[x]=keyscan();
        x++;
        if(x==3);
        x=0;
        if(table==table1)
        break;
      }   
         led1=0;
         while(1);
}
            
     

可以啊,这个怎么了?

调了好久都没调好,最后发现是自己的矩阵键盘出问题了,伤不起啊。谢谢你啦,不然我还是扎在程序调试里出不来

可以帮你调试,不过不是免费的,10分钟帮你搞定。留下联系方式吧。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top