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

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

        返回頂部
        久久无码人妻精品一区二区三区| 男女男精品视频网站在线观看| 美女扒尿口让男人桶动态图| 亚洲色图国产精品| 99re国产精品视频首页| 亚洲AV日韩精品久久久久| 亚洲欧美精品综合中文字幕| 精品久久久久久99人妻| 色花堂国产精品第一页| 国产香蕉国产精品偷在线| 国产精品99| 99久久精品国产一区二区三区| 久久精品国产秦先生| 久久精品男人影院| 久久精品无码一区二区日韩AV| 亚洲中文字幕久久精品无码喷水| 好湿视频在线观看免费| 99久久久精品免费观看国产| 四虎国产精品永久免费网址| 精品一区二区三区中文字幕| 精品精品国产高清a毛片牛牛| 精品国产污污免费网站入口在线| 亚洲第一极品精品无码久久| 不卡av电影在线| 久久精品免费一区二区三区| 亚洲精品一级无码中文字幕| 91精品欧美综合在线观看| 蜜臀久久99精品久久久久久| 国产suv精品一区二区33| 99精品国产一区二区| 国内揄拍高清国内精品对白| 久久久久99精品成人片三人毛片| 国自产精品手机在线观看视频| 5g影院天天5g天天爽精品| 在线欧美v日韩v国产精品v| 国内精品自在自线视频香蕉| 久久国产精品-久久精品| 亚洲精品久久久www | 国产精品兄妹在线观看麻豆| 精品无码AV一区二区三区不卡| 国内精品九九久久久精品|