在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 矩陣鍵盤掃描程序

            矩陣鍵盤掃描程序

            作者: 時間:2016-11-11 來源:網絡 收藏

            #include
            #define uint unsigned int
            #define uchar unsigned char
            uchar temp,key=16;
            sbit duan=P2^6;
            sbit wei=P2^7;
            sbit led0=P1^0;
            sbit led1=P1^1;

            本文引用地址:http://www.biyoush.com/article/201611/316930.htm

            uchar code table[]=
            {0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71,0x00};
            void display(uchar);
            uchar scan_key();
            void delay(uchar);

            void main()
            {
            wei=1;
            P0=0x00;
            wei=0;//位全選通

            while(1)
            {
            display(scan_key());
            }
            }

            void display(uchar x)
            {

            duan=1;
            P0=table[x];
            duan=0;
            }

            uchar scan_key()
            {
            P3=0xfe; //檢測第一橫排
            temp=P3;
            while(temp!=0xfe)
            {
            delay(20);
            while(temp!=0xfe) //防抖檢測
            {
            switch(temp)
            {
            case 0xee:{key=0;led0=0;break;}
            case 0xde:{key=1;led1=0;break;}
            case 0xbe:{key=2;break;}
            case 0x7e:{key=3;break;}
            default:break;

            }
            while(temp!=0xfe) //松手檢測
            {
            temp=P3;
            }
            }

            }

            P3=0xfd; //檢測第二橫排
            temp=P3;
            while(temp!=0xfd)
            {
            delay(20);
            while(temp!=0xfd)
            {
            switch(temp)
            {
            case 0xed:{key=4;break;}
            case 0xdd:{key=5;break;}
            case 0xbd:{key=6;break;}
            case 0x7d:{key=7;break;}
            default:break;

            }
            while(temp!=0xfd)
            {
            temp=P3;
            }
            }

            }

            P3=0xfb; //檢測第三橫排
            temp=P3;
            while(temp!=0xfb)
            {
            delay(20);
            while(temp!=0xfb)
            {
            switch(temp)
            {
            case 0xeb:{key=8;break;}
            case 0xdb:{key=9;break;}
            case 0xbb:{key=10;break;}
            case 0x7b:{key=11;break;}
            default:break;

            }
            while(temp!=0xfb)
            {
            temp=P3;
            }
            }

            }

            P3=0xf7; //檢測第4橫排
            temp=P3;
            while(temp!=0xf7)
            {
            delay(20);
            while(temp!=0xf7)
            {
            switch(temp)
            {
            case 0xe7:{key=12;break;}
            case 0xd7:{key=13;break;}
            case 0xb7:{key=14;break;}
            case 0x77:{key=15;break;}
            default:break;

            }
            while(temp!=0xf7)
            {
            temp=P3;
            }
            }

            }


            return key;


            }

            void delay(uchar x)
            {
            uchar i,j;
            for(i=0;ifor(j=0;j<255;j++);
            }



            關鍵詞: 矩陣鍵盤掃描程

            評論


            技術專區(qū)

            關閉