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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2528|回復: 3
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:186564 發表于 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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品中文字幕在线播放 | 羞羞视频免费观看入口 | 日本三级在线网站 | 国产精品美女一区二区 | 国产精品美女久久久久久免费 | caoporn国产精品免费公开 | 成人网av | 好姑娘高清在线观看电影 | 久久久久精| 爱爱爱av | 中文字幕在线三区 | 国产精品久久久久久久久免费桃花 | 女女百合av大片一区二区三区九县 | 精品视频一区二区三区在线观看 | 一区二区三区在线 | 亚洲精品久久久一区二区三区 | 国产剧情一区 | 亚洲高清视频在线观看 | 超碰最新在线 | 欧美成人自拍 | 91正在播放 | 久久精品国产99国产精品 | 亚洲免费在线观看 | 全部免费毛片在线播放网站 | 综合久久一区 | 中文字幕啪啪 | 成人精品| 国产亚洲精品久久19p | 国产在线视频一区二区 | 国偷自产av一区二区三区 | 97国产在线视频 | 午夜小影院 | 久久精品免费观看 | 拍真实国产伦偷精品 | 日韩一区二区在线看 | 午夜婷婷激情 | 中文字幕在线精品 | 亚洲一二三区精品 | 国产精品久久国产愉拍 | 午夜精品一区 | 欧美黄色一区 |