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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2590|回復: 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               

回復

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天操夜夜骑 | 欧美国产日韩在线 | 国产农村女人一级毛片 | 五月天精品| 18视频在线观看男男 | 亚洲自拍偷拍视频 | 亚洲视频二区 | 久久伊人av | 在线一区二区三区四区 | 欧美成人性生活视频 | 精品一区二区三区中文字幕 | 在线一级片 | 人与拘一级a毛片 | 国产黄a三级三级看三级 | 无遮挡在线观看 | 黄色一级片网站 | 亚洲另类自拍 | 成人毛片一区二区三区 | 激情综合网五月 | 欧美国产激情 | 黄色三级网 | 日韩欧美一区二区在线 | 在线观看a视频 | 亚洲最大av网站 | 久久久久久久综合 | 91在线视频 | 免费黄色大片 | 免费成人结看片 | 欧美日韩中文字幕 | 国产日本在线观看 | 日韩一级大片 | 婷婷综合久久 | 欧美久久久久久久久久 | 91中文在线 | 亚洲成人一区二区三区 | av资源在线 | 亚洲a级片 | 国产日韩一区 | 国产成人精品亚洲男人的天堂 | 日韩超碰| 深夜福利视频网站 |