標(biāo)題: 鍵盤矩陣 列判斷不出,哪里錯(cuò)的 [打印本頁(yè)]

作者: tzmtzm    時(shí)間: 2016-4-15 11:23
標(biāo)題: 鍵盤矩陣 列判斷不出,哪里錯(cuò)的
#include<reg52.h>
#include"hl52_h.c"
#define uchar unsigned char
void delay(int q)
{
                while(q)
                {
                --q;
        }
}

void scan()
{

   int table ;
   int i,k,hkey,lkey;
   uchar code number[50]={
   0X3f,0X06,0X5b,0X4f,0,0,0,0,0,0,
   0X66,0X6d,0X7d,0X07,0,0,0,0,0,0,
   0X7f,0X6f,0X77,0X7c,0,0,0,0,0,0,
   0X39,0X5e,0X79,0X71,0,0,0,0,0,0, } ;
   P3=0X0f;
  if(P3!=0X0f)                         // 行正列負(fù)電頻,行P3.0起,列P3.4起
  delay(10);
                      i=P3&0x0f;                  //判斷行 ,列取與操作,全部統(tǒng)一。行是低4位。
                          switch(i)
                          {
                          case 0X0e  :                //行1
                                hkey= 0;
                                break;
                          case 0X0d:                    //行2
                                hkey=1;
                                        break;
                         case  0X0b:                    //行3
                                hkey=2;
                                        break;
                     case  0X07:                //行4
                                hkey=3;
                                        break;      
                      }
                 k=P3&0Xf0;                               //列判斷 列初始負(fù)。
                         switch(k)
                         {
                    case  0X10:
                                lkey=0;
                                        break;
                        case  0X20:
                                lkey=1;
                                        break;
                        case  0X80:
                                lkey=2;
                                        break;
                        case  0Xf0:
                                lkey=3;
                                        break;

                         }
                while(P3!=0X0f)
                {
                 delay(10 );
                }
          table=hkey*10+lkey;
          DU=1;
          //P0=0Xff ;   測(cè)試用
         P0=number[table];
          DU=0;
          WEI=1;
          P0=0X00;
          WEI=0;

       
}


作者: tzmtzm    時(shí)間: 2016-4-15 11:24
每行只顯示一個(gè)數(shù)字。哪里錯(cuò)了  高手 版主 幫幫忙




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1