久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2535|回復: 3
打印 上一主題 下一主題
收起左側(cè)

5*4鍵盤掃描程序,按鍵值掃出來少一行~!請高手解答下。謝謝~!

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:186564 發(fā)表于 2017-7-1 10:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#ifndef _key_H_
#define _key_H_
#include<reg51.h>
unsigned char num[5][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},{17,18,19,20}};        //5行4列
#define uint unsigned int
unsigned char KEY;
sbit H5=P3^0;


keybord()
{
unsigned char H,L,tmp1,tmp2;           //行是j  列是i
     while(1)
    {P2=0x0f;
         H5=0;                      //P2口輸出      0 0 0 0 1 1 1 1        ,讀低4位
     if(P2!=0x0f);
         delay_ms(10);
          if(P2!=0x0f);        //讀取P2口的值,如果不等于00001111,證明有鍵按下
             {tmp1=P2;       //按下后,P2口的值給temp1      
                   switch(tmp1)
                    {                         //     P2.7  P2.6   P2.5  P2.4  P2.3  P2.2   P2.1   P2.0
                     case 0x07:L=4;break;    //如果   0      0     0      0     0     1     1       1  為第4列
                     case 0x0b:L=3;break;    //如果   0      0     0      0     1     0     1       1  為第3列
                     case 0x0d:L=2;break;    //如果   0      0     0      0     1     1     0       1  為第2列
                     case 0x0e:L=1;break;   // 如果   0      0     0      0     1     1     1       0  為第1列
                    }

                                          
                                            P2=0xf0;
                                                H5=1;
                                                if(P2!=0xf0);            //P2口輸1111 0000  讀高4位
                        delay_ms(5);
                                                if(P2!=0xf0);     
                        tmp2=P2;            // P2口的值給tmp2   
                            switch(tmp2)
                            {                     //       p3.0 P2.7  P2.6   P2.5  P2.4  P2.3  P2.2   P2.1   P2.0
                            case 0x70:H=4;break;  //如果    1      0      1     1      1     0     0     0       0           為第1行
                            case 0xb0:H=3;break;  //如果    1      1      0     1      1     0     0     0       0           為第2行
                            case 0xd0:H=2;break;  //如果    1      1      1     0      1     0     0     0       0           為第3行
                            case 0xe0:H=1;break; // 如果    1      1      1     1      0     0     0     0       0           為第4行
                                                        case 0xf0:if(H5!=1){H=5;};break;  // 如果   0      1      1     1      1     0     0     0       0           為第5行
                             }                 
                              KEY=num[H][L];     
                                                }
                                                     return KEY;
      }
                               
}
                                 
KEY_display(uint k)
{
        switch(k)
        {        case 1: disp_cn_2(NO_0,6,32);break;
                 case 2: disp_cn_2(NO_1,6,32); break;
                 case 3: disp_cn_2(NO_2,6,32); break;
                 case 4: disp_cn_2(NO_1,6,32); break;
                 case 5: disp_cn_2(NO_7,6,32); break;
                 case 6: disp_cn_2(NO_8,6,32); break;
                 case 7: disp_cn_2(NO_6,6,32); break;
                 case 8: disp_cn_2(NO_3,6,32); break;
                 case 9: disp_cn_2(NO_2,6,32); break;
                 case 10: disp_cn_2(NO_9,6,32); break;
                 case 11:disp_cn_2(NO_9,6,32); break;
                 case 12:disp_cn_2(NO_2,6,32); break;
                 case 13:disp_cn_2(NO_4,6,32); break;
                 case 14:disp_cn_2(NO_13,6,32); break;
                 case 15:disp_cn_2(NO_4,6,32); break;
                 case 16:disp_cn_2(NO_1,6,32); break;
                 case 17:disp_cn_2(NO_8,6,32); break;
                 case 18:disp_cn_2(NO_17,6,32); break;
                 case 19:disp_cn_2(NO_8,6,32); break;
                 case 20:disp_cn_2(NO_6,6,32); break;
        default: break;
        }

}
       

#endif               

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

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2017-7-1 13:35 | 只看該作者
走單步找一下,不難。
回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2017-7-1 20:29 | 只看該作者
通常模塊化編程都是一個C文件對應(yīng)一個H文件,你這胡子眉毛一把抓,即不是C文件也不像H文件,搞不清是小白一枚還是頂級高手。
回復

使用道具 舉報

地板
ID:111634 發(fā)表于 2017-7-1 20:52 | 只看該作者
你的鍵掃描程序少一行,看樣子,這個程序是抄來的。讀懂這個程序,加上一行掃描就行!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线免费 | 国产精品精品久久久 | 一区二区在线视频 | 亚洲精品大片 | 久久神马| 亚洲第一成人影院 | 一级一级一级毛片 | 欧美高清视频一区 | av看片| 午夜国产羞羞视频免费网站 | 在线观看涩涩视频 | 欧美日韩91 | 国产情侣啪啪 | 操皮视频 | 亚洲精品国产第一综合99久久 | 亚洲综合三区 | 国产激情91久久精品导航 | 一区二区在线 | 福利精品 | 成人国产在线观看 | 欧美国产精品 | av在线成人| 天天成人综合网 | 啪啪免费网| 国产免费福利小视频 | 久久久久久国产一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 九九热精品视频 | 国产精品久久久 | 久草视频观看 | 一级高清视频 | 亚洲永久 | 91在线视频观看 | 久草色视频 | 性天堂网 | 国产精品美女www爽爽爽视频 | 精品视频久久久久久 | 午夜精品久久久久久不卡欧美一级 | 色久伊人 | 国产欧美精品 | 久久久久网站 |