新聞中心

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

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

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

        本文引用地址:http://www.104case.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]; //送數到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聯撥動撥碼開關JP2撥下,把8聯撥動撥碼開關JP3撥上去。

        DIY機械鍵盤相關社區:機械鍵盤DIY


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


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


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



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 喜德县| 扶绥县| 屯门区| 重庆市| 内江市| 宝应县| 夏河县| 赤壁市| 兴海县| 东城区| 肃宁县| 宁国市| 南丹县| 深泽县| 新沂市| 扎兰屯市| 博白县| 兖州市| 湖州市| 靖江市| 务川| 康马县| 河西区| 津南区| 沐川县| 新建县| 门源| 天门市| 襄汾县| 太白县| 芜湖县| 卢龙县| 大悟县| 保亭| 通榆县| 喜德县| 蛟河市| 开化县| 龙陵县| 清镇市| 临潭县|