<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機4×4矩陣鍵盤設計方案

          單片機4×4矩陣鍵盤設計方案

          作者: 時間:2011-10-26 來源:網(wǎng)絡 收藏
          7、C語言源程序

          本文引用地址:http://www.ex-cimer.com/article/172439.htm

            #include

            unsigned char code table[]={0x3f,0x66,0x7f,0x39,

            0x06,0x6d,0x6f,0x5e,

            0x5b,0x7d,0x77,0x79,

            0x4f,0x07,0x7c,0x71};

            void main(void)

            { unsigned char i,j,k,key;

            while(1)

            { P3=0xff; //給P3口置1//

            P3_4=0; //給P3.4這條線送入0//

            i=P3;

            i=i0x0f; //屏蔽低四位//

            if(i!=0x0f) //看是否有按鍵按下//

            { for(j=50;j>0;j--) //延時//

            for(k=200;k>0;k--);

            if(i!=0x0f) //再次判斷按鍵是否按下//

            { switch(i) //看是和P3.4相連的四個按鍵中的哪個//

            { case 0x0e:

            key=0;

            break;

            case 0x0d:

            key=1;

            break;

            case 0x0b:

            key=2;

            break;

            case 0x07:

            key=3;

            break;

            }

            P0=table[key]; //送數(shù)到P0口顯示//

            }

            }

            P3=0xff;

            P3_5=0; //讀P3.5這條線//

            i=P3;

            i=i0x0f; //屏蔽P3口的低四位//

            if(i!=0x0f) //讀P3.5這條線上看是否有按鍵按下//

            { for(j=50;j>0;j--) //延時//

            for(k=200;k>0;k--);

            i=P3; //再看是否有按鍵真的按下//

            i=i0x0f;

            if(i!=0x0f)

            { switch(i) //如果有,顯示相應的按鍵//

            { case 0x0e:

            key=4;

            break;

            case 0x0d:

            key=5;

            break;

            case 0x0b:

            key=6;

            break;

            case 0x07:

            key=7;

            break;

            }

            P0=table[key]; //送入P0口顯示//

            }

            }

            P3=0xff;

            P3_6=0; //讀P3.6這條線上是否有按鍵按下//

            i=P3;

            i=i0x0f;

            if(i!=0x0f)

            { for(j=50;j>0;j--)

            for(k=200;k>0;k--);

            i=P3;

            i=i0x0f;

            if(i!=0x0f)

            { switch(i)

            { case 0x0e:

            key=8;

            break;

            case 0x0d:

            key=9;

            break;

            case 0x0b:

            key=10;

            break;

            case 0x07:

            key=11;

            break;

            }

            P0=table[key];

            }

            }

            P3=0xff;

            P3_7=0; //讀P3.7這條線上是否有按鍵按下//

            i=P3;

            i=i0x0f;

            if(i!=0x0f)

            { for(j=50;j>0;j--)

            for(k=200;k>0;k--);

            i=P3;

            i=i0x0f;

            if(i!=0x0f)

            { switch(i)

            { case 0x0e:

            key=12;

            break;

            case 0x0d:

            key=13;

            break;

            case 0x0b:

            key=14;

            break;

            case 0x07:

            key=15;

            break;

            }

            P0=table[key];

            }

            }

            }

            }

            8、注意事項

            在硬件電路中,要把8聯(lián)撥動撥碼開關JP2撥下,把8聯(lián)撥動撥碼開關JP3撥上去。

          DIY機械鍵盤相關社區(qū):機械鍵盤DIY


          單片機相關文章:單片機教程


          單片機相關文章:單片機視頻教程


          單片機相關文章:單片機工作原理



          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();