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

        矩陣鍵盤顯示.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热只有频精品8| 国产成人精品亚洲日本在线| 国产精品一区二区av不卡| 成人在线免费电影| 四虎在线精品视频一二区| 欧美国产成人久久精品| 久久夜色精品国产噜噜亚洲AV | 一本大道无码日韩精品影视| 无码国产乱人伦偷精品视频| 久久亚洲国产午夜精品理论片 | 国产成人精品免费久久久久| 国产欧美精品一区二区色综合| 日韩一区在线播放| 91麻豆精品国产自产在线观看一区 | 国产精品色视频ⅹxxx| 欧美成人天天综合在线视色| 98视频精品全部国产| 四虎成人精品国产永久免费无码| 久久国产乱子伦免费精品| 国产成人精品一区二区三区| 亚洲精品国精品久久99热一| 午夜精品美女自拍福到在线| 香港三级精品三级在线专区| 国产精品露脸国语对白| 国产一区二区精品久久岳| 色一乱一伦一图一区二区精品| 9re热国产这里只有精品| 中文字幕精品一区二区精品| 成人午夜精品亚洲日韩| 亚洲精品无码久久久久sm| 97精品国产高清自在线看超| 男女猛烈无遮挡免费视频| 中国精品videossex中国高清| 亚洲伊人久久精品影院| 国产成人vr精品a视频| 国产精品一区三区| 精品一区二区三区东京热| 久久精品国产精品亜洲毛片 |