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

        矩陣鍵盤顯示.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.

        返回頂部
        亚洲精品一二区| 国内精品久久久久影院中国| 亚洲精品无码久久久久AV麻豆| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 青青草97国产精品免费观看| 韩国一级片在线播放| 国产精品久久久亚洲| 囯产精品一区二区三区线| 巨大黑人极品VIDEOS精品| 免费在线观看黄色小视频| 91精品国产乱码久久久久久| 国产精品久久久99| 影音先锋成人在线| 国产成人精品男人的天堂538 | 国产精品2019| 久久久久久亚洲精品无码| 日本VA欧美VA欧美VA精品| 高清在线国产午夜精品| 亚洲国产精品一区第二页| 国产成人精品久久综合| 女人精水喷出来视频免费| 99精品国产丝袜在线拍国语 | 国产一国产一级毛片片| 国产成人精品综合网站| 四虎国产精品永久在线无码| 精品国偷自产在线| 国产亚洲精品资在线| 久久久一本精品99久久精品88| 51国偷自产精品一区在线视频| 最新国产成人精品2024| 久久精品这里热有精品| 宅男宅女精品国产AV天堂| 精品国产自在在线在线观看| 亚洲精品国产精品国自产观看| 国产精品视频久久| 冲田杏梨在线精品二区| 91精品国产91久久久久久| 国产高清不卡码一区二区三区| 9999国产精品欧美久久久久久| 一夲道无码人妻精品一区二区| 国产69精品久久久久9999|