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

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

        返回頂部
        久久久久九国产精品| 5060网午夜一级毛片免费看| 老司机67194精品线观看| 久久国产精品99国产精| 久久成人影院精品777| 精品久久久久久无码中文字幕 | 91国内揄拍国内精品情侣对白| 国产欧美日韩综合精品二区| 亚洲性日韩精品国产一区二区| 久久精品国产亚洲av麻豆小说| 午夜精品美女自拍福到在线| 亚洲?V乱码久久精品蜜桃| 久久99精品久久只有精品| 成人午夜精品亚洲日韩| 先锋影音在线视频| 国产精品亚洲午夜一区二区三区| 精品国产午夜福利在线观看 | 国产精品久久久久影视不卡| 精品人妻系列无码人妻免费视频| 亚洲精品~无码抽插| 91久久精品电影| 一本久久a久久精品vr综合| 欧美精品国产一区二区| 在线观看自拍少妇精品| 国产成人精品日本亚洲11| 男女男精品视频网站在线观看| 久久久久99精品成人片试看| 国产精品第一区第27页| 亚洲av无码精品网站| 国产精品人人做人人爽| 午夜DY888国产精品影院| 国产精品国产三级国产潘金莲| 亚洲国产美女精品久久久久∴| 99久久综合国产精品二区| 亚洲精品自在在线观看| 国产亚洲精品成人a v小说| 精品久久久久久中文字幕人妻最新 | 国产精品亚洲精品| 阳茎进去女人阳道视频在线看| 精品福利一区二区三| 男女免费视频观看|