找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1679|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

鍵盤(pán)矩陣 列判斷不出,哪里錯(cuò)的

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:101968 發(fā)表于 2016-4-15 11:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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;

       
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:101968 發(fā)表于 2016-4-15 11:24 | 只看該作者
每行只顯示一個(gè)數(shù)字。哪里錯(cuò)了  高手 版主 幫幫忙
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表