找回密碼
         注冊會員
        搜索附件  

        矩陣鍵盤顯示.rar

         

        新人請教4*4鍵盤掃描細(xì)節(jié)問題,望達(dá)人不吝賜教!:
        鍵盤掃描程序如下(程序及圖附件中都有),下面這個程序是對的,但問題有以下幾點(都在掃描部分):
        一、用if語句可以,但用while語句不可以(語法上大致明白,但理解不清楚)。
        二、我用語句if(P2&0x0f!=0x0f)判斷時,直接出現(xiàn)兩個警告(圖見附件warning.jpg),原因不明。當(dāng)改用
        P2=light[j];
        k=P2&0x0f;
        if(k!=0x0f)
        這三條替換if(P2&0x0f!=0x0f)時,程序正確,不知道為什么。
        三、以上只是按鍵判定,松手判定,我試了好幾種方式(見程序中),都不行。
        #include<at89x51.h>
        #define uint unsigned int
        #define uchar unsigned char
        uchar code light[]={0x7f,0xbf,0xdf,0xef};
        uchar code LED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};
        uchar key,j;
        void delay(uint m) //延時
        {
        uint i;
        for(;m>0;m--)
        for(i=124;i>0;i--)
        ;
        }
        uchar readkey(uchar scan) //讀取鍵碼值
        {
        P2=scan;
        switch(P2)
        {
        case 0x7e:return(0);
        case 0x7d:return(1);
        case 0x7b:return(2);
        case 0x77:return(3);
        case 0xbe:return(4);
        case 0xbd:return(5);
        case 0xbb:return(6);
        case 0xb7:return(7);
        case 0xde:return(8);
        case 0xdd:return(9);
        case 0xdb:return(10);
        case 0xd7:return(11);
        case 0xee:return(12);
        case 0xed:return(13);
        case 0xeb:return(14);
        case 0xe7:return(15);
        default:return(16);
        }
        }
        void keyscan() //掃描程序
        {
        uchar k;
        for(j=0;j<4;j++)
        {
        P2=light[j];
        k=P2&0x0f;
        if(k!=0x0f)
        {
        delay(5);
        P2=light[j];
        k=P2&0x0f;
        if(k!=0x0f)
        {
        key=readkey(light[j]);
        // while(k!=0x0f); //判松手
        //while(P2&0x0f!=0x0f);
        /* P2=light[j];
        k=P2&0x0f;
        while(k!=0x0f);
        */
        }
        }
        }
        }
        void main()
        {
        key=16;
        while(1)
        {
        keyscan();
        P1=LED[key];
        }
        }


        QQ|手機(jī)版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網(wǎng)站地圖

        GMT+8, 2025-5-2 12:30 , Processed in 0.039128 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        欧美日韩精品系列一区二区三区| 精品99又大又爽又硬少妇毛片 | 国产美女精品一区二区| 国产精品合集一区二区三区| 欧美性受xxxx极品| 久草热8精品视频在线观看| 欧美日韩精品一区二区在线播放| 日韩精品人妻系列无码专区| 亚洲国产天堂久久精品网| 亚洲午夜国产精品无码老牛影视 | 亚洲精品456播放| 精品乱子伦一区二区三区高清免费播放| 欧美精品福利视频一区二区三区久久久精品 | 99久久亚洲综合精品成人| 91精品视频网站| 久久国产亚洲精品无码| 欧美影院在线观看| 精品黑人一区二区三区| 亚洲国产成人一区二区精品区| 亚洲精品无码久久毛片| 老司机午夜精品视频资源| 中文字幕一区二区精品区| 精品国内片67194| 999在线视频精品免费播放观看| 免费精品无码AV片在线观看 | 国产一区二区精品尤物| 中文字幕精品亚洲无线码一区| 大伊香蕉精品视频在线导航| 久久精品亚洲乱码伦伦中文| 国产精品美女网站在线观看| 久久99热国产这有精品| 蜜臀AV无码国产精品色午夜麻豆| 日韩精品人妻系列无码专区 | 日韩高清的天堂在线观看免费| 国产精品久久毛片完整版| 亚洲精品动漫免费二区| 99精品久久久久中文字幕| 欧美黑人巨大videos精品| 成人精品视频一区二区三区| 久久久久这里只有精品| 99热亚洲色精品国产88|